我在localhost有程序,有饼干和所有工作,我的意思是我的" autorisatrion"文字改为"个人资料"什么时候设置cookie。但当我登上网络托管时,他们突然停止工作。帮帮我pleeeaseeee 我是初学者,没有良好的背景,所以请你明确解释一下吗?
自动化文件中的代码
<?php
$res=mysqli_query($link,"set names utf8");
if (!isset($_COOKIE['id_users'])) { // если сотрудник еще не авторизоавлся, то
if (isset($_POST['submit'])) { // если нажата кнопка авторизации
$user_username = mysqli_real_escape_string($link, trim($_POST['email']));
$user_password = mysqli_real_escape_string($link, trim($_POST['password']));
if (!empty($user_username) && !empty($user_password)) { // если поля не пусты
// выполнить запрос: выбрать следующие данные, где эл. адрес и пароль совпадают
$query= "SELECT `id_users`, `email`, `privilege` FROM `accaunt_workers` WHERE
email = '$user_username' AND password = '$user_password'";
$data = mysqli_query($link, $query);
if (mysqli_num_rows($data) == 1) { // если такой сотрудник есть, то создать куки
$row = mysqli_fetch_assoc($data);
setcookie('id_users', $row['id_users'], time() + (60*60*24*30));
setcookie('email', $row['email'], time() + (60*60*24*30));
// если привилегия сотрудника подходит под определенную опцию,
//то перенаправление на определенную страницу с разными функциями администратора
if ($row['privilege'] === 'Все') {
echo '<script type="text/javascript">';
echo 'window.location.href="admin.php";';
echo '</script>'; }
ELSE {echo $row['privilege'],'НЕ Все';}
if ($row['privilege'] === 'Работа с клиентами: комментарии и предложенные темы') {
echo '<script type="text/javascript">';
echo 'window.location.href="admin_comment_theme.php";';
echo '</script>';
}
ELSE {echo " НЕ Работа с клиентами: комментарии и предложенные темы";}
if ($row['privilege'] === 'Работа с содержимым: материалы и рекомендации') {
echo '<script type="text/javascript">';
echo 'window.location.href="admin_material_recommendation.php";';
echo '</script>';
}
ELSE {echo 'НЕ Работа с содержимым: материалы и рекомендации';}
}
else{ echo 'Извините, введены неправильные логин или пароль';}
}
else{ echo 'Извините, заполните поля правильно';}
}
}
?>
<?php
if(empty($_COOKIE['email'])) { // если пользователь не авторизован, то вывод формы авторизации
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
Адрес электронной почты:
<input class='enter' type="email" name="email" required="required" placeholder="abc@mail.ru" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z.]{1,}+[a-z.]{1,}$">
Пароль:
<input class='enter' type="password" name="password" required="required" pattern="(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*">
<input class='enter' type='submit' name='submit' value="ВОЙТИ">
<footer class="clearfix">
<p><span class="info">?</span><a href="forget_pass.php">Забыли пароль?</a></p>
<p style="text-align: center; color:grey">*Если вы отсутствуете в системе, напишите на почту kontaev@inbox.ru*</p>
</footer>
</form>
<?php
}
else { //если пользователь авторизован, то вывод кнопки выхода, так как требуется повторная авторизация для перенаправления
?>
<P><a href="exit_accaunt.php"> Exit </a> </p>
<?php
}
?>
这里是人们在自动化之后的文件头部的代码
<ul class="menu"> <!-- меню-список страниц-->
<li><a href="index.php">Главная</a></li>
<li><a href="about.php">О нас</a></li>
<li><a href="materials.php">Материалы</a></li>
<li><a href="recomendations.php">Рекомендации</a></li>
<li><a href="Contacts.php">Контакты</a></li>
<?php
//Проверяем авторизован ли пользователь
if(!isset($_COOKIE['email']) && !isset($_COOKIE['password'])){
// если нет, то выводим ссылку на авторизациию
?>
<li><a href="form_auth.php">Authorisation</a></li>
<?php
}else{
//Если пользователь авторизован, то выводим ссылки на выход и профиль
?>
<li><a href="admin.php">Profile</a></li>
<li><a href="exit_accaunt.php">Exit</a></li>
<?php
}
?>
</ul>
答案 0 :(得分:0)
您正在检查$_COOKIE['password']
,但我没有在代码中看到您设置此Cookie。
将!isset($_COOKIE['password'])
更改为!isset($_COOKIE['users'])
。