2013-02-27 3 views
0

Прежде всего, английский не является моим родным языком, и уже поздно, и я ищу это с полудня. Поэтому, пожалуйста, будьте снисходительны.Форма входа в систему: нет перенаправления разрешенных страниц

У меня проблема с простой формой входа. Ну, это Войти форма настолько проста, что я думал, что не было никаких проблем ...

Что я сделал: Итак, я создал страницу index.php, который содержит регистрационную форму. При отправке сценарий проверяет, заполнены ли поля, подключитесь к БД, проверьте с данными в БД, и если пароль и логин верны, он начинает $ _SESSION и заполняет $ _SESSION ['login]. Затем он перенаправляет пользователя на страницу с содержимым бэк-офиса, с помощью session_start и проверки на $ _SESSION ['login']. Теоретически это сработает.

Но нет.

Что вопрос: , когда я ввести информацию в регистрационной форме и отправить его, ту же перезагрузки страницы и не перенаправляет меня на страницу BackOffice. ZERO ОШИБКА запускаемых

Мои коды: index.php

<?php 
    include('functions.php'); 
    login(); 
?> 
<!DOCTYPE html> 
<head> 
... 
</head> 
<body> 

<div id="main"> 
<h2>Authentification</h2> 
<form name="iam" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" > 
    <label for="login" class="iconic comment"> Login <span class="required">* </span> 
    </label> 
    <input type="text" required="required" name="login" id="login"> 
    <label for="mdp" class="iconic comment"> Password <span class="required">* </span> 
    </label> 
    <input type="password" required="required" name="mdp" id="mdp"> 
    <input type="submit" name="Submit" value="Submit"> 
</form> 
</div> 
</body> </html> 

Логин() в functions.php:

<?php 
include_once('conf/connec.php'); 
$connect_db=connect(); 

function login() { 

     if(isset($_POST['Submit'])) { 

      if(!empty($_POST['login']) && !empty($_POST['mdp'])) { 

       $query = mysql_query("SELECT mdp, login FROM 2K13_id WHERE login = '".md5($_POST['login'])."'"); 

       if(mysql_num_rows($query) == 1) { 
        $user = mysql_fetch_object($query); 

        // On vérifie la concordance des mots de passe (en md5) 
        if(md5($_POST['mdp']) == $user->mdp) {  
         session_start(); 
         $_SESSION['login'] = $user->login; 
         header("Location:backoffice.php"); 

        } else { 
         echo 'Mauvais mot de passe pour cet utilisateur.'; 
        } 

       } else { 
        echo 'Ce login n\'existe pas dans notre base.'; 
       } 
      } else { 
       echo 'Vous devez remplir tous les champs !'; 
      } 
     } 
    } 

?> 

И сгустка кода перед каждым HTML в моем backoffice.php:

<?php 
session_start(); 
    if(!isset($_SESSION['login'])) { 
     die("NO PASARAN"); 
    } 

Я действительно не знаю, почему я оборачиваюсь: я проверил все пароли и логин, каждый заголовок. (Для того, чтобы избежать проблем с-плюсом заголовка, я даже пытаться с грязного JS включения

echo '<script>document.location = "backoffice.php"</script>'; 

Я немного отчаяния, так что, если вы могли бы мне помочь или просто включить свет на возможную ошибку ошибка/PHP, я был бы полностью благодарен.

Спасибо!

ответ

1

Попробуйте закрыть входные теги. Вместо

<input type="text" required="required" name="login" id="login"> 
<label for="mdp" class="iconic comment"> Password <span class="required">* </span> 
</label> 
<input type="password" required="required" name="mdp" id="mdp"> 
<input type="submit" name="Submit" value="Submit"> 

Написать

<input type="text" required="required" name="login" id="login" /> 
<label for="mdp" class="iconic comment"> Password <span class="required">* </span> 
</label> 
<input type="password" required="required" name="mdp" id="mdp" /> 
<input type="submit" name="Submit" value="Submit" /> 

Также проверьте, вводите ли вы if с перенаправлением заголовка. У вас не должно быть выхода html перед ним, включая пустое пространство. И URL обычно должен быть абсолютным, а не относительным, поэтому добавьте http://...

+0

Привет @Marko, спасибо за ваше время и ваш ответ, я закрыл свои теги ввода (_even, если не закрывать их, это новый способ записи в HTML5_) , и я проверил: 'if': он введен. Я проверил, не писал ли я свой номер с некоторым пространством, или если я вызываю Html перед заголовком: nope ... Итак, я понятия не имею, почему мой файл не зашифрован ... но спасибо за предложения! – Gaelle

+0

и вы пробовали с абсолютным URL? –

+0

есть. С правильным путем. Не работает.Может ли это произойти от моего хоста, не допуская перенаправления заголовка? – Gaelle

Смежные вопросы