Хорошо, вот странный.Я пытаюсь разобраться с моей первой системой входа в систему, так что терпите меня.
Есть 2 страницы.PageA.php имеет форму входа.Заполните форму и отправьте ее на страницу PageB.php.PageB выполняет проверку базы данных, извлекает результаты и устанавливает cookie со значением имени пользователя.Затем PageB использует заголовок ('location: PageA.php'), чтобы перенаправить обратно на страницу PageA, где PageA должен ГИПОТЕТИЧЕСКИ увидеть, что существует установленный файл cookie, и изменить его на что-то бесполезное и глупое (например, echo "Welcome back, username").НО проблема здесь.Все идет по плану, за исключением этого чертово приветственного заявления.По какой-то причине печенье не установлено.Или я так думаю.Затем я возвращаюсь к URL-адресу, повторно набираю URL-адрес в моем браузере, нажимаю Enter и затем вуаля.Печенье теперь распознано, и все работает прекрасно.Это работает даже так, что если вы затем выйдете из системы и снова войдете в систему, вам не нужно будет выполнять перезагрузку.
Кроме того, вход в систему ТАКЖЕ работает, если вы просто вводите информацию дважды (то есть она не работаетв первый раз, затем вы делаете это снова сразу же на PageA, и тогда он работает).Вот соответствующий код:
PageA.php:
<?php if(empty($_COOKIE['user'])){?>
<form action="PageB.php" method="get">
<input onfocus="this.value='';" maxlength="35" type="text" class="username" value="Username" name="username" />
<input onfocus="this.value='';" maxlength="12" type="password" class="username" value="Password" name="password"/>
<input type="image" id="login" src="Images/home/login_button.png" />
</form>
<?php }
else {
echo "<div id='welcome'>Welcome, ".$_COOKIE['user']."!</div>
";
}?>
PageB.php:
$query="SELECT * FROM users where username='".$user."' and password='".$pw."' LIMIT 1";
$result=mysql_query($query,$con);
$num_rows = mysql_num_rows($result);
if($num_rows>0){
while($row = mysql_fetch_array($result)){
$username=$row['username'];
}
if(isset($_COOKIE['user'])){
setcookie('user',$username,time()-2000);
}
setcookie('user',$username,time()+3600*168,"/");
}
mysql_close();
header('location:PageA.php');
Еще более странно то, что у меня нет проблем на локальном хосте,только когда он включен (Bluehost).Любое понимание будет с благодарностью!Заранее спасибо.
РЕДАКТИРОВАТЬ: я забыл упомянуть, что PageA является индексом (так на самом деле называется index.php).Мой заголовок (местоположение) фактически перенаправляет на URL (например, header ('location: http://www.domainname.com').). Однако теперь я узнал, что весь процесс работает, когда я перенаправляю на index.php вместо имени домена. Но теперь у меня есть этот уродливый "/index.php "в URL.