<?php
session_set_cookie_params(180);
session_start();
include('sql_con.php');
if (isset($_POST['login'])) {
$passHash = md5($_POST['pass']);
$login = $_POST['login'];
// Проверка логина на плохие смиволы
if (!preg_match("/^\w{3,}$/", $login)) {
die('Неправильный логин!');
}
connect();
$res = mysql_query("SELECT status FROM users WHERE login='$login' and pass='$passHash'");
// Есть ли пользователь с таким логином?
if (mysql_num_rows($res) < 1) {
die('Неправильный логин/пароль <a href=index.php>На главную</a>');
}
// Стартуем сессию и записываем логин в суперглобальный массив $_SESSION
while($row = mysql_fetch_array($res))
{
if ($row['status']=='admin')
{
$_SESSION['admin'] = $login;
header("Location:admin.php");
echo 'Нажмите на <a href=admin.php>ссылку</a>, если ваш браузер не поддерживает автоматической переадрессации';
die();
}
}
$_SESSION['user'] = $login;
// Если определена страница с которой мы пришли,
// на нее и переадресуем, либо на главну
header("Location:main.php");
echo 'Нажмите на <a href=main.php>ссылку</a>, если ваш браузер не поддерживает автоматической переадрессации';
}
?>
а вот проверка вошел ли пользователь
if (!isset($_SESSION['user']))
{
echo '<a href=index.php>На главную<br></a>';
exit('Вы не авторизованы');
}
проверка на админа
if (!isset($_SESSION['admin']))
{
echo '<a href=index.php>На главную<br></a>';
exit('Вы не авторизованы');
}
сессии открыть не забыл в самом начале, работать работает, но не всегда
Спустя 6 минут, 53 секунды (16.02.2012 - 12:40) inpost написал(а):
session_set_cookie_params(180); - это можно убрать.
Так ты выведи на той странице, где проверка стоит - эти сессионные переменные(!).
В том файле тоже стартует сессия? Не верю.
Если другого кода нет, то всё работать должно!
Так ты выведи на той странице, где проверка стоит - эти сессионные переменные(!).
В том файле тоже стартует сессия? Не верю.
Если другого кода нет, то всё работать должно!
Спустя 3 часа, 38 минут, 55 секунд (16.02.2012 - 16:19) skater4 написал(а):
session_set_cookie_params(180); это нужно, чтобы сессия разрывалась через 3 минуты неактивности.
вот начало main.php.
на одном ноутбуке заходило только с фаерфокса, с остальных при правильном вводе показывало, что не авторизован, хотя куки включены, пробовал чистить историю итп - не помогало. с других компов все работало нормально со всех браузеров. на моем ноуте робит когда как. иногда зайдет иногда нет
<?php
session_set_cookie_params(180);
session_start();
include('menu.php');
include('sql_con.php');
вот начало main.php.
на одном ноутбуке заходило только с фаерфокса, с остальных при правильном вводе показывало, что не авторизован, хотя куки включены, пробовал чистить историю итп - не помогало. с других компов все работало нормально со всех браузеров. на моем ноуте робит когда как. иногда зайдет иногда нет
Спустя 17 часов, 29 минут, 27 секунд (17.02.2012 - 09:49) skater4 написал(а):
убрал session_set_cookie_params(180); и все заработало..)почему он обрубает сессию сразу, а не через 3 минуты?в некоторых браузерах..и можно ли как то без него выставить время жизни сессии, если на хостинге нет доступа к php.ini?
Спустя 4 часа, 16 минут, 38 секунд (17.02.2012 - 14:05) inpost написал(а):
Если на хостинге нет доступа, то пиши админам, чтобы они выставили через настройки свои.
Спустя 2 минуты, 4 секунды (17.02.2012 - 14:08) ADiel написал(а):
через htaccess обычно можно. Я так memory_limit увеличивал на дешевом хостинге и получал дорогой =)
Спустя 19 дней, 1 час, 11 минут, 9 секунд (7.03.2012 - 15:19) Timax написал(а):
<?php
include ("db.php");
?>
<?php
if ($_SERVER["REQUEST_METHOD"]=="POST"){
$login = trim($_POST['login']);
$pass = ($_POST['pass']);
$pass2 = ($_POST['pass2']);
if($login == ""){
die("<b>Login err...!</b><br />\n");
}elseif (!preg_match("/^\w{3,}$/", $login)) {
die ("<b>Login err...!!!</b><br />\n");
}if ($pass =="" || $pass2 =="") {
die ("<b>Password err...!</b><br />\n");
}elseif($pass !== $pass2){
die ("<b>Password err...!</b><br />\n");
}elseif(!preg_match("/^\w{3,}$/", $pass)) {
die ("<b>Password err...!!!</b><br />\n");}
$mdPassword = md5(md5($pass));
//connecting DB
$result = mysql_query("SELECT * FROM users WHERE login='$login'", $link).mysql_error();
$num_rows = mysql_num_rows($result);
if ($num_rows !=1) die ("This Login is Registred!..<br />\n").mysql_error();
else{
mysql_query("INSERT INTO users (login, pass) VALUES ('$login','$mdPassword')",$link);}
echo "User added..<br />\n";
print "<script language='Javascript'>function reload() {location = \"form.php\"}; setTimeout('reload()', 2000);</script>";
mysql_close($link);
}
?>
======================================
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Z:\home\test.ru\www\login.php on line 27
ПОМОГИТЕЕЕ
include ("db.php");
?>
<?php
if ($_SERVER["REQUEST_METHOD"]=="POST"){
$login = trim($_POST['login']);
$pass = ($_POST['pass']);
$pass2 = ($_POST['pass2']);
if($login == ""){
die("<b>Login err...!</b><br />\n");
}elseif (!preg_match("/^\w{3,}$/", $login)) {
die ("<b>Login err...!!!</b><br />\n");
}if ($pass =="" || $pass2 =="") {
die ("<b>Password err...!</b><br />\n");
}elseif($pass !== $pass2){
die ("<b>Password err...!</b><br />\n");
}elseif(!preg_match("/^\w{3,}$/", $pass)) {
die ("<b>Password err...!!!</b><br />\n");}
$mdPassword = md5(md5($pass));
//connecting DB
$result = mysql_query("SELECT * FROM users WHERE login='$login'", $link).mysql_error();
$num_rows = mysql_num_rows($result);
if ($num_rows !=1) die ("This Login is Registred!..<br />\n").mysql_error();
else{
mysql_query("INSERT INTO users (login, pass) VALUES ('$login','$mdPassword')",$link);}
echo "User added..<br />\n";
print "<script language='Javascript'>function reload() {location = \"form.php\"}; setTimeout('reload()', 2000);</script>";
mysql_close($link);
}
?>
======================================
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Z:\home\test.ru\www\login.php on line 27
ПОМОГИТЕЕЕ
Спустя 4 часа, 28 минут (7.03.2012 - 19:47) ADiel написал(а):
Без оформления читать не буду