23. juni 2003 - 13:56Der er
51 kommentarer og 1 løsning
fejl i php script
Jeg har lavet følgende kode, som melder en fejl :
Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in c:\apache\apache\htdocs\registrering\opdatering.php on line 97
Jeg har markeret stedet i koden med ********
<?php
//require( './valid.php'); if (empty($_POST[brugernavn])) { echo "Du mangler at indtaste dit brugernavn. Gå tilbage og prøv igen. "; exit; }
if (empty($_POST[password])) { echo "Du mangler at indtaste dit password. Gå tilbage og prøv igen. "; exit; }
if (empty($_POST[password2])) { echo "Du skal indtaste dit password to gange. Gå tilbage og prøv igen. "; exit; } if (empty($_POST[land])) { echo "Du mangler at indtaste det land du er bosat i. Gå tilbage og prøv igen. "; exit; }
if (empty($_POST[fornavn])) { echo "Du mangler at indtaste dit fornavn. Gå tilbage og prøv igen. "; exit; }
if (empty($_POST[eftnavn])) { echo "Du mangler at indtaste dit efternavn. Gå tilbage og prøv igen. "; exit; }
if (empty($_POST[adresse])) { echo "Du mangler at indtaste din adresse. Gå tilbage og prøv igen. "; exit; }
if (empty($_POST[postnr])) { echo "Du mangler at indtaste postnummer. Gå tilbage og prøv igen. "; exit; }
if (empty($_POST[byen])) { echo "Du mangler at indtaste by navn. Gå tilbage og prøv igen. "; exit; }
if (empty($_POST[tlf])) { echo "Du mangler at indtaste dit tlf. nr.. Gå tilbage og prøv igen. "; exit; }
if (empty($_POST[email])) { echo "Du mangler at indtaste din email adresse. Gå tilbage og prøv igen. "; exit; }
if (!eregi("^[a-zA-ZØ-9_]+@[a-zA-ZØ-9\-]+\.[a-zA-ZØ-9\-\.]+$" , $_POST[email])) { echo "Den indtastede email adresse er ikke gyldig. Gå tilbage og prøv igen. "; exit; }
// checker om de to indtasted passwords er ens if ($_POST[password] != $_POST[password2]) { echo 'De to passwords du har indtastet er ikke ens. Gå tilbage og prøv igen."; exit; }
// checker om password længden er ok if (strlen($_POST[password)]<6 | | strlen($_POST[password]) >16) { echo "Dit password skal indeholde mellem 6 og 16 karakterer. Gå tilbage og prøv igen"; exit; }
if ($_POST[brugernavn] && $_POST[password])
*****I LINIEN HERUNDER MELDER DEN FEJL********* { $db = mysql_connect("localhost","root"); mysql_select_db("registrering",$db); $query = "select * from kunde where brugernavn = '$_POST[brugernavn]' and password = '$_POST[password]'";
$result = mysql_query($query); if($result) { echo 'brugernavn og password er optaget. Gå tilbage og prøv en anden kombination.'; exit; } }
$sql="INSERT INTO kunde(brugernavn,PASSWORD,land,fornavn,eftnavn,adresse,postnr,byen,tlf,email) VALUES('$_POST[brugernavn]','$_POST[PASSWORD]','$_POST[land]','$_POST[fornavn]','$_POST[eftnavn]','$_POST[adresse]','$_POST[postnr]','$_POST[byen]','$_POST[tlf]','$_POST[email]')";
$result = mysql_query($sql) or die(mysql_error());
mail("dfg@jsj.dk","Nyt indlæg i gæstebogen fra ".$_POST[eftnavn],"From: ".$_POST[email]);
err...i din query hvor du tjekker om brugernavnet og passwordet er optaget bør du nok nøjes med at tjekke om brugernavnet er optaget. Ellers er det det samme som at sige: "Brugernavn og password er optaget. Gå tilbage og prøv en anden kombination, eller log in som ham der allerede er oprettet."
***********I LINIEN HERUNDER MELDER DEN FEJL******************* { $db = mysql_connect("localhost","root"); mysql_select_db("registrering",$db); $query = "select * from kunde where brugernavn = '$_POST[brugernavn]' and password = '$_POST[password]'";
// checker om de to indtasted passwords er ens if ($_POST[password] != $_POST[password2]) { echo 'De to passwords du har indtastet er ikke ens. Gå tilbage og prøv igen."; exit; }
fordi det du siger kan ikke passe hvis linie 97 i den fil er der hvor du siger den er burde du have fået fejl i linie 90 før du lavede de rettelser. Eftersom du siger du ikke fik det er der noget der er forkert i den information vi har.
Det er dog også mulig at der er en af rettelserne der er gået galt. den rettede linie skal være: if (strlen($_POST[password])<6 || strlen($_POST[password]) >16)
sammenlign tegn for tegn, eller kopier evt din linie ind her så vi kan sammenligne.
hoejgaard -> Se havde du nu bare postet dit script og sagt hvor fejlen var. så mener jeg det havde været lettere istedet for at indæstte nogle lininer hist og her for at vise hvor det er, men godt fejlen bleve rettet :o).
Nu er den fejl jo oven over det jeg rettede, men det jeg rettede til havde med stor sandsynlighed givet dig en ny fejl.
jeg har lige en ting til. den skriver nu følgende :
brugernavn og password er optaget. Gå tilbage og prøv en anden kombination. Og der er IKKE fordi det er optaget !! Men der er nok en fejl i min result, hvordan er det man gør det. Her er koden der læser fra databasen
if ($_POST[brugernavn] && $_POST[password]) { $db = mysql_connect("localhost","root"); mysql_select_db("registrering",$db);
$query = "select * from kunde where brugernavn = '$_POST[brugernavn]' and password = '$_POST[password]'";
$result = mysql_query($query); if($result) { echo "brugernavn og password er optaget. Gå tilbage og prøv en anden kombination."; exit; } }
$query = mysql_query("select * from kunde where brugernavn = '$_POST[brugernavn]' and password = '$_POST[password]'"); $result = mysql_fetch_array($query); if($result)
$query = mysql_query("SELECT COUNT(*) FROM kunde WHERE brugernavn = '$_POST[brugernavn]' AND password = '$_POST[password]'"); $row = mysql_fetch_array($query); if ($row['0'] == 0) { echo "brugernavn og password er optaget. Gå tilbage og prøv en anden kombination."; exit; }
dvs at når man skriver feks : brugernavn = '$_POST[brugernavn]' så tager det indtastede bruger navn som er $_POST[brugernavn]og holder op imod brugernavn som ligger i tabellen "kunde" og hvis brugernavn = '$_POST[brugernavn] så er der et match ????
Ja, vi skal jo kun teste brugernavnet ikke kodeordet ;o) To brugere kan jo gost have samme kode ->
$query = mysql_query("SELECT COUNT(*) FROM kunde WHERE brugernavn = '$_POST[brugernavn]'"); $row = mysql_fetch_array($query); if ($row['0'] == 0) { echo "brugernavn og password er optaget. Gå tilbage og prøv en anden kombination."; exit; }
$query = mysql_query("SELECT COUNT(*) FROM kunde WHERE brugernavn = '$_POST[brugernavn]'"); $row = mysql_fetch_array($query); if ($row['0'] != 0) { echo "brugernavn og password er optaget. Gå tilbage og prøv en anden kombination."; exit; }
Sådan det skal være != 0 Så hvis den nu havde været 0 havde der ikke været nogen.
dejligt det virker. Ved sku ikke hvad jeg skulle gøre hvis der ikke fandtes nogle som ahv og erik jacobsen og jacoba og hvad de nu ellers hedder herinde. Det er en super hjælp. TAK
Synes godt om
Slettet bruger
24. juni 2003 - 03:34#51
Det er godt at kunne få kompetent hjælp, ja.
Men til en anden gang, find selv dine syntax fejl. Det andet er sku for slapt - og spild af alles tid.
prøv sådan her ; $query = "select * from kunde where brugernavn = '$_POST[brugernavn]' and password = '$_POST[password]' order by id;
Synes godt om
Ny brugerNybegynder
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.