inlog systeem
Ik ben bezig met een inlog systeem voor een website te maken voor me zelf.
aangezien deze op een eigen server gepost wordt en niet beschikbaar gaat zijn voor de buiten wereld gaat het me niet echt om de veiligheid.
zelf ben ik niet zo bekend in php maar we leren graag bij zo dus wie kan me helpen.
in de database zit 1 login in. nu het formulier stuurt door naar de verwerking van de login. maar ik krijg een fout die ik niet echt versta.
fout:
Fatal error: Uncaught Error: Call to undefined function mysql_real_escape_string() in /storage/ssd4/194/2951194/public_html/procces.php:8 Stack trace: #0 {main} thrown in /storage/ssd4/194/2951194/public_html/procces.php on line 8
html:
<html>
<head>
<title>Pi Home Life System V1.002</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div id="form">
<form action="procces.php" method="post">
<b>Username</b><br/>
<input type="text" id="username" name="username" /><br/>
<b>Password</b><br/>
<input type="password" id="password" name="password" /><br/>
<input type="submit" id="btn" value="Login" />
</form>
</div>
</body>
</html>
php verwerking:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$username = $_POST['username'];
$password = $_POST['password'];
$username = stripcslashes($username);
$password = stripcslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
mysql_connect("localhost", "*****", "*****" );
mysql_select_db("login");
$result = mysql_query("select * from user where username = '$username' and password = '$password'" )
or die("failed to quiry database" .mysql_error());
$row = mysql_fetch_array($result);
if($row['username'] == $username && $row['password'] == $password ) {
echo "login succes welcom " .$row['username'];
} else { echo"failed to login";
}
?>
$username = $_POST['username'];
$password = $_POST['password'];
$username = stripcslashes($username);
$password = stripcslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
mysql_connect("localhost", "*****", "*****" );
mysql_select_db("login");
$result = mysql_query("select * from user where username = '$username' and password = '$password'" )
or die("failed to quiry database" .mysql_error());
$row = mysql_fetch_array($result);
if($row['username'] == $username && $row['password'] == $password ) {
echo "login succes welcom " .$row['username'];
} else { echo"failed to login";
}
?>
Voor de rest, verdiep je in mysqli of PDO. mysql functies zijn uit PHP gehaald.
Daarnaast is het verstandig om je "password" veld te hernoemen, gezien dit een gereserveerd woord is.
Gewijzigd op 18/09/2017 20:39:46 door Ben van Velzen
password_hash en controleer ze met password_verify
En sla je passwoorden ook op met Gewijzigd op 21/09/2017 09:22:34 door Frank Nietbelangrijk
=
de functie mysql_real_escape_string() bestaat niet.
mysql_* functies zijn al een tijdje in de ban. Vanaf PHP versie 5.5.0 zijn deze functies deprecated en vanaf versie 7.0.0 zijn ze in het geheel verwijderd. Vermoeden: je gebruikt PHP 7.0.0+?
Gebruik mysqli-functies of -methoden of gebruik PDO voor communicatie met je MySQL-database.
Echo ook geen queries op je scherm als deze mislukken. Althans niet in een productie-omgeving. Het afbreken van de opbouw van je HTML-document is ook niet zo'n strak plan.
Gewijzigd op 19/09/2017 23:54:20 door Thomas van den Heuvel