Avatar billede snowsilk Nybegynder
01. maj 2009 - 21:16 Der er 13 kommentarer

php login system

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";
}

[/code]

Den anden : login_success.php
[code]

session_start();
if(!session_is_registered(myusername)){
header("location:main_login.php");
}


<html>
<body>
Login Successful
</body>
</html>
[/code]


den trede : Logout.php
[code]

session_start();
session_destroy();

[/code]

Og den sidste er main_login.php
[code]
<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="form1" method="post" action="checklogin.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong> Member Login </strong></td>
</tr>
<tr>
<td width="78">First name</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td width="78">Last name</td>
<td width="6">:</td>
<td width="294"><input name="mylastname" type="text" id="mylastname"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input name="mypassword" type="text" id="mypassword"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
[/code]

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.
Avatar billede snowsilk Nybegynder
01. maj 2009 - 21:22 #1
Jeg ved ikke lige hvorfor den ikke skiver det rigtig her inden.
Men håber folk kan se igem det eller vil jeg lige ellers skive
Avatar billede CCodam Nybegynder
01. maj 2009 - 21:31 #2
#1 Du må næsten lige kopiere det over i Notepad først, og så derefter herind...eksperten plejer nu nok at kunne vise kodningen fornuftigt...
Avatar billede snowsilk Nybegynder
01. maj 2009 - 23:16 #3
Nr 1: checklogin.php

<?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";
}
?>

Den anden : login_success.php

<?
session_start();
if(!session_is_registered(myusername)){
header("location:main_login.php");
}
?>

<html>
<body>
Login Successful
</body>
</html>

den trede : Logout.php

<?
session_start();
session_destroy();
?>

Og den sidste er main_login.php

<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="form1" method="post" action="checklogin.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Second Life Member Login </strong></td>
</tr>
<tr>
<td width="78">First name</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td width="78">Last name</td>
<td width="6">:</td>
<td width="294"><input name="mylastname" type="text" id="mylastname"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input name="mypassword" type="text" id="mypassword"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
Avatar billede snowsilk Nybegynder
01. maj 2009 - 23:17 #4
sådan der.
Avatar billede CCodam Nybegynder
01. maj 2009 - 23:53 #5
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 :)
Avatar billede snowsilk Nybegynder
02. maj 2009 - 12:28 #6
Det gør det ikke jeg har prøvet det og lidt andet.

Men inden for de 2 ting men nej.
Den siger stadig "Wrong Username or Password"
Avatar billede CCodam Nybegynder
02. maj 2009 - 15:37 #7
#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;
Avatar billede dkfire Nybegynder
02. maj 2009 - 17:38 #8
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.
Avatar billede snowsilk Nybegynder
02. maj 2009 - 18:07 #9
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.

Så skal hvis lige have fat i min web host
Avatar billede dkfire Nybegynder
02. maj 2009 - 18:31 #10
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.
Avatar billede CCodam Nybegynder
02. maj 2009 - 20:14 #11
#9 Det er ikke din web host den er galt med, men din kode :|
Avatar billede snowsilk Nybegynder
03. maj 2009 - 13:04 #12
Læs "Jeg har da ratte de fejl der."
lige som at sige jeg har ratte og code. Men der er også noget i vejn med host. da  de vike på en anden host.
Avatar billede dkfire Nybegynder
03. maj 2009 - 15:03 #13
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.
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