Avatar billede jona0497 Nybegynder
11. august 2008 - 23:02 Der er 10 kommentarer

syntax error

Jeg får følgende fejl:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in (...)

Min kode ser således ud, og fejlen påstås at være i linjen ($orgfile = "getpics.php";)

/*opret mappe*/
    $foldername = $_REQUEST['foldername'];
    mkdir("galleri/albums/$foldername");
   
    /*kopier getpics til den nye mappe*/
    $orgfile = "getpics.php";
    $newfile = "albums/$foldername/getpics.php";
        if (!copy($orgfile, $newfile))
            {
              echo "failed to copy $orgfile...\n";
            }
   
    /*Upload filer*/
    $currentdir=getcwd();
    $currentdir .= "/galleri/albums/$foldername";
    foreach($_FILES as $file)
        {
        move_uploaded_file($file['tmp_name'],$currentdir."/".$file['name']);
        }
       
    /*Indsæt data i database*/
    $url = "http://www.somedomain.com/usa/galleri/albums/$foldername";
    mysql_query("insert into galleri (title, url) values ('$foldername', '$url')");
   
    echo "Albummet er oprettet!";

Har jeg blot stirret mig blind på en dum lille fejl?
Avatar billede jona0497 Nybegynder
11. august 2008 - 23:04 #1
Det skal siges, at hvis jeg udkommenterer linjerne

    $orgfile = "getpics.php";
        $newfile = "albums/$foldername/getpics.php";

forsvinder fejlen
Avatar billede coderdk Praktikant
11. august 2008 - 23:08 #2
jeg kan ikke lige se det, men prøv at lave:

mkdir("galleri/albums/$foldername");

om til

mkdir("galleri/albums/" . $foldername);

og

$newfile = "albums/$foldername/getpics.php";

om til

$newfile = "albums/".$foldername."/getpics.php";

og

echo "failed to copy $orgfile...\n";

om til

echo "failed to copy ".$orgfile."...\n";

og

$currentdir .= "/galleri/albums/$foldername";

om til

$currentdir .= "/galleri/albums/".$foldername;
Avatar billede jona0497 Nybegynder
11. august 2008 - 23:12 #3
Det ændrede desværre ikke på noget :(
Avatar billede coderdk Praktikant
11. august 2008 - 23:14 #4
er der flere linjer før det du har pastet?
Avatar billede jona0497 Nybegynder
11. august 2008 - 23:20 #5
Ja, men ikke noget der burde være relevant.
Jeg har prøvet at fjerne alle linjer ud over det det viste (dog bibeholdt en include med login information til MYSQL) og fejlen forbliver
Avatar billede janpolsen Nybegynder
12. august 2008 - 00:50 #6
Hvad indeholder $_REQUEST['foldername']?
Kan der være nogle skumle tegn i den?

Når du bruger variable inde i strenge, så kan du evt. smide tuborg-klammer rundt om dem. Så er du hvert fald sikker på hvad der er variabler og hvad der ikke er.
Avatar billede janpolsen Nybegynder
12. august 2008 - 00:51 #7
Hhmm... Og er du også sikker på at den include-fil du skriver om, ikke indeholder nogle fejl... højst sandsynligt i form af, at der mangler en semikolon i slutningen af en af linjerne - f.eks. linje 11 hvis du tager begge filerne sammenlagt :)
Avatar billede jona0497 Nybegynder
12. august 2008 - 07:15 #8
$_REQUEST['foldername'] indeholder ren tekst.
Den include-fil jeg talte om bruger jeg over hele hjemmesiden uden problemer, så det kan næppe være den heller. Jeg har tjekket for en sikkerhedsskyld, og der er ingen fejl i :(
Avatar billede janpolsen Nybegynder
12. august 2008 - 09:23 #9
Din kode virker i hvert fald fint på min server (i hvert fald ned forbi der hvor du siger problemet er), så jeg kan ikke se hvor fejlen er.

De eneste ukendte faktorer jeg kan se er netop $_REQUEST['foldername'] (som du burde lave om til enten $_POST, $_GET eller hvor det nu kommer frem - $_REQUEST er en sikkerhedsbrist) samt include-filen.

Er det en windows eller linux du kører på? Nogle af funktionerne du bruger, kan returnere /'er eller \'er. Hvis nu du får returneret noget som gør, at du ender med f.eks. "galleri\albums\newalbum", så bliver "\newalbum"-delen til "<newline>ewalbum", da \n er newline. Det er et skud i tågen, men jeg kan som skrevet ikke rigtig se hvad det ellers skulle være :(.
Avatar billede jona0497 Nybegynder
15. august 2008 - 15:52 #10
Hvis jeg fjerner hele  /*kopier getpics til den nye mappe*/ -delen virker det perfekt. Mappen bliver oprettet med det rigtige navn (fra $_REQUEST['foldername']) og filerne bliver uploadet og lagt i den nye mappe. Så jeg kan ikke forstå hvis fejlen skulle ligge i den $_REQUEST.. jeg kan godt se at det er en potentiel fejlkilde, men det ligner at det er problemet :(

Kører på linuxserver
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester