Не получается добавить сессию или кукисы на свой сайт. При переходе на следующую страницу сессия стирается, то бишь сделав простую проверку на
if( $_SESSION['login'] == true)
{echo 'Привет, ' . $_SESSION['login'] . '!';}
else {echo 'Привет, Гость!';}
выходит так, что сессия не передаёт ничего и она всегда в состоянии true.
вот сам исходник :
<?
$cur_page = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
function AuthForm ()
{
echo ('<form method=\'post\'>
<label>Логин: </label>
<input type = \'text\' name = \'login\'><br />
<label>Пароль: </label>
<input type = \'password\' name = \'password\'><br />
<input type = \'submit\' name = \'log\'>
</form>'
);
}
if(!empty($_POST))
{
if($_POST['login'] == "max")
{
if($_POST['password'] == "123")
{
echo "Залогинен";
$_SESSION['login'] = $_POST['login'];
}else {echo("Неправильный пароль.<a href='".$cur_page."'>Вернуться.</a>");}
}else {echo("Пользователь с таким именем не зарегистрирован<a href='#'>Вернуться.</a>");}
}
if (isset($_POST['session_out']))
{
unset($_SESSION["login"]);
session_destroy();
}
?>
то есть, когда я перехожу на следующую страницу, мне опять выдаёт что я не атворизован. ну вот как организованы две страницы на которые совершается переход, они обе идентичны, покажу лишь одну.
<?
session_start();
require ("auth.php");
if( $_SESSION['login'] == true)
{
echo $cur_page;
echo 'Привет, ' . $_SESSION['login'] . '!';
echo "<a href='p2.php'>На следующую страницу</a>";
echo('<form method=\"post\"><input type = \'submit\' name = \'session_out\' value = \'Выйти\'></form>');
}
else
{
echo 'Привет, Гость!';
AuthForm();
echo "</br>".$cur_page;
}
?>
если есть кто знает эту тему, очень нужно связаться, т.к. ничего толком не помогает. спасибо!
итак, отвечу на свой же вопрос , промучившись 4о суток.
<?
session_start();
require ("hide/auth.php");
if( $_SESSION['login'])
{
echo '</br>Привет, ' . $_SESSION['login'] . '!</br>';
echo "<a href='#'>На следующую страницу</a>";
echo $cur_page."\n\n";
}
else
{
echo 'Привет, Гость!';
AuthForm();
echo "</br>".$cur_page;
}
?>
сделав обычную проверку на
if( $_SESSION['login'])
всё завелось. вот исходник auth.php , не благодарите)))
<?
$main_page = 'http://'.$_SERVER['HTTP_HOST']."/";
$cur_page = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$logout_page = 'http://'.$_SERVER['HTTP_HOST']."/logout.php";
$filename = $main_page."hide/base.txt";
function AuthForm ()
{
echo ('<form method=\'post\'>
<label>Логин: </label>
<input type = \'text\' name = \'login\'><br />
<label>Пароль: </label>
<input type = \'password\' name = \'password\'><br />
<input type = \'submit\' name = \'log\'>
</form>'
);
}
if(!empty($_POST))
{
$arr = file($filename);
$i = 0;
$temp = array();
foreach($arr as $line)
{
$data = explode("|:|",$line);
$temp['login1'][$i] = $data[0];
$temp['password1'][$i] = $data[1];
$i++;
}
if(in_array($_POST['login'],$temp['login1']))
{
if(in_array($_POST['password'],$temp['password1']))
{
echo "Залогинен";
$_SESSION['login'] = $_POST['login'];
}else {echo("Неправильный пароль.<a href='".$cur_page."'>Вернуться.</a>");}
}else {echo("Пользователь с таким именем не зарегистрирован<a href='".$cur_page."'>Вернуться.</a>");}
}
?>
Данный исходник мой лично, и да, он без mySQL.
А, точно, вот ещё сама база данных .txt
max|:|123|:|user
Исходник полностью рабочий. Пользуйтесь.
Надо проверять наличие сессии, а не её значение:
if (isset ($_SESSION['login']))
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
У меня есть скрипт который отлично работает с базой, но проблема возникает когда пытаюсь отправить запрос содержащий кирилицу через php, когда...