krijg inlog systeem niet werkend.
ik heb dit inlog systeem in mijn site verwerkt.
http://www.phphulp.nl/php/script/beveiliging/login-system-met-mysql/1606/
als ik de pagina opstart ziet dit er super uit en klik ik op de link registreren.
hij registreert perfect en dan kan je terug keren naar de inlog pagina.
alleen als ik wil inloggen geeft hij aan Username or Password is wrong!
heb gekeken maar kan niks vinden in de inlog.php
kom er maar niet achter waar ik het probleem moet zoeken.
misschien kan iemand mij helpen?
als er nog een deel van het script getoond moet worden roept u maar origineel te vinden op bovenstaande link.
<inlog.php>
<div id="container">
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
session_start();
$username = $_POST['username'];
$password = sha1($_POST['password']);
if($username && $password)
{
$connect = mysql_connect('localhost', 'database', 'password') or die ('Couldn\'t Connect');
mysql_select_db("database") or die ("Couldn\'t Find your database !");
$query = sprintf("SELECT id, username, password, nickname, date, email FROM users WHERE username ='%s' AND password ='%s'",
mysql_real_escape_string($username),
mysql_real_escape_string($password));
$rows = mysql_query($query);
$numrows = mysql_num_rows($rows);
if($numrows)
{
while($row = mysql_fetch_assoc($rows))
{
$dbusername = $row['username'];
$dbpassword = $row['password'];
$dbnickname = $row['nickname'];
$dbdate = $row['date'];
$dbemail = $row['email'];
}
echo("<p>Welcome back $dbusername !</p> <p>as nickname: $dbnickname</p><p>Account Registered at: $dbdate</p>");
echo("<p>Your Email address: $dbemail</p>");
echo("<a href='securitylogout.php'>Logout</a>");
$_SESSION['username']=$dbusername;
}
else
die("Username or Password is wrong!");
}
?>
session_start();
$username = $_POST['username'];
$password = sha1($_POST['password']);
if($username && $password)
{
$connect = mysql_connect('localhost', 'database', 'password') or die ('Couldn\'t Connect');
mysql_select_db("database") or die ("Couldn\'t Find your database !");
$query = sprintf("SELECT id, username, password, nickname, date, email FROM users WHERE username ='%s' AND password ='%s'",
mysql_real_escape_string($username),
mysql_real_escape_string($password));
$rows = mysql_query($query);
$numrows = mysql_num_rows($rows);
if($numrows)
{
while($row = mysql_fetch_assoc($rows))
{
$dbusername = $row['username'];
$dbpassword = $row['password'];
$dbnickname = $row['nickname'];
$dbdate = $row['date'];
$dbemail = $row['email'];
}
echo("<p>Welcome back $dbusername !</p> <p>as nickname: $dbnickname</p><p>Account Registered at: $dbdate</p>");
echo("<p>Your Email address: $dbemail</p>");
echo("<a href='securitylogout.php'>Logout</a>");
$_SESSION['username']=$dbusername;
}
else
die("Username or Password is wrong!");
}
?>
Gewijzigd op 15/09/2010 18:57:18 door Marcel sauer
en waar is de rest van de code?
if($username && $password)
zoek eens de topics af op woorden als:
- controle en validatie
alles aardig en leuk maar zo kan je toch echt niet omgaan met variabelen en vooral niet als waarden er aan toekend zijn welke van buiten komen. Maar waarom die overbodige variabelen aanmaken, nergens voor nodig.
Note: het is daarentegen ook heel onverstandig om een _connect en _select_db binnen ene if te verstoppen
ik heb nog niet veel verstand van het script schrijven en zo.
ik probeer het te leren maar heb hier hulp bij nodig vandaar de vraag wat er fout in zit.
ben voor mijn doen al een heel eind op weg maar kom niet verder.
en @ The Dutch Guy - thx wist niet dat die dingen overbodig waren heb even gegoogled.
ps : kan het ook mogelijk zijn dat hij het bij het register fout doet?
je kan in je mysql database niet terug vinden hoeveel geregistreerde je hebt en wi ehet zijn toch? van wegen privacy van wachtwoord enz.
Gewijzigd op 15/09/2010 19:18:50 door marcel sauer
Wat is het veld 'password' in de database voor veldtype?
Type : varchar(50)
Collatie : latin1_swedish_ci
Null : Nee
Gewijzigd op 15/09/2010 19:23:35 door marcel sauer
Als je nou eerst eens echo doet na bijv een query uitvoer, om puur te kijken of daar nog wat bijzonders gebeurd.
Gebruik tevens error_reporting(1)
Krijg je een foutmelding?
Al gekeken naar validatie?
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php //Register the user!
$register = sprintf("INSERT INTO users VALUES('', '%s', '%s', '%s', '%s')",
mysql_real_escape_string($username),
mysql_real_escape_string($password),
mysql_real_escape_string($nickname),
mysql_real_escape_string($date));
mysql_query($register); ?>
$register = sprintf("INSERT INTO users VALUES('', '%s', '%s', '%s', '%s')",
mysql_real_escape_string($username),
mysql_real_escape_string($password),
mysql_real_escape_string($nickname),
mysql_real_escape_string($date));
mysql_query($register); ?>
ik zag trouwens ook dat bij de register geen email kader stond dit hoort er wel bij dus heb die even aangemaakt.
krijg nu deze error :
Parse error: syntax error, unexpected ')' in /home/masafoto.nl/www/securitylogin.php on line 25
dat is de regel hieronder met die %s tekens wat moet ik hieraan veranderen?
Code (php)
1
2
2
<?php
$query = sprintf("SELECT id, username, password, nickname, date, email FROM users WHERE username ='%s' AND password ='%s'", ?>
$query = sprintf("SELECT id, username, password, nickname, date, email FROM users WHERE username ='%s' AND password ='%s'", ?>
EDIT :
is het misschien mogelijk op te checken wat je database opgeslagen heeft? zodat je kan zien of ik me geregistreerd heb en dit ook daadwerkelijk gelukt is?
ik heb de %s verwijdert op de registratie pagina en hiervoor in de plaats dit gezet
Code (php)
1
<?php $register = sprintf("INSERT INTO users VALUES('username', 'password', 'nickname', 'email', 'date')",?>
Gewijzigd op 16/09/2010 20:00:17 door marcel sauer