19. februar 2004 - 15:51
Der er
7 kommentarer og 1 løsning
uforståelig error i php script
Hej Jeg har følgende kode: <?php session_start(); ?> <html> <head> <title>Opret bruger</title> <link rel="stylesheet" type="text/css" href="stylesheet.css"> </head> <body> <?php $id = microtime(); $navn = $_REQUEST['navn']; $efternavn = $_REQUEST['efternavn']; $alder = $_REQUEST['alder']; $brugernavn = $_REQUEST['brugernavn']; $mail = $_REQUEST['mail']; $password = $_REQUEST['password']; $pw_repeat = $_REQUEST['pw_repeat']; mysql_connect("localhost", "root"); mysql_select_db("news"); //Tjek værdi af inputs, sæt variabler derfter $red = "class='red'"; $udfyld = "<div id='red'>Feltet skal udfyldes</div>"; //Værdier til brugernavn variabler sættes $query_user = mysql_query("select * from users where brugernavn = '$brugernavn'") or die('Mysql error'); $number = mysql_num_rows($query_user); if($brugernavn == "") { $_SESSION['user'] = ""; $fejl = "fejl"; $fejl_user = $udfyld; $red_user = $red; } elseif($number > 0) { $fejl = "fejl"; $fejl_user = "<div id='red'>Det valgte brugernavn er optaget</div>"; $red_user = $red; $_SESSION['user'] = $brugernavn; } else { $_SESSION['user'] = $brugernavn; $red_user = ""; $fejl_user = ""; } //Værdier til mail variabler sættes $query_mail = mysql_query("select mail from users where mail = '$mail'") or die('Mysql error'); $number_mail = mysql_num_rows($query_mail); if($mail == "") { $fejl_mail = $udfyld; $fejl = "fejl"; $red_mail = $red; $_SESSION['mail'] = ""; } elseif($number_mail > 0) { $fejl = "fejl"; $fejl_mail = "<div id='red'>Den valgte E-mail adresse bliver allerede brugt af en anden bruger</div>"; $red_mail = $red; $_SESSION['mail'] = ""; } else { $_SESSION['mail'] = $mail; $red_mail = ""; $fejl_mail = ""; } //Variabler til alder sættes if($alder == "") { $fejl_alder = $udfyld; $fejl = "fejl"; $red_alder = $red; $_SESSION['alder'] = ""; } elseif($alder < 15) { $_SESSION['alder'] = $alder; $fejl_alder = "<div id='red'>Du skal være 15 år, eller derover for at oprette en bruger hos Slumkum</div>"; $fejl = "fejl"; $red_alder = $red; } else { $_SESSION['alder'] = $alder; $red_mail = ""; $fejl_alder = ""; } //Variabler til password sættes if($password == "") { $fejl_pw = $udfyld; $fejl = "fejl"; $red_pw = $red; } elseif($password != $pw_repeat) { $fejl_pw = "<div id='red'>De to indtastede kodeord er ikke identiske</div>"; $red_pw = $udfyld; $fejl = "fejl"; } else { $fejl_pw = ""; $red_pw = ""; //Variabler til pw_repeat sættes if($pw_repeat == "") { $fejl_repeat = $udfyld; $fejl = "fejl"; $red_repeat = $red; } if($pw_repeat != $password) { $fejl_repeat = "<div id='red'>De to indtastede kodeord er ikke identiske</div>"; $fejl = "fejl"; $red_repeat = $red; } else { $red_repeat = ""; $fejl_repeat = ""; } //Hvis isset fejl if(isset($fejl)) { echo "<form action='opret_check.php' method='post'>"; echo "<p><div id='red'>Brugeren kunne ikke oprettes. Fejlene står beskrevet med rødt længere nede</div>"; echo "Navn:<br /><input type='text' name='navn'><br />"; echo "Efternavn: *<br /><input type='text' name='efternavn'><br />"; echo "Alder: *<br /><input $red_alder type='text' name='alder' value='{$_SESSION['alder']}'> $fejl_alder<br />"; echo "Ønsket brugernavn: *<br /><input $red_user type='text' name='brugernavn' value='{$_SESSION['user']}'> $fejl_user<br />"; echo "E-post: *<br /><input $red_mail type='text' name='mail' value=''{$_SESSION['mail']}'> $fejl_mail<br />"; echo "Adgangskode: *<br /><input $red_pw type='password' name='password'> $fejl_pw <br />"; echo "Gentag adgangskode: *<br /><input $red_repeat type='password' name='pw_repeat'> $fejl_repeat<p />"; echo "<input type='submit' name='opret_user' value='Opret'>"; echo "</form> "; echo "<p>OBS: felter med * skal udfyldes</p>"; //Variabler unsettes unset($fejl); unset($red_alder); unset($fejl_alder); unset($red_user); unset($fejl_user); unset($red_mail); unset($fejl_mail); unset($red_pw); unset($fejl_pw); } else { //Hvis ingen fejl, bliver bruger oprettet mysql_query("insert into users (id, brugernavn, password, pw_repeat, navn, efternavn, mail, alder) VALUES ('$id', '$brugernavn', '$password', '$pw_repeat', '$navn', '$efternavn', '$mail', '$alder')") or die('Mysql error'); echo "Bruger $brugernavn er oprettet"; } ?> </body> </html> Men når jeg tester det i en browser får jeg følgende fejl medd: Parse error: parse error, unexpected $ in /home/mikkel/webs/login/opret_check.php on line 181 Det kan jeg ikke forstå, for linje 181 er den sidste linje i hele min kode ( </html> ) Og der er da ingen $
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
19. februar 2004 - 15:54
#1
det kan ofte være fordi du mangler en "); eller }
19. februar 2004 - 15:57
#2
} else { $fejl_pw = ""; $red_pw = ""; mangler du at lukke den ???
19. februar 2004 - 15:57
#3
Hvis du laver indryk i din kode, så bliver det lidt nemmere at fejlfinde.
19. februar 2004 - 16:03
#4
Jep, det var fejlen. Tak for hjælpen. Nogle ideer til hvor jeg kan lave indryk i min kode for at gøre den mere overskuelig?
19. februar 2004 - 16:09
#5
Du kan prøve at se på din egen kode når der er indryk. Det burde være klart for en hver, at det nu er nemmere at opdage en sådan fejl som de du havde. <?php session_start(); ?> <html> <head> <title>Opret bruger</title> <link rel="stylesheet" type="text/css" href="stylesheet.css"> </head> <body> <?php $id = microtime(); $navn = $_REQUEST['navn']; $efternavn = $_REQUEST['efternavn']; $alder = $_REQUEST['alder']; $brugernavn = $_REQUEST['brugernavn']; $mail = $_REQUEST['mail']; $password = $_REQUEST['password']; $pw_repeat = $_REQUEST['pw_repeat']; mysql_connect("localhost", "root"); mysql_select_db("news"); //Tjek værdi af inputs, sæt variabler derfter $red = "class='red'"; $udfyld = "<div id='red'>Feltet skal udfyldes</div>"; //Værdier til brugernavn variabler sættes $query_user = mysql_query("SELECT * FROM users WHERE brugernavn = '$brugernavn'") or die('Mysql error'); $number = mysql_num_rows($query_user); if ($brugernavn == "") { $_SESSION['user'] = ""; $fejl = "fejl"; $fejl_user = $udfyld; $red_user = $red; } elseif ($number > 0) { $fejl = "fejl"; $fejl_user = "<div id='red'>Det valgte brugernavn er optaget</div>"; $red_user = $red; $_SESSION['user'] = $brugernavn; } else { $_SESSION['user'] = $brugernavn; $red_user = ""; $fejl_user = ""; } //Værdier til mail variabler sættes $query_mail = mysql_query("SELECT mail FROM users WHERE mail = '$mail'") or die('Mysql error'); $number_mail = mysql_num_rows($query_mail); if ($mail == "") { $fejl_mail = $udfyld; $fejl = "fejl"; $red_mail = $red; $_SESSION['mail'] = ""; } elseif ($number_mail > 0) { $fejl = "fejl"; $fejl_mail = "<div id='red'>Den valgte E-mail adresse bliver allerede brugt af en anden bruger</div>"; $red_mail = $red; $_SESSION['mail'] = ""; } else { $_SESSION['mail'] = $mail; $red_mail = ""; $fejl_mail = ""; } //Variabler til alder sættes if ($alder == "") { $fejl_alder = $udfyld; $fejl = "fejl"; $red_alder = $red; $_SESSION['alder'] = ""; } elseif ($alder < 15) { $_SESSION['alder'] = $alder; $fejl_alder = "<div id='red'>Du skal være 15 år, eller derover for at oprette en bruger hos Slumkum</div>"; $fejl = "fejl"; $red_alder = $red; } else { $_SESSION['alder'] = $alder; $red_mail = ""; $fejl_alder = ""; } //Variabler til password sættes if($password == "") { $fejl_pw = $udfyld; $fejl = "fejl"; $red_pw = $red; } elseif ($password != $pw_repeat) { $fejl_pw = "<div id='red'>De to indtastede kodeord er ikke identiske</div>"; $red_pw = $udfyld; $fejl = "fejl"; } else { $fejl_pw = ""; $red_pw = ""; } //Variabler til pw_repeat sættes if ($pw_repeat == "") { $fejl_repeat = $udfyld; $fejl = "fejl"; $red_repeat = $red; } if ($pw_repeat != $password) { $fejl_repeat = "<div id='red'>De to indtastede kodeord er ikke identiske</div>"; $fejl = "fejl"; $red_repeat = $red; } else { $red_repeat = ""; $fejl_repeat = ""; } //Hvis isset fejl if (isset($fejl)) { echo "<form action='opret_check.php' method='post'>"; echo "<p><div id='red'>Brugeren kunne ikke oprettes. Fejlene står beskrevet med rødt længere nede</div>"; echo "Navn:<br /><input type='text' name='navn'><br />"; echo "Efternavn: *<br /><input type='text' name='efternavn'><br />"; echo "Alder: *<br /><input $red_alder type='text' name='alder' value='{$_SESSION['alder']}'> $fejl_alder<br />"; echo "Ønsket brugernavn: *<br /><input $red_user type='text' name='brugernavn' value='{$_SESSION['user']}'> $fejl_user<br />"; echo "E-post: *<br /><input $red_mail type='text' name='mail' value=''{$_SESSION['mail']}'> $fejl_mail<br />"; echo "Adgangskode: *<br /><input $red_pw type='password' name='password'> $fejl_pw <br />"; echo "Gentag adgangskode: *<br /><input $red_repeat type='password' name='pw_repeat'> $fejl_repeat<p />"; echo "<input type='submit' name='opret_user' value='Opret'>"; echo "</form> "; echo "<p>OBS: felter med * skal udfyldes</p>"; //Variabler unsettes unset($fejl, $red_alder, $fejl_alder, $red_user, $fejl_user, $red_mail, $fejl_mail, $red_pw, $fejl_pw); } else { //Hvis ingen fejl, bliver bruger oprettet mysql_query("INSERT INTO users (id, brugernavn, password, pw_repeat, navn, efternavn, mail, alder) VALUES ('$id', '$brugernavn', '$password', '$pw_repeat', '$navn', '$efternavn', '$mail', '$alder')") or die('Mysql error'); echo "Bruger $brugernavn er oprettet"; } ?> </body> </html>
19. februar 2004 - 16:15
#6
jep du har ret.
19. februar 2004 - 16:18
#7
Nu modtager jeg endnu en uforståelig fejlmedd i min kode: <?php session_start(); ?> <html> <head> <title>Opret bruger</title> <link rel="stylesheet" type="text/css" href="stylesheet.css"> </head> <body> <?php $id = microtime(); $navn = $_REQUEST['navn']; $efternavn = $_REQUEST['efternavn']; $alder = $_REQUEST['alder']; $brugernavn = $_REQUEST['brugernavn']; $mail = $_REQUEST['mail']; $password = $_REQUEST['password']; $pw_repeat = $_REQUEST['pw_repeat']; $_SESSION['navn'] = $navn; $_SESSION['efternavn'] = $efternavn; mysql_connect("localhost", "root"); mysql_select_db("news"); //Fejl variabler sættes $red = "class='red'"; $udfyld = "<div id='red'>Feltet skal udfyldes</div>"; //Værdier til brugernavn variabler sættes $query_user = mysql_query("select * from users where brugernavn = '$brugernavn'") or die('Mysql error'); $number = mysql_num_rows($query_user); if($brugernavn == "") { $_SESSION['user'] = ""; $fejl = "fejl"; $fejl_user = $udfyld; $red_user = $red; } elseif($number > 0) { $fejl = "fejl"; $fejl_user = "<div id='red'>Det valgte brugernavn er optaget</div>"; $red_user = $red; $_SESSION['user'] = $brugernavn; } else { $_SESSION['user'] = $brugernavn; $red_user = ""; $fejl_user = ""; } //Værdier til mail variabler sættes $query_mail = mysql_query("select mail from users where mail = '$mail'") or die('Mysql error'); $number_mail = mysql_num_rows($query_mail); if($mail == "") { $fejl_mail = $udfyld; $fejl = "fejl"; $red_mail = $red; $_SESSION['mail'] = ""; } elseif($number_mail > 0) { $fejl = "fejl"; $fejl_mail = "<div id='red'>Den valgte E-mail adresse bliver allerede brugt af en anden bruger</div>"; $red_mail = $red; $_SESSION['mail'] = ""; } else { $_SESSION['mail'] = $mail; $red_mail = ""; $fejl_mail = ""; } //Variabler til alder sættes if($alder == "") { $fejl_alder = $udfyld; $fejl = "fejl"; $red_alder = $red; $_SESSION['alder'] = ""; } elseif($alder < 15) { $_SESSION['alder'] = $alder; $fejl_alder = "<div id='red'>Du skal være 15 år, eller derover for at oprette en bruger hos Slumkum</div>"; $fejl = "fejl"; $red_alder = $red; } else { $_SESSION['alder'] = $alder; $red_mail = ""; $fejl_alder = ""; } //Variabler til password sættes if($password == "") { $fejl_pw = $udfyld; $fejl = "fejl"; $red_pw = $red; $_SESSION['password'] = ""; } elseif($password != $pw_repeat) { $fejl_pw = "<div id='red'>De to indtastede kodeord er ikke identiske</div>"; $red_pw = $red; $fejl = "fejl"; $_SESSION['password'] = $password; } else { $fejl_pw = ""; $red_pw = ""; $_SESSION['password] = $password; //Variabler til pw_repeat sættes } if($pw_repeat == "") { $fejl_repeat = $udfyld; $fejl = "fejl"; $red_repeat = $red; $_SESSION['pw_repeat'] = ""; } if($pw_repeat != $password) { $fejl_repeat = "<div id='red'>De to indtastede kodeord er ikke identiske</div>"; $fejl = "fejl"; $red_repeat = $red; $_SESSION['pw_repeat'] = $pw_repeat; } else { $_SESSION['pw_repeat'] = $pw_repeat; $red_repeat = ""; $fejl_repeat = ""; } //Hvis isset fejl if(isset($fejl)) { echo "<form action='opret_check.php' method='post'>"; echo "<p><div id='red'>Brugeren kunne ikke oprettes. Fejlene står beskrevet med rødt længere nede</div>"; echo "Navn:<br /><input type='text' name='navn' value='{$_SESSION['navn']}'><br />"; echo "Efternavn:<br /><input type='text' name='efternavn' value='{$_SESSION['efternavn']}'><br />"; echo "Alder: *<br /><input $red_alder type='text' name='alder' value='{$_SESSION['alder']}'> $fejl_alder<br />"; echo "Ønsket brugernavn: *<br /><input $red_user type='text' name='brugernavn' value='{$_SESSION['user']}'> $fejl_user<br />"; echo "E-post: *<br /><input $red_mail type='text' name='mail' value='{$_SESSION['mail']}'> $fejl_mail<br />"; echo "Adgangskode: *<br /><input $red_pw type='password' name='password' value='{$_SESSION['password']}'> $fejl_pw<br />"; echo "Gentag adgangskode: *<br /><input $red_repeat type='password' name='pw_repeat' value='{$_SESSION['pw_repeat']}'> $fejl_repeat<p />"; echo "<input type='submit' name='opret_user' value='Opret'>"; echo "</form> "; echo "<p>OBS: felter med * skal udfyldes</p>"; //Variabler unsettes unset($fejl); unset($red_alder); unset($fejl_alder); unset($red_user); unset($fejl_user); unset($red_mail); unset($fejl_mail); unset($red_pw); unset($fejl_pw); } else { //Hvis ingen fejl, bliver bruger oprettet mysql_query("insert into users (id, brugernavn, password, pw_repeat, navn, efternavn, mail, alder) VALUES ('$id', '$brugernavn', '$password', '$pw_repeat', '$navn', '$efternavn', '$mail', '$alder')") or die('Mysql error'); echo "Bruger $brugernavn er oprettet"; } ?> </body> </html> Hvor den siger: Parse error: parse error, unexpected T_STRING, expecting ']' in /home/mikkel/webs/login/opret_check.php on line 131 Linje 131 ser således ud: $_SESSION['pw_repeat'] = ""; og der mangler da ingen [
Slettet bruger
20. februar 2004 - 00:50
#8
Tre tip: Skriv fejlmeddelelsen før koden. Så ved man, hvad man skal se efter, så man ikke først skal ned i bunden for at se fejlbeskeden og derefter op igen for at lede i koden. Fortæl mere præcist hvilekn linie, der giver fejlen. Jeg ved ikke med de andre, men jeg gider ikke sidde og tælle til 131. Du kan gøre det ved at skrive en kommentar i stil med // DETTE ER LINIE 131 i din kode. Og det tredje: Ryd op og lav indrykning i din kode. Så er det meget nemmere at overskue - både for dig selv og for os, der prøver at hjælpe. Din fejl optræder, fordi der mangler en ' i denne linie lidt højere oppe. $_SESSION['password] = $password; Derfor forsøger php at se på sessionsvariablen med dette (meget lange) navn: password ]= $password; //Variabler til pw_repeat sættes } if($pw_repeat == "") { $fejl_repeat = $udfyld; $fejl = "fejl"; $red_repeat = $red; $_SESSION[ for det er tegnene indtil næste ' kommer, og næste ' er netop i linien med $_SESSION['pw_repeat'] = "";
Vi tilbyder markedets bedste kurser inden for webudvikling