PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (1): [1]
Найдено сообщений: 9
smittt
Отправлено: 18 Октября, 2013 - 21:43:03 • Тема: проблема с сессией • Форум: Если скрипт не работает
Ответов: 16 Просмотров: 4329
В общем так и не разобрался с тем скриптом, понятия не имею, что там было не так. С сессиями все было и есть нормально. Что то не так было в коде, что не знаю. Переписал код на вот такое :
PHP:
скопировать код в буфер обмена
<?PHP
function logout( ) {
header ( "Location: http://" . $_SERVER [ 'HTTP_HOST' ] . "/pass/" ) ; return true ;
}
function showLoginForm( ) {
?>
<link rel="stylesheet" type="text/css" href="style.css" />
<div class="add" align="center">
<form method="post">
<table>
<tr>
<td>Login:</td><td><input type="text" name="login" /></td>
</tr>
<tr>
<td>Passwd:</td><td><input type="password" name="passwd" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Login" /></td>
</tr>
</table>
</form>
</div>
<?PHP
}
if ( isset ( $_POST [ 'login' ] ) && isset ( $_POST [ 'passwd' ] ) ) { include ( "#mysql.inc" ) ;
$q = "SELECT * FROM `users` WHERE `login`='{$login} ' AND `passwd`='{$passwd} ' LIMIT 1" ;
$_SESSION [ 'id' ] = $row [ 'uid' ] ;
$_SESSION [ 'ip' ] = $_SERVER [ 'REMOTE_ADDR' ] ;
header ( "Location: http://" . $_SERVER [ 'HTTP_HOST' ] . $_SERVER [ 'REQUEST_URI' ] ) ; } else {
die ( "incorrect login info" ) ; }
}
if ( isset ( $_GET [ 'action' ] ) && ( $_GET [ 'action' ] == 'logout' ) ) logout( ) ;
if ( ! isset ( $_SESSION [ 'id' ] ) OR
$_SESSION [ 'ip' ] != $_SERVER [ 'REMOTE_ADDR' ] ) { showLoginForm( ) ;
}
?>
smittt
Отправлено: 15 Октября, 2013 - 14:36:07 • Тема: проблема с сессией • Форум: Если скрипт не работает
Ответов: 16 Просмотров: 4329
перехватил темпером сессию
CODE (
htmlphp ):
скопировать код в буфер обмена
PHPSESSID= pseim09246uc2vak86qn6d2ad7; path=/
root
@ debian
- min :/ var
/ www
/ ххххх
/ data
/ mod
- tmp
# ls -la | grep pseim09246uc2vak86qn6d2ad7 - rw------- 1 www- data hms 88 Oct 15 15: 34 sess_pseim09246uc2vak86qn6d2ad7
root
@ debian
- min :/ var
/ www
/ ххххх
/ data
/ mod
- tmp
#
(Добавление)
Весь error.log за сегодня
но эта ошибка была и вчера и позавчера и еще ранее, не думаю, что она имеет отношение к этим скриптам
CODE (
htmlphp ):
скопировать код в буфер обмена
[ Tue Oct 15 00: 41: 23 2013] [ error] [ client 127. 0. 0. 1] ( 13) Permission denied: cannot read directory for multi: / var/ www/
[ Tue Oct 15 00: 41: 24 2013] [ error] [ client 127. 0. 0. 1] ( 13) Permission denied: cannot read directory for multi: / var/ www/
[ Tue Oct 15 00: 41: 26 2013] [ error] [ client 127. 0. 0. 1] ( 13) Permission denied: cannot read directory for multi: / var/ www/
[ Tue Oct 15 12: 28: 23 2013] [ error] [ client 127. 0. 0. 1] ( 13) Permission denied: cannot read directory for multi: / var/ www/
[ Tue Oct 15 12: 39: 19 2013] [ error] [ client 127. 0. 0. 1] ( 13) Permission denied: cannot read directory for multi: / var/ www/
[ Tue Oct 15 13: 43: 48 2013] [ error] [ client 127. 0. 0. 1] ( 13) Permission denied: cannot read directory for multi: / var/ www/
smittt
Отправлено: 15 Октября, 2013 - 14:22:04 • Тема: проблема с сессией • Форум: Если скрипт не работает
Ответов: 16 Просмотров: 4329
Ошибки да, могут не работать(
Это мой действующий и рабочий сервер, не хотелось бы на нем устраивать даже временные тесты.
Я залил туда, что бы хоть как то было наглядно видно, что я делаю..
На счет utf-8, да, я в курсе, спасибо! Это просто я на скорую состряпал табличку.
(Добавление)
CODE (
htmlphp ):
скопировать код в буфер обмена
Resource id #4Array ( [id] => 1 [login] => admin [passwd] => password [email] => test@test.com [contact] => my@jabber )
smittt
Отправлено: 15 Октября, 2013 - 14:19:08 • Тема: проблема с сессией • Форум: Если скрипт не работает
Ответов: 16 Просмотров: 4329
Чуть повоевал с твоим последним кодом, извини, пошел по пути наименьшего сопротивления..
PHP:
скопировать код в буфер обмена
<?PHP
include ( "#mysql.inc" ) ;
if ( isset ( $_POST [ 'login' ] ) ) { $query = "SELECT * FROM users WHERE login='$login ' AND passwd='$passwd '" ;
$_SESSION [ 'uid' ] = $row [ 'id' ] ;
$_SESSION [ 'ip' ] = $_SERVER [ 'REMOTE_ADDR' ] ;
echo $res ;
echo $row ;
}
/* header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);*/
}
...
вывод
а значит запрос выполняется..
smittt
Отправлено: 15 Октября, 2013 - 13:29:01 • Тема: проблема с сессией • Форум: Если скрипт не работает
Ответов: 16 Просмотров: 4329
CODE (
htmlphp ):
скопировать код в буфер обмена
https: //ххххх/pass/test.php // проверка работы сессий
https: //ххххх/pass/info.php // phpinfo()
https: //ххххх/pass/testses.php // тестовый скрипт с подключаемой авторизацией
https: //ххххх/pass/login1.php // авторизация
https: //ххххх/pass/testses.php.txt
https: //ххххх/pass/login1.php.txt
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` int( 10) NOT NULL ,
`login` varchar( 100) DEFAULT NULL ,
`passwd` varchar( 100) DEFAULT NULL ,
`email` varchar( 100) DEFAULT NULL ,
`contact` varchar( 100) DEFAULT NULL ,
) ENGINE= InnoDB DEFAULT CHARSET= latin1;
-- ----------------------------
-- Records of users
-- ----------------------------
INSERT INTO `users` VALUES ( '1' , 'admin' , 'password' , 'test@test.com' , 'my@jabber' ) ;
проверку работоспособности авторизации провожу вот так :
PHP:
скопировать код в буфер обмена
....
$_SESSION [ 'uid' ] = $row [ 'id' ] ;
$_SESSION [ 'ip' ] = $_SERVER [ 'REMOTE_ADDR' ] ;
} else {
echo "error password" ;
}
/* header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);*/
}
....
на не верный пароль , выдает еррор пассворд.
smittt
Отправлено: 15 Октября, 2013 - 12:30:58 • Тема: проблема с сессией • Форум: Если скрипт не работает
Ответов: 16 Просмотров: 4329
ugin_root пишет: Да пробовал. У вас база данных есть? табличка users с полями uid, login, password? Если да то всё должно работать. Что происходит в mysql.inc? Где вы подключаетесь к БД?
С базой данной нормально все! Авторизация проходит нормально!
Я почему то предполагаю, что проблема где то в return ибо все остальное вроде работает, авторизация проходит , var_dump сессии говорит, что то вроде
smittt
Отправлено: 15 Октября, 2013 - 10:58:46 • Тема: проблема с сессией • Форум: Если скрипт не работает
Ответов: 16 Просмотров: 4329
ugin_root пишет: перенеси exit() в последний блок else
Уважаемый, мне не помогло..
Вы , попробовали так? У вас работает?
smittt
Отправлено: 15 Октября, 2013 - 06:12:57 • Тема: проблема с сессией • Форум: Если скрипт не работает
Ответов: 16 Просмотров: 4329
ugin_root пишет: 1) Функцию
session_start() нужно вызвать до любого вывода, подробнее
тут , а у тебя выводится '111' до функции
session_start()
2) Твои '222OK111' не выведутся по тому что у тебя в конце скрипта стоит функция
exit()
Хорошо, спасибо! Если не сложно, расскажи как это должно работать тогда?
http://phpfaq[dot]ru/sessions
smittt
Отправлено: 15 Октября, 2013 - 04:34:33 • Тема: проблема с сессией • Форум: Если скрипт не работает
Ответов: 16 Просмотров: 4329
Доброго времени суток всем.
проблема со скриптом авторизации.
скажем login1.php
PHP:
скопировать код в буфер обмена
<?
include ( "mysql.inc" ) ;
if ( isset ( $_POST [ 'login' ] ) ) {
$query = "SELECT * FROM users WHERE login='$login ' AND passwd='$passwd '" ;
{
$_SESSION [ 'id' ] = $row [ 'uid' ] ;
$_SESSION [ 'ip' ] = $_SERVER [ 'REMOTE_ADDR' ] ;
}
header ( "Location: http://" . $_SERVER [ 'HTTP_HOST' ] . $_SERVER [ 'REQUEST_URI' ] ) ; }
if ( isset ( $_GET [ 'action' ] ) AND
$_GET [ 'action' ] == "logout" ) {
header ( "Location: http://" . $_SERVER [ 'HTTP_HOST' ] . "/" ) ; }
if ( isset ( $_SESSION [ 'id' ] ) AND
$_SESSION [ 'ip' ] == $_SERVER [ 'REMOTE_ADDR' ] ) return ; else
{
?>
<form method="POST">
<input type="text" name="login"><br>
<input type="password" name="passwd"><br>
<input type="submit"><br>
</form>
<?
}
?>
далее вставляю эту авторизацию в test.php
ошибок ни каких нет, но и выводится только 111 и снова авторизация.
вставляя login1.php в другие скрипты, после ввода логина пароля, остается все равно авторизация(
подскажите пожалуйста уважаемые, в чем может быть засада..
(Добавление)
вообще сессии работают.
вот такой скрипт работает "на ура".
PHP:
скопировать код в буфер обмена
<?
if ( ! isset ( $_SESSION [ 'counter' ] ) ) $_SESSION [ 'counter' ] = 0 ; echo "Вы обновили эту страницу " . $_SESSION [ 'counter' ] ++. " раз. " ;
echo "<br><a href=" . $_SERVER [ 'PHP_SELF' ] . ">обновить" ;
?>
Страниц (1): [1]
Powered by ExBB FM 1.0 RC1. InvisionExBB