|
|
|
| Здравствуте, вот нашела на сайте подходящий скрипт регистрации и входа пользонателя, но есть проблема, после входа воводиться информация, но а после нажатия на ссылку или произведения как либо действия выводиться снова форма входа, помогите ПЛЗ!
<?php
$filename = "text.txt";
define("FIRST",1);
if(empty($_POST))
{
?>
<table>
<form method=post>
<form method=post action="2.php">
<tr>
<td>Namn:</td>
<td><input type=text name=name></td>
</tr>
<tr>
<td>Lösenord:</td>
<td><input type=password name=pass></td>
</tr>
<tr>
<td> </td>
<td><input type=submit value=' Logga in '></td>
</tr>
</form>
</table>
<?php
}
else
{
$_POST['pass']=md5($_POST['pass']);
setcookie ('name', $_POST['name'],1,time()+60,"index.php");
setcookie ('pass', $_POST['pass'],1,time()+60,"index.php");
$arr = file($filename);
$i = 0;
$temp = array();
foreach($arr as $line)
{
$data = explode("::",$line);
$temp['name'][$i] = $data[0];
$temp['password'][$i] = $data[1];
$temp['email'][$i] = $data[2];
$i++;
}
if(!in_array($_POST['name'],$temp['name']))
{
exit("Fel");
}
$index = array_search($_POST['name'],$temp['name']);
if($_POST['pass'] != $temp['password'][$index])
{
exit("ERROR");
}
//-------------------------------------------------------------------------------
if(isset($_GET['page'])) $mod = $_GET['page'];
if(isset($_GET['page'])==false) {$menu = 'home.htm';}
if(isset($mod))
{
switch($mod)
{
case '1':
echo $_COOKIE["pass"];
echo $_COOKIE["name"];
print "hello!";
break;
case '2': $menu='priser.htm';break;
default: $menu = 'home.htm'; break;
}
}
?>
<a href="?page=1">My Home Page!</a>
<?php
}
?>
|
| |
|
|
|
|
|
|
|
для: JESS
(18.03.2008 в 19:22)
| | Попробуйте вверху не if(empty($_POST)), а
if(empty($_COOKIE['name']) OR empty($_COOKIE['pass'])) | |
|
|
|
|
|
|
|
для: DEM
(18.03.2008 в 20:27)
| | даже ни какой реакции... =( | |
|
|
|
|
|
|
|
для: JESS
(18.03.2008 в 21:14)
| | в сессию поместите проверочное значение | |
|
|
|
|
|
|
|
для: moonfox
(18.03.2008 в 22:12)
| | setcookie ('name', $_POST['name'],1,time()+60,"index.php");
куки только на 60 секунд и вместо index.php поставьте хоть /
насколько знаю index.php означает что куки только для путей начинающихся с index.php | |
|
|
|
|
|
|
|
для: exp
(18.03.2008 в 22:39)
| | все изменил, но так и ни какой реакции.... | |
|
|
|
|
|
|
|
для: JESS
(18.03.2008 в 22:44)
| |
if(empty($_POST))
{
?>
<table>
<f
|
значит что форма для авторизации будет показываться всегда когда вы не отправляете её
// хотя поспешил
$data = explode("::",$line);
|
в файле text.txt имеются данные?
они совпадают ? | |
|
|
|
|
|
|
|
для: EXP
(18.03.2008 в 22:56)
| | да все совподает ... | |
|
|
|
|
|
|
|
для: EXP
(18.03.2008 в 22:56)
| | вообще-то всё правильно если не срабатывает exit("Fel");
:)
переделайте условие
там нужна уже проверка существующих правильных куки
или установка их из пост | |
|
|
|
|
|
|
|
для: exp
(18.03.2008 в 23:05)
| | что то ни чего не понимаю =( что нужно сделать... | |
|
|
|
|
|
|
|
для: JESS
(23.03.2008 в 01:20)
| | > if(empty($_POST))
if( empty($_POST) && !(isset($_COOKIE['name'] && isset($_COOKIE['pass']))) | |
|
|
|
|
|
|
|
для: Atheist
(23.03.2008 в 01:53)
| | вот пишет ошибку> Parse error: parse error, unexpected T_BOOLEAN_AND | |
|
|
|
|
|
|
|
для: JESS
(23.03.2008 в 02:13)
| | Извиняюсь: if( empty($_POST) && !( isset($_COOKIE['name']) && isset($_COOKIE['pass']) )) | |
|
|
|
|
|
|
|
для: Atheist
(23.03.2008 в 02:59)
| | Люди извините за флуд! как добавить тему. Главное зарегился добавляю тему. А она не добавляется. Нужно наверно ждать пока ее админы проверят? | |
|
|
|
|
|
|
|
для: Usta
(23.03.2008 в 03:05)
| | Вероятно произошёл сбой - попробуйте ещё раз. | |
|
|
|
|
|
|
|
для: Atheist
(23.03.2008 в 02:59)
| | спасибо огромное, все классно работает, хехе, вот только не знаю как кукускы установить что бы можно было через форму зайти и они сохранилить?!?!
куда
setcookie('password', '$password', time()+ 3600*24*10);
| вписать не знаю! помогите ПЛЗ! | |
|
|
|
|
|
|
|
для: JESS
(23.03.2008 в 03:58)
| | > setcookie('password', '$password', time()+ 3600*24*10);
При выделении строки апострофами, интерполяция переменных не происходит, т.е. ты получишь от строки '$password' не значение переменной $password, а так и получишь знак бакса со словом "password".
Надо писать setcookie('password', $password, time()+ 3600*24*10);
А эту строку можно запихнуть куда угодно - главное до вывода какой-либо информации посетителю.
Ну а в данном случае куда такое пихать не знаю, потому что в в коде нет переменной $password, т.е. смысл от этой cookie нулевой. А если в другом скрипте, то смотри по аналогии с этим кодом. | |
|
|
|
|
|
|
|
для: Atheist
(23.03.2008 в 11:19)
| | все классно, СПАСИБО! кукисы поставила, но вот сложновато дизайн настроить, после exit(); все исчазает, при ошибочном входе, при выводе ошибки..
Но при этом примере ползователь сможет просмотреть информацию после входа, щас я хочю сделать чтобы пользователь мог смотреть информацию до авторизации, но оставлять коментарии и т.д и .тп после.
Во решила использовать Сессии, после авторизации устанавливаються сессии:
<?
session_start();
$sid = session_id();
$_SESSION['sid'] = $sid;
$_SESSION['name'] = $_POST['name'];
?>
|
потом проверяюстся на главной странице:
session_start();
$sid = session_id();
if($sid != $_SESSION['sid'] )
{ print "Привет, Гость!<br>"; } else { print "Привет, ".$_SESSION['name']."<br>";}
|
Подскажите пожалуйста, я правельно делаю? | |
|
|
|