Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите - не могу дописать скрипт авторизации
 
 автор: Пётр   (17.05.2006 в 22:26)   письмо автору
 
 

пытаюсь написать скрипт авторизации для админки на сессиях, но не получается инициализировать значения в $_SESSION. (JS работают, да в общем они тут и не при чём)
Помогите, если кто знает в чём тут беда :)

файл login.php

<?php
//пытаюсь зарегить переменную в сессии, но и с этой строчкой и без неё не пашет
session_register('tempkey');
$tempkey=mt_rand();//генерируем случайное число
$tempkey=md5($tempkey);//конвертируем это число в ключ (хэш код)
/$_SESSION['tempkey']=$tempkey;//поместили в глобальную переменную наш ключ
?>
<html>
<head>
<!-- Вставляем скрипт кодирования -->
<script language="javascript" src=md5.js> 
</script> 
<script language="javascript"> 
<!-- Вставляем функцию вызова скрипта кодирования-->
function doSend(){ 
document.login.hiddenpass.value=md5(document.login.pass.value); 
document.login.hiddenpass.value=md5(document.login.hiddenpass.value+document.login.tempkey.value); 
document.login.pass.value=''; // NOT to send password as a plain text 
//document.login.tempkey.value='';// NOT to send random key 

</script>
</head>
<body>
<!--logincheck.php-->
<form   name="login" action="logincheck.php" method="post"  onSubmit="doSend()">
<input type="text" name="loginer" value="<?=@$_COOKIE['lastlogged']?>">
<input type="password" name="pass">
<input type="submit" value="Вход">
<input type="text" name="tempkey" value="<?=$tempkey?>">
<input type="text" name="hiddenpass" value="">
</form>
</body>
</html>


файл logincheck.php (весь не буду приводить, но смысл в том, что переменная $_SESSION['tempkey'] из предыдущего файла в нём не видима)

<?
session_start
();
foreach (
$_SESSION as $ttr => $ttt) echo "Поле: $ttr, Значение $ttt<br>";
?>

   
 
 автор: TrunK   (17.05.2006 в 22:59)   письмо автору
 
   для: Пётр   (17.05.2006 в 22:26)
 

А в login.php есть строчка:

session_start(); 

Вроде можно не регистрировать, а сделать просто:

$_SESSION['tempkey'] = mt_rand();

Но это мелочи (:

   
 
 автор: НИК   (17.05.2006 в 23:30)
 
   для: Пётр   (17.05.2006 в 22:26)
 

А ты иницианализацию сссейт оне запустил.....
session_start();
и все дела.

   
 
 автор: ник   (17.05.2006 в 23:31)
 
   для: НИК   (17.05.2006 в 23:30)
 

если надо подключится уже к какойт оуже сушествуюшей ссесси то в качества параметра укажи имя индефикатора ссесий. 100% путевый способ испытано лично.

   
 
 автор: Пётр   (17.05.2006 в 23:39)   письмо автору
 
   для: ник   (17.05.2006 в 23:31)
 

Не пашет даже так :(

sess.php

<?
session_start
();
$_SESSION['temp']=md5('test');
header("Location: test.php");
?>


test.php

<?
echo $_SESSION['temp']; 
?>

   
 
 автор: cheops   (17.05.2006 в 23:50)   письмо автору
 
   для: Пётр   (17.05.2006 в 23:39)
 

test.php должен выглядеть следующим образом
<? 
session_start
();
echo 
$_SESSION['temp']; 
?>

   
 
 автор: Пётр   (18.05.2006 в 00:06)   письмо автору
 
   для: cheops   (17.05.2006 в 23:50)
 

и опять нулевой результат. Мож PHP Version 5.0.5 битый на сессии, попробую закачать поновее

sess.php

<?
session_start
();
$_SESSION['temp']=md5('test');
echo 
"<a href=test.php>Тест</a>";
?>


tets.php

<?
session_start
();
echo 
$_SESSION['temp'];
?>

   
 
 автор: TrunK   (18.05.2006 в 07:56)   письмо автору
 
   для: Пётр   (18.05.2006 в 00:06)
 

Странно это как-то.
Хы, а так работает? :

<? 
session_start
(); 
$_SESSION['temp']=md5('test'); 
echo 
"<a href=test.php>Тест</a>"
echo 
$_SESSION['temp'];
?>

   
 
 автор: Trianon   (18.05.2006 в 09:37)   письмо автору
 
   для: Пётр   (18.05.2006 в 00:06)
 

прикрепите пожалуйста md5.js
А то проверять тяжело...

   
 
 автор: Пётр   (18.05.2006 в 12:21)   письмо автору
 
   для: Trianon   (18.05.2006 в 09:37)
 

прикрепил md5.js

нашёл бяку - в php.ini директива session.use_trans_sid (отвечающая за передачу идентификатора сесии при отключенных куках) стояла на нуле (session.use_trans_sid = 0) т.е. проблема в куках сессии - php считает что установил куку сессии, но повторно обратиться к ней не может по каким-то причинам. И при запуске следующего файла создаёт новую сессию. буду копать в этом направлении :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования