Avatar billede bjkl Nybegynder
15. januar 2003 - 10:14 Der er 16 kommentarer og
1 løsning

Strcmp

Det er mig ikke muligt at sammenligne to strenge, som er identisk ved udskrivning. Dette menes at skyldes at at variablen der kommer fra mysql databasen ikke består at den samme længde, som den fra html-formularen. Koden ser ud som følgende. Hvad er problemet?


<?php
    $tbrugernavn = $_REQUEST["bruger"];
    $tpassword = $_REQUEST["passwordt"];

    $conn = mysql_connect("localhost", "xxxx", "xxxx");
    mysql_select_db("portal");

    $result = mysql_query("select * from brugere");
   
}
    if(strcmp ($tbrugernavn,"brugernavn")==0)    
        {
    echo "access";
    }
    mysql_close();

?>
Avatar billede sostack Nybegynder
15. januar 2003 - 10:23 #1
Hvor får du "brugernavn" fra i:
if(strcmp ($tbrugernavn,"brugernavn")==0) ??
mon ikke det skal være :
<?php
    $tbrugernavn = $_REQUEST["bruger"];
    $tpassword = $_REQUEST["passwordt"];

    $conn = mysql_connect("localhost", "xxxx", "xxxx");
    mysql_select_db("portal");

    $result = mysql_query("select * from brugere");

while($row = mysql_fetch_row($result)) {
if(strcmp ($tbrugernavn,$row["brugernavn"])==0) {
  echo "access";
}
}
mysql_close();
?>

//sostack
Avatar billede nikolajdu Nybegynder
15. januar 2003 - 10:23 #2
Du er sikker på du skriver det hele med småt ikke??? strcmp er case sensitive så der er forskel på store og små bogstaver....

Og hvorfor ikke... $_POST["bruger"]
Avatar billede sostack Nybegynder
15. januar 2003 - 10:35 #3
Hvis det skal være lige meget om man bruger store eller små bogstaver til brugernavn kan du bruge:
if(strcmp (strtolower($tbrugernavn),strtolower($row["brugernavn"]))==0)

//sostack
Avatar billede bjkl Nybegynder
15. januar 2003 - 11:41 #4
Det fungere stadig ikke. den vil ikke printe access. Måske ligger problemet i strengene af en elle anden årsag ikke er lige lang. Resultat er følgende

        echo strlen($tbrugernavn);//=4(ok)kommer fra formular
    echo strlen(bruger);//=6 (burde være 4) kommer fra database
Avatar billede bjkl Nybegynder
15. januar 2003 - 11:53 #5
Der var lige en fejl i overstående kode. Prøver igen


    echo strlen($tbrugernavn);//=4(ok)
    echo strlen(brugernavn);//=10 (burde være 4)
Avatar billede nikolajdu Nybegynder
15. januar 2003 - 11:55 #6
echo strlen($row["brugernavn"]);
Avatar billede nikolajdu Nybegynder
15. januar 2003 - 11:58 #7
$result = mysql_query("select * from brugere where brugernavn = '$_POST[bruger]'");
while($row = mysql_fetch_row($result)) {
echo strlen($row["brugernavn"]);
}
Avatar billede bjkl Nybegynder
15. januar 2003 - 11:59 #8
echo strlen($row["brugernavn"]);//giver 0
Avatar billede bjkl Nybegynder
15. januar 2003 - 12:03 #9
$result = mysql_query("select * from brugere where brugernavn = '$_POST[bruger]'");
while($row = mysql_fetch_row($result)) {
echo strlen($row["brugernavn"]);
}

giver også 0
Avatar billede sostack Nybegynder
15. januar 2003 - 12:09 #10
Hvad med:
$result = mysql_query("select * from brugere where brugernavn='" . $_POST["bruger"] . "'");
while($row = mysql_fetch_row($result)) {
echo strlen($row["brugernavn"]);
}
Avatar billede bjkl Nybegynder
15. januar 2003 - 12:15 #11
også 0
Avatar billede nikolajdu Nybegynder
15. januar 2003 - 12:16 #12
skummelt... :))
Avatar billede bjkl Nybegynder
15. januar 2003 - 12:19 #13
Ja..
Avatar billede erikjacobsen Ekspert
15. januar 2003 - 12:38 #14
brug mysql_fetch_array i stedet for mysql_fetch_row.
Så virker de nederste forslag vist udmærket.
Avatar billede nikolajdu Nybegynder
15. januar 2003 - 12:40 #15
ohhh... :))
Avatar billede bjkl Nybegynder
15. januar 2003 - 12:59 #16
jep
Avatar billede josini Nybegynder
15. januar 2003 - 13:17 #17
Hvad så med:
if(strcmp (trim($tbrugernavn),"brugernavn")==0)   
        {
    echo "access";
    }
.....
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