Перенаправление проблемы - PullRequest
1 голос
/ 22 декабря 2011

У меня проблема с перенаправлением страницы. Я создал форму для проверки пользователей. Есть два разных типа пользователей. (обычный пользователь и администратор).

если это администратор, левая страница перейдет в loginadmin.php, иначе она войдет в loginusers.php. он отлично работает локально на моем компьютере. но не на линии.

когда я ввел имя пользователя и пароль обычного пользователя, у меня появляется сообщение об ошибке un Примечание: неопределенный индекс: пользователь в /homez.55/tzuhuich/www/development/aquarim/loginusers.php в строке 7.

и если я набрал имя пользователя и пароль администратора. он остается на той же странице. Не знаю почему?
Мне нужно передать этот проект моему профессору в начале января.: _ ( Помогите мне, пожалуйста!!! заранее спасибо.

Вот мой код:

loginvalide.php

<?php
session_start();
$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password="root"; // Mysql password 
$db_name="aquarium"; // Database name 
$tbl_name="client"; // Table name



// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form 
$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword'];

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
if ($result){
                $ligne = mysql_fetch_row($result);
                $username = $ligne[3];
                $password=$ligne[4];
                $droits=$ligne[5];
                $_SESSION["acces"]="oui";
                $_SESSION["username"]=$username;
                $_SESSION["password"]=$password;

            } 
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){

// Register $myusername, $mypassword and redirect to file "login_success.php"
if ($droits ==1) {


header("location:loginadmin.php");
}else {

header("location:loginusers.php");}

}
else {
echo "Wrong Username or Password";
}
?>

<? 
session_start();
if($_SESSION['acces']!="oui" || $_SESSION["droits"]!=1) {
    header("Location:main_login.php");
}
else{
    $_SESSION['admin']++;
}

?>
loginadmin.php

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8" />
<title>page admin</title>
</head>
<body>


    <p> admin </p>
    <ul> 
        <li><a href="fomulaireajout.php">ajouter poisson</a>  </li> 
        <li><a href="modifier.php">modifer</a> </li> 
        <li><a href="suprimpossion.php"> supprimer </a> </li> 
    </ul>
</body>
</html>


<?php
session_start();
if($_SESSION['acces']!="oui") {
    header("Location:main_login.php");
}
else{
    $_SESSION['user']++;
}
?>
loginusers.php

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8" />
<title>page poisspns</title>
</head>
<body>

    <p><br />
    <ul> 
        <li><a href="pagevisualisation.php">ourfish </a></li> 

    </ul>
</body>
</html>

Ответы [ 2 ]

2 голосов
/ 22 декабря 2011

Первое использование mysql_real_escape_string для $_POST переменных. Это недостаток безопасности.

Заголовок может быть отправлен только до начала любого выхода. Поэтому убедитесь, что выход не запущен. Иногда мы просто добавляем "" перед <?php, и его сложно найти. Если все в порядке, заголовок должен работать.

1 голос
/ 22 декабря 2011

Первый пункт, который нужно проверить, он входит в оператор if? Попробуйте распечатать что-нибудь.

Далее, есть ли еще какие-нибудь вызываемые перенаправления? большинство браузеров потерпит неудачу, если будет вызвано больше одного перенаправления.

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