Jeg har code en login system til en ven men. jeg kan ikke lige se den fejl den må have siden jeg ikke kan få folk til at login
Nr 1: checklogin.php [code]
$host="host"; // Host name $username="username"; // Mysql username $password="password"; // Mysql password $db_name="Database"; // Database name $tbl_name="members"; // Table name
// Connect to server and select databse. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB");
// username and password sent from form $myusername=$_POST['first_name']; $mylastname=$_POST['last_name']; $mypassword=$_POST['mypassword'];
// To protect MySQL injection (more detail about MySQL injection) $myusername = stripslashes($myusername); $mylastname = stripslashes($last_name); $mypassword = stripslashes($mypassword); $myusername = mysql_real_escape_string($myusername); $mylastname = mysql_real_escape_string($last_name); $mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and mylastname='$last_name' and password='$mypassword'"; $result=mysql_query($sql);
// Mysql_num_row is counting table row $count=mysql_num_rows($result); // If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){ // Register $myusername, $mypassword and redirect to file "login_success.php" session_register("myusername"); session_register("mylastname"); session_register("mypassword"); header("location:login_success.php"); } else { echo "Wrong Username or Password"; }
Jeg kan ikke fåstå at den ikke giver mig lov til at log in. Jeg har før kørt med denne her der var der ingen problemmer. men den siger stadig "Wrong Username or Password" selv om at user og last og password er rigtig.
<?php $host="host"; // Host name $username="username"; // Mysql username $password="password"; // Mysql password $db_name="Database"; // Database name $tbl_name="members"; // Table name
// Connect to server and select databse. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB");
// username and password sent from form $myusername=$_POST['first_name']; $mylastname=$_POST['last_name']; $mypassword=$_POST['mypassword'];
// To protect MySQL injection (more detail about MySQL injection) $myusername = stripslashes($myusername); $mylastname = stripslashes($last_name); $mypassword = stripslashes($mypassword); $myusername = mysql_real_escape_string($myusername); $mylastname = mysql_real_escape_string($last_name); $mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and mylastname='$last_name' and password='$mypassword'"; $result=mysql_query($sql);
// Mysql_num_row is counting table row $count=mysql_num_rows($result); // If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){ // Register $myusername, $mypassword and redirect to file "login_success.php" session_register("myusername"); session_register("mylastname"); session_register("mypassword"); header("location:login_success.php"); } else { echo "Wrong Username or Password"; } ?>
I din checklogin.php refere du til form felterne...first_name, last_name og mypassword: $myusername=$_POST['first_name']; $mylastname=$_POST['last_name']; $mypassword=$_POST['mypassword'];
Mens du i selve formen kalder dem myusername, mylastname og mypassword: <input name="myusername" type="text" id="myusername"> <input name="mylastname" type="text" id="mylastname"> <input name="mypassword" type="text" id="mypassword">
Jeg ved ikke om det fixer problemet helt, men venter lige med at tjekke yderligere, til du har ændret dette :)
#6 Jamen så ret det ret det så din form felter og POST's passer sammen :)
Derefter skal du kigge på dine stripslashes og mysql_real_escape_string, efter min lille gennemgang af de to funktioner på php.net, tyder det på at du bruge disse forkert...
Med det du har lavet, så vil du ingen værdier have i dine tre viarbler, du kan jo selv forsøge at lave en echo, lige efter: echo $myusername . " - " . $mylastname . " - " . $mypassword;
Ser da også du til at du har lidt problemer med at huske hvad dine variabler hedder. Din sql er i hvert fald forkert: $sql="SELECT * FROM $tbl_name WHERE username='$myusername' and mylastname='$last_name' and password='$mypassword'";
Du har ingen $last_name variabel!
Og så bruger du session_register helt forkert. Brug i stedet variablen $_SESSION til det.
jeg her set set det. Men det ser udsom om det er server. Da jeg har prøvet det på en anden webserver. Jeg har da ratte de fejl der. den viker fint på den anden webserver.
Du bør nok kigge på forkellen på mellem de to servers indstillinger. Der er nok en af dem som har sat register_globals til on. Det kan dog ikke anbefales at programmere efter det, da det udgør en sikkerhedsrisiko. Du bør i stedet få rettet dine fejl, således at der virker på begge servere.
Vi tager den lige igen for arve prins knud. Der er INTET galt med dine hosts, det har bare forskellige indstillinger. Det er derimod din kode som er helt galt.
Vis os din til rettede kode, så vi kan hjælpe dig videre.
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.