Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Запомни меня
Форумы портала PHP.SU » » Вопросы новичков » Запомни меня

Страниц (1): [1]
 

1. shahin - 02 Августа, 2014 - 00:55:57 - перейти к сообщению
Хочу добавить функцию запомнить но никак не получается, перелазил весь инет найденое не устраивает.
Вот код:
Код:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require_once "../includes/db.php";
  3. require_once "../includes/core.php";
  4. $salt = '$2a$8$'.substr(str_replace('+', '.', base64_encode(pack('N4', mt_rand(), mt_rand(), mt_rand(),mt_rand()))), 0, 22) . '$';
  5. $login = filter_input(INPUT_POST, 'login', FILTER_SANITIZE_STRING);
  6. $pass = filter_input(INPUT_POST, 'pass', FILTER_SANITIZE_STRING);
  7. $pass = md5(md5(md5(trim($_POST['pass'] && $salt))));
  8. if (Auth($login, $pass)) {
  9. $_SESSION["login"] = $login;
  10. $_SESSION["pass"] = $pass;
  11. header("Location: ".$_SERVER["HTTP_REFERER"]);
  12. exit;}else{ echo "Error"; }
  13. ?>
  14.  

Вот форма ввода:
Код:
CODE (html):
скопировать код в буфер обмена
  1. <form action="/tmp/auth.php" method="post">
  2. <input type="hidden" name="authform" value="1" />
  3. <h2 style="font-weight:bold;font-size:40px;padding:10px 0px 10px 0px"><?php echo $Lang['auth']; ?></h2>
  4. <input required="true" tabindex="1" name="login" type="text" id="login" placeholder="<?php echo $Lang['login']; ?>" />
  5. <input required="true" tabindex="2" name="pass" type="password" id="password" placeholder="<?php echo $Lang['password']; ?>" />
  6. <div class="td" style="margin-top:-50px;margin-left:-5px;font-size:20px;"><input class="td" name="on" type="checkbox" style="margin-left:-69px;margin-top:-15px;"/><div style='margin-top:-45px;margin-left:25px'><?php echo $Lang['remember'];?></div></div><div>
  7. <input id="login_btn" style='margin-top:-47px;' class="button" type="submit" name="log" value="<?php echo $Lang['go_enter']; ?>"/>

Делаю следущее:
Код:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require_once "../includes/db.php";
  3. require_once "../includes/core.php";
  4. $salt = '$2a$8$'.substr(str_replace('+', '.', base64_encode(pack('N4', mt_rand(), mt_rand(), mt_rand(),mt_rand()))), 0, 22) . '$';
  5. $login = filter_input(INPUT_POST, 'login', FILTER_SANITIZE_STRING);
  6. $pass = filter_input(INPUT_POST, 'pass', FILTER_SANITIZE_STRING);
  7. $pass = md5(md5(md5(trim($_POST['pass'] && $salt))));
  8. if (Auth($login, $pass)) {
  9. $_SESSION["login"] = $login;
  10. $_SESSION["pass"] = $pass;
  11. if(isset($_POST['on'])){
  12. setcookie('login', $login ,time()+604800, "/");
  13. setcookie('pass', $pass ,time()+604800, "/");
  14. }
  15. header("Location: ".$_SERVER["HTTP_REFERER"]);
  16. exit;}else{ echo "Error"; }
  17.  
  18. ?>

Поправьте если что не так, и объясните как сделать форму вывода уже авторизованного с куками, так как с ссесией или по другому. Заранее благодарен!
2. shahin - 02 Августа, 2014 - 03:24:16 - перейти к сообщению
Сделал но теперь другая проблема, работают только куки, а надо чтобы если куки выключены работала сессия,тоесть если куки включены выводится
PHP:
скопировать код в буфер обмена
  1.  $Auth = Check($_COOKIE['login'],$_COOKIE['pass']);

А если куки выключены то
PHP:
скопировать код в буфер обмена
  1. $Auth = Check($_SESSION['login'],$_SESSION['pass']);
3. DelphinPRO - 02 Августа, 2014 - 05:07:09 - перейти к сообщению
совмещать не пробовали?

1. проверяем куку, если есть пишем в сессию
2. проверяем сессию, если есть авторизован
3. если нет - гость
4. shahin - 02 Августа, 2014 - 05:49:26 - перейти к сообщению
так дело в том что я не знаю как реализовать эту проверку, можете помочь?
5. shahin - 02 Августа, 2014 - 13:24:14 - перейти к сообщению
На этом форуме похоже нет никого
6. DelphinPRO - 03 Августа, 2014 - 14:47:44 - перейти к сообщению
Чем помочь еще? Я вам алгоритм по пунктам расписал выше.
7. Edwvee - 04 Августа, 2014 - 09:45:26 - перейти к сообщению
shahin пишет:
Сделал но теперь другая проблема, работают только куки, а надо чтобы если куки выключены работала сессия,

Как тогда сессия будет работать? Надо ж айди сессии где-то хранить.
8. likvidator - 04 Августа, 2014 - 12:37:47 - перейти к сообщению
Edwvee пишет:
Как тогда сессия будет работать? Надо ж айди сессии где-то хранить.

session.use_trans_sid
9. esterio - 04 Августа, 2014 - 13:14:24 - перейти к сообщению
likvidator пишет:
session.use_trans_sid

unsecurity

В общем сама затея сохранять логин и пасс в куках плоха.

А гугл так и кишит разного рода набросками на эту тему
10. Edwvee - 05 Августа, 2014 - 13:22:39 - перейти к сообщению
likvidator пишет:
session.use_trans_sid
]
То есть как я понял айди будет гет параметром? Вот жесть тогда) Я такое на доисторических форумных движках видел только.

 

Powered by ExBB FM 1.0 RC1