Avatar billede itmouse Nybegynder
20. december 2010 - 00:22 Der er 5 kommentarer og
1 løsning

You don't have permission to access /login.system/< on this server.

Hej, jeg har fulgt en guide på nettet omkring et lille loginsystem baseret på PHP og mysql.

Jeg får dennefejl når jeg kører scriptet: "You don't have permission to access /login.system/< on this server."

Det er som om der er noget galt her:
<form id="form1" name="form1" method="post" action="<? echo $PHP_SELF; ?>">

Ved ikke helt, måske en kan hjælpe?
Tak.

--------------------------------------------------
<?
// Use session variable on this page. This function must put on the top of page.
session_start();

////// Logout Section. Delete all session variable.
session_destroy();

$message="";

////// Login Section.
$Login=$_POST['Login'];
if($Login){ // If clicked on Login button.
$username=$_POST['username'];
$md5_password=md5($_POST['password']); // Encrypt password with md5() function.

// Connect database.
$host="localhost"; // Host name.
$db_user="root"; // MySQL username.
$db_password=""; // MySQL password.
$database="agnvig_1"; // Database name.
mysql_connect($host,$db_user,$db_password);
mysql_select_db($database);

// Check matching of username and password.
$result=mysql_query("select * from admin where username='$username' and password='$md5_password'");
if(mysql_num_rows($result)!='0'){ // If match.
session_register("username"); // Craete session username.
header("location:main.php"); // Re-direct to main.php
exit;
}else{ // If not match.
$message="--- Incorrect Username or Password ---";
}

} // End Login authorize check.
?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<? echo $message; ?>
<form id="form1" name="form1" method="post" action="<? echo $PHP_SELF; ?>">
<table>
<tr>
<td>User : </td>
<td><input name="username" type="text" id="username" /></td>
</tr>
<tr>
<td>Password : </td>
<td><input name="password" type="password" id="password" /></td>
</tr>
</table>
<input name="Login" type="submit" id="Login" value="Login" />
</form>
</body>
</html>
Avatar billede erikjacobsen Ekspert
20. december 2010 - 00:54 #1
At bruge
  session_register("username");
tyder på meget gammel kode. Du skal i steder for
  $_SESSION['username']=$username;

Og din er kode er formentlig åben for SQL-injection, så lad være med at lægge den på nettet lige nu.
Avatar billede itmouse Nybegynder
20. december 2010 - 21:33 #2
Oh ok.

Hvordan sikre jeg den egentlig imod SQL-injection?
Avatar billede erikjacobsen Ekspert
20. december 2010 - 21:59 #3
Det er en længere historie

1) Default indstilling i PHP er nu om dage, at der ikke automatisk sættes \ foran ' i input. Der er webhoteller, der bruger den nye indstilling, men ikke alle. http://php.net/manual/en/security.magicquotes.php

2) Derfor skal (kan - der er andre muligheder) man fjerne \-ere, hvis de er sat ind automatisk:  http://dk.php.net/manual/en/function.get-magic-quotes-gpc.php

3) Dernæst skal man i SQL bruge parameters, fx mysqli: http://php.net/manual/en/book.mysqli.php

Man med fordel glemme bøger, artikler og tutorials, der ikke tager højde for ovenstående.
Avatar billede itmouse Nybegynder
21. december 2010 - 23:09 #4
Tak for hjælpen bare smid et svar
Avatar billede erikjacobsen Ekspert
21. december 2010 - 23:35 #5
Jeg samler slet ikke på point, tak.
Avatar billede itmouse Nybegynder
15. maj 2011 - 18:12 #6
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester