PHP Login MD5 Encrypty.
Maar nu was ik aan de login aan het werken.
En ik heb een probleempje.
Als ik probeer in te loggen krijg ik alleen.
'Foute Gebruikersnaam of wachtwoord.'
Ik weet niet wat ik fout heb gedaan.
Maar kan iemand me helpen.
Ojah voor je gaat flamen: DIT IS NOG EEN BETA VERSIE!!!!
Login.php:
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
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
<?php
if($_POST){
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="GangsterDay"; // Database 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
$username = $_POST['user'];
$password = md5($_POST['pass']);
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$sql="SELECT * FROM users WHERE name='$username' and password='$password'";
$namecheck = mysql_query("SELECT name FROM users WHERE name='$username'");
$nameexist = mysql_num_rows($namecheck);
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
session_register("username");
session_register("password");
header("location: login_success.php");
} else {
echo 'Foute naam of Wachtwoord.';
}
} else {
echo '<form action="?page=login" method="POST">
<br><p>Gebruikersnaam: <input type="textbox" name="user" class="username" />
<br>Wachtwoord: <input type="password" name="pass" class="password" />
<br><input type="submit" value="Login "></p>
</form>';
}
?>
if($_POST){
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="GangsterDay"; // Database 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
$username = $_POST['user'];
$password = md5($_POST['pass']);
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$sql="SELECT * FROM users WHERE name='$username' and password='$password'";
$namecheck = mysql_query("SELECT name FROM users WHERE name='$username'");
$nameexist = mysql_num_rows($namecheck);
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
session_register("username");
session_register("password");
header("location: login_success.php");
} else {
echo 'Foute naam of Wachtwoord.';
}
} else {
echo '<form action="?page=login" method="POST">
<br><p>Gebruikersnaam: <input type="textbox" name="user" class="username" />
<br>Wachtwoord: <input type="password" name="pass" class="password" />
<br><input type="submit" value="Login "></p>
</form>';
}
?>
Register.php:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
if($_POST){
//Define!
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'root');
define('MYSQL_PASS', '');
define('MYSQL_DB', 'GangsterDay');
//Variable's
$conn = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
$select = @mysql_select_db(MYSQL_DB);
$email = $_POST['email'];
$username = $_POST['user'];
$password = md5($_POST['pass']);
$vpassword = md5($_POST['subpass']);
$usercheck = mysql_query("SELECT name FROM users WHERE name='$username'");
$userexist = mysql_num_rows($usercheck);
$emailcheck = mysql_query("SELECT email FROM users WHERE email='$email'");
$emailexist = mysql_num_rows($emailcheck);
$ipcheck = mysql_query("SELECT ip FROM users WHERE ip='$ip'");
$ipexist = mysql_num_rows($ipcheck);
$ip = $_SERVER['REMOTE_ADDR'];
$query = "INSERT INTO users (name, password, email, active, money, ip)
VALUES('$username', '$vpassword', '$email', '0', '10000', '$ip')";
//Query controle.
if($query){
//IP Controle of de gebruiker all een account heeft.
if(!$ipexist == 0){
echo '<center style="color: white;">Je hebt all een account op, GangsterDay.
<br>Gelieven op je ander account in te loggen.</center>';
exit;
}
//Als De gebruikersnaam all bestaat.
if(!$userexist == 0){
echo '<center style="color: white;">Gebruiker Bestaat all.
<br>Gelieven een andere gebruikersnaam te nemen.</center>';
unset($username);
exit;
}
//Als de Wachtwoorden Niet Gelijk zijn.
if($password !== $vpassword){
echo '<center style="color: white;">Wachtwoorden niet gelijk.
<br><a href="javascript:history.go(-1)">Ga terug</a> en vul de juiste wachtwoorden in.</center>';
unset($password);
unset($vpassword);
exit;
}
//Als het email adres all in gebruik is.
if(!$emailexist == 0){
echo '<center style="color: white;">Uw email adres is all in gebruik.
<br>Gelieven een andere mail te gebruiken.</center>';
exit;
}
mysql_query($query) or die(mysql_error());
mysql_close();
echo '<center style="color: white;">U bent nu geregistreerd.</center>';
} else {
echo mysql_error();
}
} else {
echo '<center><form action="?page=register" method="POST">
<br><p>Gebruikersnaam: <input type="textbox" name="user" class="username" />
<br>Wachtwoord: <input type="password" name="pass" class="password" />
<br>Bevestig Wachtwoord: <input type="password" name="subpass" class="bepassword" />
<br>Emailadress <input type="textbox" name="email" class="email"/>
<br><input type="submit" value="Registreren "><input type="reset" value="Reset de Text">
</form>
<br>
<br>
<img src="images/1/advert_001.png" align="center"/>
</p></center>';
} ?>
if($_POST){
//Define!
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'root');
define('MYSQL_PASS', '');
define('MYSQL_DB', 'GangsterDay');
//Variable's
$conn = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
$select = @mysql_select_db(MYSQL_DB);
$email = $_POST['email'];
$username = $_POST['user'];
$password = md5($_POST['pass']);
$vpassword = md5($_POST['subpass']);
$usercheck = mysql_query("SELECT name FROM users WHERE name='$username'");
$userexist = mysql_num_rows($usercheck);
$emailcheck = mysql_query("SELECT email FROM users WHERE email='$email'");
$emailexist = mysql_num_rows($emailcheck);
$ipcheck = mysql_query("SELECT ip FROM users WHERE ip='$ip'");
$ipexist = mysql_num_rows($ipcheck);
$ip = $_SERVER['REMOTE_ADDR'];
$query = "INSERT INTO users (name, password, email, active, money, ip)
VALUES('$username', '$vpassword', '$email', '0', '10000', '$ip')";
//Query controle.
if($query){
//IP Controle of de gebruiker all een account heeft.
if(!$ipexist == 0){
echo '<center style="color: white;">Je hebt all een account op, GangsterDay.
<br>Gelieven op je ander account in te loggen.</center>';
exit;
}
//Als De gebruikersnaam all bestaat.
if(!$userexist == 0){
echo '<center style="color: white;">Gebruiker Bestaat all.
<br>Gelieven een andere gebruikersnaam te nemen.</center>';
unset($username);
exit;
}
//Als de Wachtwoorden Niet Gelijk zijn.
if($password !== $vpassword){
echo '<center style="color: white;">Wachtwoorden niet gelijk.
<br><a href="javascript:history.go(-1)">Ga terug</a> en vul de juiste wachtwoorden in.</center>';
unset($password);
unset($vpassword);
exit;
}
//Als het email adres all in gebruik is.
if(!$emailexist == 0){
echo '<center style="color: white;">Uw email adres is all in gebruik.
<br>Gelieven een andere mail te gebruiken.</center>';
exit;
}
mysql_query($query) or die(mysql_error());
mysql_close();
echo '<center style="color: white;">U bent nu geregistreerd.</center>';
} else {
echo mysql_error();
}
} else {
echo '<center><form action="?page=register" method="POST">
<br><p>Gebruikersnaam: <input type="textbox" name="user" class="username" />
<br>Wachtwoord: <input type="password" name="pass" class="password" />
<br>Bevestig Wachtwoord: <input type="password" name="subpass" class="bepassword" />
<br>Emailadress <input type="textbox" name="email" class="email"/>
<br><input type="submit" value="Registreren "><input type="reset" value="Reset de Text">
</form>
<br>
<br>
<img src="images/1/advert_001.png" align="center"/>
</p></center>';
} ?>
Database opmaak:
Code (php)
1
2
3
2
3
id name password active money email ip
1 boedaka b36d331451a61eb2d76860e00 0 10000 [email protected] ::1
1 boedaka b36d331451a61eb2d76860e00 0 10000 [email protected] ::1
Verdere opmerkingen:
Zet error_reporting(E_ALL) aan.
Geen goede controle
if($_POST)
Maak daar van
if($_SERVER['REQUEST_METHOD'] == 'POST')
Gebruik geen @ om fouten te onderdrukken, maar los het op.
$conn = @mysql_connect(......
Haal $vars buiten de quotes
...WHERE name='$username' ...
Wordt
...WHERE name='" . $username . "' ...
Bouw nette foutafhandeling in voor de query's
Session_register is antiek.
Gebruik de superglobal $_SESSION['...']
Je 2e script is lek => SQL-Injection
San, Lees er boven BETA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Er gaat al zoveel fout dat je beter opnieuw kunt beginnen!
- je toont niet dat de sessie gestart wordt
- session_register is prehistory
- je vuurt onnodig "check" queries af
- sql injectie
- je maakt overbodige variabelen aan
- de juiste controles en validaties ontbreken
- or die() wil je niet in je code hebben, pas fatsoenlijke foutafhandeling toe
- je wilt niet stoppen met een exit, dat resulteert in invalid html, een verneukte pagina weergave
- inline style is ook niet echt handig, gebruik css
- onderdrukken van fouten door gebuik van @
- enz. enz.
Als je het password opslaat met md5 dan zal je in je where clause dit ook moeten doen en let op dat je database veld waarin je het wachtwoord opslaat op z'n minst 32 karakters moet kunnen bevatten
Sorry dat ik zo reageer maar ik krijg het ervan als mensen niet lezen watt ik schrijf...
Paco oste op 29/08/2010 12:10:30:
San, Lees er boven BETA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Dus ...... ?
Dus ik ben er nog aan aan het werken, Btw: Ik kan nog niet met sessie's werken ik doe pas 1maand PHP Waarvan ik 2 weken niet heb gedaan en 2 weken heb geleerd ;)
Als ik jou was zou ik gewoon luisteren en hetgeen ze hier geven van extra info/tips deze te accepteren of eventueel op te schrijven.
Denk niet dat San je helpt om op je systeem te werken hoor..
Het is niet om je te stangen dat we het zo zeggen; juist om je te helpen.
Paco oste op 29/08/2010 12:17:04:
Dus ik ben er nog aan aan het werken, Btw: Ik kan nog niet met sessie's werken ik doe pas 1maand PHP Waarvan ik 2 weken niet heb gedaan en 2 weken heb geleerd ;)
Dus een beta versie mag totaal fout gescript zijn en niemand mag daar iets zinnigs over vertellen. In dat geval: Zoek het lekker zelf uit.
leuk dankje voor de info San (:
Paco oste op 29/08/2010 12:13:15:
Sorry dat ik zo reageer maar ik krijg het ervan als mensen niet lezen watt ik schrijf...
We lezen wel, maar het lijkt mij dat BETA code hetgeen is wat er redelijkwijs in deze vorm in gebruik genomen gaat worden.
Wij wijzen je er nu al op dat je op een verkeerde manier werkt, zodat je in de toekomst wel direct codeert zoals het gecodeeerd zal moeten worden.
Maar er bestaat geen juiste manier van coden.
Base je zin daar maar eens op.
Maar Coden, heeft veel wegen, hoe je dingen kunt laten werken.
Met coden Moet niet altijd exact het zelfde als het beste zou zijn.
Ik studeer informatica en ik heb nog geen klo... PHP Geleerd.
Ik studeerde alleen maar visual basic.
Dus als je wild verwachten dat ik PHP Direct kan zit je goed mis.
Want VB.NET & PHP Is een heel groot verschil der informatie.
En ik durf te wedden, dat 3 kwart van deze mensen, nog niet eens een deftig progama kan schrijven in VB.NET --"
Je komt hier voor hulp, wij bieden die. Je kan zeggen hoe we hulp moeten bieden, of dat we hulp moeten bieden. Maar probeer a.u.b. ons niet beide te laten doen.
De logica van de te doorlopen procedurele stappen zal in feite altijd gelijk zijn.
Volgens mij is net niet slim om aan een beveiliging van een website te sleutelen als je nog maar 2 weken php heb gescript.
Jij wilt zo graag PHP schrijven, dan moet je blij zijn dat er (nog) mensen zijn die je willen helpen.
Er is geen standaard code, maar dat wilt niet zeggen dat je meteen alle veiligheidsmaatregelen moet negeren, en bagger code maakt.
Als je zoveel kritiek op PHP hebt, ga dan zelf naar de basics, C.
O wacht, daar ken je zeker geen drol van.
Met "ik weet het niet en ik ben nieuw wèèèèèèèèèèh" zul je geen brood verdienen.
Wat jij nu bied is dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
Reken uit: 15 delen door 4.
[kladblok]
15 = 14+ 1
14/4 is geheel ja of nee
15 = 13 + 2
13 is oneven dus kan niet geheel getal zijn
15 = 12 + 3
is 12 / 4 een geheel getal?
even denken... 3..
[/kladblok]
*jij gaat verder*
hmm, ik denk dat het antwoord ook ongeveer drie is ja.
[kladblok]
15 = 14+ 1
14/4 is geheel ja of nee
15 = 13 + 2
13 is oneven dus kan niet geheel getal zijn
15 = 12 + 3
is 12 / 4 een geheel getal?
even denken... 3..
[/kladblok]
*jij gaat verder*
hmm, ik denk dat het antwoord ook ongeveer drie is ja.
En nu de makkelijke manier, in een keer goed:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
*maak een schatting*
*Pakt rekenmachientje*
Tikt in: 15
*controleer*
Tikt in: / 4
*controleer*
Tikt in: =
*controleer antwoord*
15 / 4 = 3.75
Ik weet zeker dat het antwoord 3.75 is.
*Pakt rekenmachientje*
Tikt in: 15
*controleer*
Tikt in: / 4
*controleer*
Tikt in: =
*controleer antwoord*
15 / 4 = 3.75
Ik weet zeker dat het antwoord 3.75 is.
Was dat nou zo moeilijk om het in een keer goed te doen?
Gewijzigd op 29/08/2010 12:51:37 door P Lekensteyn
Haha wat een vergelijking xD
En probeer het dan opnieuw..
Toevoeging op 29/08/2010 16:24:09:
en nog iets voor de volgende keer: Doe het gewoon in 1 keer goed, krijg je dit soort zooi niet.