Nezar Nielsen wrote in dk.edb.internet.webdesign.serverside.php:
> Claus Jensen wrote:
> > $login = mysql_query("SELECT * FROM brugere WHERE
> > brugernavn='$REQUEST["brugernavn"]'") or die(mysql_error());
>
> ^ <-- det der anførselstegn konflikter med det
> der starter din select.
> Iøvrigt er din kode meget modtagelig for sql-injection, når du ikke
> escaper de ting du får ind, før du sender dem ind i sql'en, prøv noget i
> stil med:
>
> $login = mysql_query("SELECT * FROM brugere WHERE
> brugernavn='".mysql_real_escape_string($REQUEST["brugernavn"])."'") or
> die(mysql_error());
>
> > while ($row = mysql_fetch_array($login)) {
> > if ($_REQUEST['kodeord'] == '.$row["kodeord"].')
> > session_start();
> > $_SESSION["bruger_id"] = .$row["id"].;
> > $_SESSION["level"] = .$row["level"].;
> > header("Location: index.php?bruger=ok");
> > }
> > else {
> > header("Location: index.php?page=login&fail=login");
> > }
> > }
> > ?>
>
> Der er noget syntaxfejl og underlige tuborgklammer her, jeg tror du er
> ude efter(at indrykke forøger læsbarheden en HEL DEL):
>
> if(mysql_num_rows($login) == 1){
> $row = mysql_fetch_array($login);
> if ($_REQUEST['kodeord'] == $row["kodeord"]){
> session_start();
> $_SESSION["bruger_id"] = .$row["id"].;
> $_SESSION["level"] = .$row["level"].;
> header("Location: index.php?bruger=ok");
> }else {
> header("Location: index.php?page=login&fail=login");
> }
> }else {
> header("Location: index.php?page=login&fail=login");
> }
> } //lukker den første if ($_GET['do'] ...
>
> --
> Mvh. Nezar Nielsen
>
http://gorilla.dk
Efter at jeg har taget nogle af ideerne til mig er login.php kommet til at
se sådan herud:
<?php
include "database_login.php";
if ($_GET['page2'] == 'login' ) {
echo "<style type=\"text/css\">
<!--
..style1 {font-size: 9px}
-->
</style>
<div align=\"center\">
<form name=\"form1\" method=\"post\"
action=\"index.php?page=login&do=login\">
<table width=\"300\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"100\">Brugernavn:</td>
<td><input name=\"brugernavn\" type=\"text\"
id=\"brugernavn\"></td>
</tr>
<tr>
<td height=\"10\"></td>
<td height=\"10\"></td>
</tr>
<tr>
<td>Password:</td>
<td><input name=\"password\" type=\"password\"
id=\"password\"></td>
</tr>
<tr>
<td height=\"10\"></td>
<td height=\"10\"></td>
</tr>
<tr>
<td></td>
<td><div align=\"right\" class=\"style1\">
<div align=\"center\">
<input type=\"submit\" name=\"Submit\" value=\"Login\"
id=\"knap\">
</div>
</div></td>
</tr>
<tr>
<td height=\"10\"></td>
<td height=\"10\"></td>
</tr>
<tr>
<td></td>
<td><span class=\"style1\"><a
href=\"index.php?page=glemt_password\">Glemt password?</a> </span></td>
</tr>
</table>
</form>
</div>";
}
elseif ($_GET['do'] == 'login' ) {
$login = mysql_query("SELECT * FROM brugere WHERE
brugernavn='$REQUEST["brugernavn"]'") or die(mysql_error());
if(mysql_num_rows($login) == 1){
$row = mysql_fetch_array($login);
if ($_REQUEST['kodeord'] == $row["kodeord"]){
$_SESSION["bruger_id"] = .$row["id"].;
$_SESSION["level"] = .$row["level"].;
header("Location: index.php?bruger=ok");
}else {
header("Location: index.php?page=login&fail=login");
}
}else {
header("Location: index.php?page=login&fail=login");
}
}
elseif ($_GET['fail'] == 'login' ) {
echo "<div align=\"left\">Der er enten brugt forkert brugernavn eller
password.<br>Husk at der er forskel på store og små bogstaver.<br><a
href=\"index.php?page=login\">Prøv igen</a></div>";
}
?>
login.php bliver included i midten index.php, problemet er at login ikke
udskriver noget, selvom jeg går ind på selve login og skriver
login.php?page2=login, php'en melder ikke fejl, og jeg kan simpelthen ikke
se hvad der er galt? der bliver ikke udskrevet noget som helst, nogen der
som såen kan se hvad fejlen er?
--
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