PHP скрипт логина 404 ошибка - PullRequest
1 голос
/ 26 января 2012

Я использовал учебное пособие по сценарию входа в систему здесь: http://www.astahost.com/info/tilltf-simple-login-script-simple-secure-login-script.html и когда я синхронизировал вход в систему, было 404. Когда я вернулся, я вошел в систему. Я следовал учебному пособию в точности так, как он сказал.Любая идея, почему он идет на эту странную страницу?

    <?php

session_start();
require_once 'database.php';
if (isset($_SESSION['user'])){

echo "Welcome ".$_SESSION['user'];

?>

<form name="logout" method="post" action="logout.php">

<input type="submit" name="logout" id="logout" value="Logout">

</form>

<br /><form name="news" method="post" action="news.php">

 <input type="submit" name="news" id="news" value="News">

</form>

<?php

}

elseif(isset($_SESSION['admin'])){

echo"Welcome ".$_SESSION['admin'];

echo"<br><br>You are logged in as an Admin";

?>

<form name="logout" method="post" action="logout.php">

<input type="submit" name="logout" id="logout" value="Logout">

</form>



</form>

<?php

}else{

?>

<form name="login_form" method="post" action="login2.php">

 <label>

 <input name="user" type="text" id="user">ID<br />

 <input name="pass" type="password" id="pass">Password<br />

 </label>

 <input type="submit" name="login" id="login" action="index.php" value="Login">

 </label>

 </p>

</form>

<form name="Register" method="post" action="reg.php">

 <input type="submit" name="register" id="register" value="Register">

</form><br />

<form name="news" method="post" action="news.php">

 <input type="submit" name="news" id="news" value="News">

</form>

<?php

 }

 ?>

Ответы [ 5 ]

1 голос
/ 27 января 2012

Этот учебник имеет пару перенаправлений заголовка:

header("location:Index.php");

и

header("location:index.php");

Убедитесь, что они не должны указывать на один и тот же файл, и убедитесь, что файл существует. Он регистрирует вас, а затем пытается перенаправить вас на файл, который не может найти.

1 голос
/ 27 января 2012

Взглянув на код, на который вы ссылались, я заметил, что login2.php пытается перенаправить в Index.php в некоторых случаях, но в index.php (в нижнем регистре i) в других случаях. Это должно быть строчными в обоих местах. Это может быть причиной вашего 404.

0 голосов
/ 27 января 2012

просто добавленное предупреждение: связанный пример имеет серьезную дыру в безопасности по этим линиям

$escaped_username = mysql_real_escape_string($username);
# make a md5 password.
$md5_password = md5($_POST['pass']);
$queryN = mysql_query("select * from user where username = '".$username."' and password = '".$md5_password."' AND level='1'");

$escaped_username генерируется правильно, но SQL-запрос все еще использует $username. это открывает возможность вводить операторы SQL. не забудьте изменить его.

0 голосов
/ 27 января 2012

Просматривая код по предоставленной вами ссылке, я вижу вероятную причину.В конце сценария обработки входа в систему есть вызов header(), который перенаправляет обратно на страницу индекса.Один из них имеет другой регистр, и многие веб-серверы по умолчанию чувствительны к регистру:

header("location:index.php");
header("location:Index.php");

Я предполагаю, что нижний регистр index.php правильный, поэтому обновите свой код соответствующим образом.*

0 голосов
/ 27 января 2012

В зависимости от вашего типа сервера это может вызвать проблемы:

if(mysql_num_rows($queryN) == 1) {

    $resultN = mysql_fetch_assoc($queryN);                   

    $_SESSION['user'] = $_POST['user']; 

    header("location:Index.php");    

}

В частности, потому что I в Index.php пишется с большой буквы, тогда как все другие ссылки на файл используют строчные буквы i.

Кроме того, этот код УЖАСНО отформатирован ... но, увы, это совсем другая проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...