Avatar billede sito Nybegynder
22. april 2004 - 17:34 Der er 5 kommentarer og
1 løsning

Noget galt med formularen?

Hej

Forsøger at lave et login til mit site, og har gjort det ved at lave en formular, hvor brugeren indtaster et brugernavn og et password, som jeg så forsøger at matche med de brugere jeg har i en database. dette bliver gjort i scriptet login2.php, som brugeren aldrig ser, men brugeren bliver sendt til forsiden hvis dennes brugernavn/password matcher, ellers bliver han sendt ud af systemet via exit, og bliver bedt om at prøve igen.
Jeg kalder SQL sætningen via en funktion executeSQL(), som jeg selv har lavet, og den er der ikke noget galt med.

Problemet er, at selv om jeg udfylder både brugernavn og password får jeg at vide at jeg ikke har, og da jeg udkommaterede denne del af scriptet får jeg at vide at det ikke matcher, selv om det rent faktisk gør. Problemet ligger nok i, at der er noget galt med den måde formularen sender det videre på, da den øjensynligt ikke sender noget videre...

Jeg kan simpelthen ikke finde fejlen, og nu håber jeg på i kan hjælpe, da jeg har stirret mig blind på det...

Formularen:

<div align="center">Indtast Brugernavn og Password for at se siden:
    </div>
    <form action="login2.php" method="post">
 
      <div align="center">Brugernavn:
    <input type="text" name="brugernavn" size="20">
    Password:
    <input type="password" name="password" size="20">
    <input type="submit" name="send" value="Login">
  </div>

Og login2.php:

<?
    include ("funktioner.php");

   
if ($brugernavn =="" or $password =="") {
    echo "Du har glemt at indtaste brugernavn eller password!<br>";
    echo "<a href=\"index.html\">Prøv igen</a>";
    exit;
}

$strSQL="SELECT brugernavn, password FROM Brugere WHERE brugernavn='$brugernavn' AND password='$password'";

$resultat=executeSQL($strSQL);

if (mysql_num_rows($resultat) == 0){
echo "Du har indtastet et forkert brugernavn eller password<br>";
echo "<a href=\"index.html\">Prøv igen</a>";
exit;
}
else {
header ("Location: http://www.krpe.dk/speciale/forside.html");
exit;
}
   

?>

Hjælp!
Avatar billede taskmgr Nybegynder
22. april 2004 - 17:36 #1
Prøv at udskifte $brugernavn med $_POST['brugernavn'] og $password med $_POST['password'] alle steder.
Avatar billede taskmgr Nybegynder
22. april 2004 - 17:38 #2
Altså:

<?
    include ("funktioner.php");

   
if ($_POST['brugernavn'] =="" or $_POST['password'] =="") {
    echo "Du har glemt at indtaste brugernavn eller password!<br>";
    echo "<a href=\"index.html\">Prøv igen</a>";
    exit;
}

$strSQL="SELECT brugernavn, password FROM Brugere WHERE brugernavn='".$_POST['brugernavn']."' AND password='".$_POST['password']."'";

$resultat=executeSQL($strSQL);

if (mysql_num_rows($resultat) == 0){
echo "Du har indtastet et forkert brugernavn eller password<br>";
echo "<a href=\"index.html\">Prøv igen</a>";
exit;
}
else {
header ("Location: http://www.krpe.dk/speciale/forside.html");
exit;
}
   

?>
Avatar billede sito Nybegynder
22. april 2004 - 17:47 #3
Det virkede! Men mærkeligt, da jeg tidligere ikke har været nød til at anvende POST og GET på samme domæne...Kan den forklares?
Og opretter du et svar?
Avatar billede taskmgr Nybegynder
22. april 2004 - 17:54 #4
http://dk.php.net/manual/en/reserved.variables.php#reserved.variables.post

Din host har sikkert fravalgt register_globals :)
Avatar billede sito Nybegynder
22. april 2004 - 18:12 #5
Men jer har jo tidligere på samme domæne lavet scripts uden at anvende globals...så min host kan da ikke have fravalgt dem...
Avatar billede sito Nybegynder
22. april 2004 - 18:12 #6
jer=jeg
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