Avatar billede sylvesternielsen Nybegynder
14. november 2001 - 20:33 Der er 17 kommentarer og
4 løsninger

fejl i kode..... HJÆLP

jeg har før spurgt om det her.....
Jeg har en side hvor man indtaster bruger og password
Her er den:

<HTML>
<BODY>
<B>Indtast dit brugernavn og password......</B>
<form action=\"login.php\" method=post>
Brugernavn:<BR>
<input type=text name=brugernavn><br>
Password:<BR>
<input type=password name=password><br>
<input type=submit value=\"Login her\"><BR>
</form>
<A HREF=ny_bruger.php>Tryk her for at blive oprettet som bruger</A>
</HTML>
</BODY>

og så har jeg den side det bliver sendt til til bagefter.

her er den:

<HTML>
<BODY>
<?
error_reporting(E_ALL ^ ~E_WARNING);

mysql_connect(\"localhost\", \"admin\", \"pipsyl\")or die (mysql_error());
mysql_select_db(\"bruger\")or die (mysql_error());
mysql_query(\"SELECT * FROM bruger WHERE nick=\'$brugernavn\' and pass=\'$Password\'\");


if(mysql_num_rows(mysql_query(\"SELECT * FROM bruger WHERE nick=\'$brugernavn\' and pass=\'$Password\'\")) == 0)
{    echo (\"<CENTER><B>Brugernavn og password passer ikke sammen\");
    ?><br><a href=\'#\' onClick=\'history.back()\'>Tilbage</a><B></CENTER>
<?
} else {

echo \"<center><B>Du er logget ind....</B></center><BR>\";

$db = mysql_connect(\"localhost\",\"admin\",\"pipsyl\");
mysql_select_db(\"nyheder\",$db);
$hent = mysql_query(\"SELECT dato, overskrift, tekst FROM nyheder ORDER BY dato DESC LIMIT 0, 9\");
while($data = mysql_fetch_array($hent)){
echo \"<center><B>$data[1]</B> - \";
echo date(\"j/n - Y\", $data[0]);
echo \"<BR>$data[2]</center><BR><BR>\";
}

if (isset($tekst)){
  $db = mysql_connect(\"localhost\",\"admin\",\"pipsyl\");
  mysql_select_db(\"nyheder\", $db);
  $hent = mysql_query(\"SELECT dato, overskrift, tekst FROM nyheder WHERE tekst LIKE \'%$tekst%\' ORDER BY dato DESC\");
?> <center> <?
echo mysql_num_rows($hent) . \" forekomst(er) fundet<BR></center><BR>\";
  while ($data = mysql_fetch_array($hent)){
    echo \"<center><B>$data[1]</B> - \";
    echo date(\"j/n -Y\", $data[0]);
    echo \"<BR>$data[2]<BR><BR></center>\";}
?>
<center><B>Søg i databasen:</B>
<FORM METHOD=POST ACTION=<? echo $PHP_SELF; ?>>
<INPUT TYPE=TEXT NAME=tekst><BR>
<INPUT TYPE=SUBMIT VALUE=søg>
</FORM></center>
<?
} else {
?>
<center><B>Søg i databasen:</B>
<FORM METHOD=POST ACTION=<? echo $PHP_SELF; ?>>
<INPUT TYPE=TEXT NAME=tekst><BR>
<INPUT TYPE=SUBMIT VALUE=søg>
</FORM></center>
<?
}
?>
<?
}
?>
</BODY>
</HTML>


Her er problemmet så at den uanset hvad jeg gør skriver at brugernavn og password ikke passer sammen. Jeg har kørt en mysql test for at se om den finder noget og den returnere det rigtige password og brugernavn.. Hvad er fejlen her?
Avatar billede webmonster Nybegynder
14. november 2001 - 20:35 #1
du har angivet $password med lille p i din form , og som $Password med stort P i resten af koden!!!!..
Avatar billede morw Nybegynder
14. november 2001 - 20:35 #2
Du skal i al fald ikke køre den samme query 2 gange:

mysql_query(\"SELECT * FROM bruger WHERE nick=\'$brugernavn\' and pass=\'$Password\'\");


if(mysql_num_rows(mysql_query(\"SELECT * FROM bruger WHERE nick=\'$brugernavn\' and pass=\'$Password\'\")) == 0)
Avatar billede sylvesternielsen Nybegynder
14. november 2001 - 20:36 #3
UPS, det er rettet i koden. det er ikke det der er problemmet.
Avatar billede mortenfn Nybegynder
14. november 2001 - 20:49 #4
umiddelbart ingen egentlige fejl men nogle småting

som en start i din side 1

<form action=\"login.php\" method=get>

som fejlfindning post til get så kan du se i url-linjen om der sendes det du forventer
Avatar billede mortenfn Nybegynder
14. november 2001 - 20:53 #5
forskelden i de to sidste <form> hvad er den ?
Avatar billede webmonster Nybegynder
14. november 2001 - 20:53 #6
Jo der er fejl, for $password og $Password er ikke det samme, så du skal ændre :

<input type=password name=password><br>

til

<input type=password name=\"Password\"><br>

så burde det virke..
Avatar billede mortenfn Nybegynder
14. november 2001 - 20:54 #7
<HTML>
<BODY>
<B>Indtast dit brugernavn og password......</B>
<form action=\"login.php\" method=post>
Brugernavn:<BR>
<input type=text name=\"brugernavn\"><br>
Password:<BR>
<input type=password name=\"password\"><br>
<input type=submit value=\"Login her\"><BR>
</form>
<A HREF=ny_bruger.php>Tryk her for at blive oprettet som bruger</A>
</HTML>
</BODY>
Avatar billede mortenfn Nybegynder
14. november 2001 - 20:56 #8
som jeg husker skal angivede navne i \" \" ved f.eks. action=, name= value=

men hæng mig ikke op
Avatar billede mortenfn Nybegynder
14. november 2001 - 20:57 #9
her du

<input type=password name=\"password\"><br>

pass=\'$Password\'

store om små bokstaver
Avatar billede mortenfn Nybegynder
14. november 2001 - 20:58 #10
i en if-sætning se PHP forskeld på store og små bokstaver kan ikke huske om det også gælder for mysql
Avatar billede webmonster Nybegynder
14. november 2001 - 20:58 #11
Nu siger jeg endnu engang :

$hej = \"DAV\";

echo $Hej;

giver ikke noget resultat men : echo $hej; giver resultat.

Så du skal ændre form name til Password, så funker det...

Avatar billede webmonster Nybegynder
14. november 2001 - 20:59 #12
mortenfn den variabel der står i mysql queryen er jo en php variabel ....
Avatar billede mortenfn Nybegynder
14. november 2001 - 21:02 #13
yep - så der er forskeld på store og små bokstaver - så ikke dit første indlæg
Avatar billede mortenfn Nybegynder
14. november 2001 - 21:04 #14
der er flere skønhedsfejl som egentlig ikke gør en forskel med det kan blive mere overskuligt
Avatar billede webmonster Nybegynder
14. november 2001 - 21:06 #15
Ja dem er der mange af, men det er jo ikke det vi skulle svare på..
Avatar billede mortenfn Nybegynder
14. november 2001 - 21:10 #16
en gylden regl er vel at man altid skriver variabelnavne men små bokstaver, jeg har selv engang lavet fejlen !!!
Avatar billede sylvesternielsen Nybegynder
14. november 2001 - 21:21 #17
det er kun her på siden at den fejl er der. Det er med små bogstaver i min kode... :-)
Avatar billede sylvesternielsen Nybegynder
14. november 2001 - 21:22 #18
det ser ikke ud til at der er en fejl i min kode så det er måske på min server... Kan man så lukke den her eller skal jeg bare lade den stå åben?
Avatar billede sylvesternielsen Nybegynder
14. november 2001 - 21:23 #19
giver lidt point alligevel som tak for ulejligheden.
Avatar billede mortenfn Nybegynder
14. november 2001 - 21:25 #20
hvis du har fået svar så lukker du


<HTML>
<BODY>
<?
error_reporting(E_ALL ^ ~E_WARNING);

mysql_connect(\"localhost\",\"admin\",\"pipsyl\")or die (mysql_error());
mysql_select_db(\"bruger\")or die (mysql_error());

$res=mysql_query(\"SELECT * FROM bruger WHERE nick=\'$brugernavn\' and pass=\'$password\'\");

if(mysql_num_rows($res==0){
  echo \'<CENTER><B>Brugernavn og password passer ikke sammen<br><a href=\"#\" onClick=\"history.back()\"\'>Tilbage</a><B></CENTER>\';
  exit;
}
else{
  echo \"<center><B>Du er logget ind....</B></center><BR>\";

  $hent = mysql_query(\"SELECT dato, overskrift, tekst FROM nyheder ORDER BY dato DESC LIMIT 9\");
    while($data = mysql_fetch_array($hent)){
    echo \"<center><B>$data[1]</B> - \";
    echo date(\"j/n - Y\", $data[0]);
    echo \"<BR>$data[2]</center><BR><BR>\";
    }

  if($tekst){
    echo \"<center>\";
   
        $hent = mysql_query(\"SELECT dato, overskrift, tekst FROM nyheder WHERE tekst LIKE \'%$tekst%\' ORDER BY dato DESC\");
   
        echo mysql_num_rows($hent) . \" forekomst(er) fundet<BR></center><BR>\";
    while ($data = mysql_fetch_array($hent)){
      echo \"<center><B>$data[1]</B> - \";
      echo date(\"j/n -Y\", $data[0]);
      echo \"<BR>$data[2]<BR><BR></center>\";
        }
    }
  echo \"<center><B>Søg i databasen:</B><FORM METHOD=POST><INPUT TYPE=TEXT NAME=tekst><BR><INPUT TYPE=SUBMIT VALUE=søg></FORM></center>\";
}
?>
</BODY>
</HTML>
Avatar billede webmonster Nybegynder
14. november 2001 - 21:29 #21
den fejl du beskriver skyldes altså at du har lavet fejl med variablerne, men tak for alle de fine point godt delt ud...
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
Computerworld tilbyder specialiserede kurser i database-management

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