Hejsa NG.
Jeg har et multi-login system hvor brugerne skal kunne logge ind,
dette kan de dog lidt for nemt og på de forkerte brugernavne via.
SQL-Injection. Har forsøgt med addslashes() men som om den ikke
registrerer det. Nogen der kan give en hånd?
login-ok.php:
<?php
require("../includes/config.php");
$login = &$HTTP_POST_VARS['login'];
if(empty($login)) {
echo 'Denne side kræver login adgang'; }
else {
if(empty($brugernavn) OR empty($password)) { //Her tjekkes om ET
af felterne er tomme.
echo 'Et af felterne er tomme'; }
else {
$brugernavn = addslashes($_POST['brugernavn']);
$password = addslashes($_POST['password']);
$query = "SELECT id, brugernavn, password FROM users WHERE
brugernavn = '".$_POST['brugernavn']."' AND password=
'".$_POST['password']."'";
$result = mysql_query($query)or die("MySQL fejl: " .
mysql_error());
$log = mysql_fetch_array($result);
if ($_POST['brugernavn'] = $log['brugernavn'] &&
$_POST['password'] = $log['password']) {
setcookie("bruger", "$brugernavn", time()+2592000);
setcookie("pass", "$password", time()+2592000);
header("location: index.php");
}
else {
echo 'forkert password';
}
}
}
?>
-------------------------------------------------------
login.php(formen kun):
<form action="login-ok.php" method="post">
<table>
<tr>
<td>
Brugernavn:</td> <td><input type="text" name="brugernavn" /></td>
</tr>
<tr>
<td>
Password:</td> <td><input type="password" name="password" /></td>
</tr>
<tr>
<td><input type="submit" name="login" value="Login" /></td>
</tr>
</table>
</form>
Hva jeg gerne vil have folk ikke kan køre SQL sætninger for at
logge ind, har formentlig overset en lille ting, men har stirret
mig blind på det.
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! =>
http://www.html.dk/tutorials