стоит задача авторизировать пользователя.. все действия происходят в одном скрипте скажем перемена $username.. её нужно как то получить как же отправить данные формы, а точней куда? HTML: <form method = "post" action = "ЧТО СУДА? ИЛИ СУДА НИ ЧЕГО НЕНУЖНО?"> Аккаунт:<br><input name = "user" type = "text" size = "15"><br> Пароль:<br><input name = "pass" type = "password" size = "15"><br> <input type = "submit" value = "Вход"> </form> повторю всё происходит в одном скрипте...
Код (Text): <form method = "post" action = ""> Аккаунт:<br><input name = "user" type = "text" size = "15"><br> Пароль:<br><input name = "pass" type = "password" size = "15"><br> <input type = "submit" value = "Вход"> </form> $username = $_POST['user'];
PHP: isset() ? ну да ладно.. теперь нужно когда нажимается кнопка "Вход" нужно запустить мою функция LoginTest() как? О_0
PHP: <?php include 'config.php'; if (isset($_SESSION['login'])){ if (!$_SESSION['login'] == true){ $login = 1; } else { $login = 2; } } else { $login = 2; } if ($login == 1){ LoginTest(); } if ($login == 2){ LoginOK(); } function LoginTest(){ global $login; global $array; global $EP; $userpass = SHA1(strtoupper($_POST['pass']).':'.strtoupper($_POST['pass'])); $test = mysql_query("SELECT `id`, `username`, `sha_pass_hash` FROM `username`='".$_POST['user']."' AND sha_pass_hash ='".$userpass."'"); if ($array = mysql_fetch_array($test)){ LoginSave(); } else { $login = 3; $EP = '<center><font color = "red">Пароль или аккаунт неверны</font></center>'; LoginError(); } } function LoginSave(){ global $login; global $array; global $_SESSION; session_start(); $UserID = $array['id']; $UserAcc = $array['username']; $_SESSION['userid'] = $UserID; $_SESSION['username'] = $UserAcc; $_SESSION['login'] = true; LoginOK(); } function LoginExit(){ global $_SESSION; unset($_SESSION['userid']); unset($_SESSION['username']); unset($_SESSION['login']); session_destroy(); } function LoginOK(){ $sel = 0; print '<table border = "3" align = "center" width = "1024" height = "500">'; print '<tr>'; print '<td width = "150">'; print '<a href = "acc.php">Главная</a><br>'; print '<a href = "acc.php?sel=1">Персонажи</a><br>'; print '<a href = "acc.php?sel=2">Опции</a><br>'; print '<a href = "acc.php?sel=3">Аукцион</a><br>'; print '<a href = "acc.php?sel=4">Лоты</a><br>'; print '<a href = "acc.php?sel=5">Выход</a><br>'; print '</td>'; print '<td>'; print $sel; switch($sel){ case 0: print "Главная"; break; case 1: print "Персонажи"; break; case 2: print "Опции"; break; case 3: print "Аукцион"; break; case 4: print "Лоты"; break; case 5: LoginExit(); break; } print '</td>'; print '</tr>'; print '</table>'; } function LoginError(){ global $EP; print '<table border = "3" align = "center" width = "300" height = "500">'; print '<tr>'; print '<td width = "150">'; print $EP; print '</td>'; print '</tr>'; print '</table>'; } ?> По моей задумки когда $login = 2 значит юзер уже авторизировался LoginOK(), $login = 1 значит не вошёл в систему LoginTest()! элемент PHP: if (isset($_SESSION['login'])){ if (!$_SESSION['login'] == true){ $login = 1; } else { $login = 2; } } else { $login = 2; } служит для проверки.. тут ошибка! ума не приложу.. как же тогда понять заходил ли юзер или нет?
=) лень все смотреть, но чем не устраивает использования ОДНОЙ переменной а не двух. Если в сессии уже есть значение залогинился или нет - то нафик еще одна переменная?
ррр не получается, после повторного захода ничего не сохраняется! может сессия не работает? я где то допустил ошибку?
Код (Text): if (isset($login)){ print "isset"; LoginTest(); } elseif ($login == 1){ print "login"; LoginOK(); }
Код (Text): function LoginSave(){ global $login; global $array; global $_SESSION; session_start(); $UserID = $array['id']; $UserAcc = $array['username']; $_SESSION['userid'] = $UserID; $_SESSION['username'] = $UserAcc; $_SESSION['login'] = $login; print $_SESSION['login']; LoginOK(); }
ExDragon напиши свою с нуля за 10 минут и все будет работать и сессион старт должен быть на своем месте