не могу записать COOKIE
-
Пытаюсь записать в COOKIE инфу для авторизации. Ошибок никаких не выдает, но и ничего не записывает.
кто сталкивался с подобным ?
-
обычно в таких случаях приводят код записи куков и код чтения куков.
setcookie(«hash», $hash, time()+60*60*24*30);
——
echo $_COOKIE[«hash»];а в $hash что содержится?
print_r($_COOKIE); что выводит?$hash — формируется зашифрованный ключ
Array ( [wordpress_test_cookie] => WP Cookie check [wordpress_logged_in_fcedcb32c08864dd961cdb7648c3175d] => admin|1435727615|LBKHFMVoyzZ0K4cBzmN6jUbm0vBtT1ETP1NnPgeQgoi|85f2703314f5f2a0139a0851d8a5835cc4accd23d5f42c498782ac38f99e7b83 )
$hash — формируется зашифрованный ключ
Array ( [wordpress_test_cookie] => WP Cookie check [wordpress_logged_in_fcedcb32c08864dd961cdb7648c3175d] => admin)
setcookie(«hash», $hash, time()+60*60*24*30);
И в каком именно месте этот код стоит? И где проверяется?
в общем кусок из авторизация через куки.
но я на данный момент упростил задачу до предела, хочу записать хоть чтонибудь в куки. по идее все должно быть просто.setcookie(«hash», $hash, time()+60*60*24*30) или даже setcookie(«hash», $hash) или даже setcookie(«hash», ‘test zap’)
не пишет нечего, в массиве только проверка wp тестовая и авторизация в wp-admin
как быть ?
потому что надо на что-то вешать:
function set_newuser_cookie() { if (!isset($_COOKIE['sitename_newvisitor'])) { setcookie('sitename_newvisitor', 1, time()+1209600, COOKIEPATH, COOKIE_DOMAIN, false); } } add_action( 'init', 'set_newuser_cookie');потом использовать:
if (isset($_COOKIE['sitename_newvisitor'])) { echo 'Welcome back!'; } else { echo 'Hello new visitor!'; }<? // Страница авторизации # Функция для генерации случайной строки function generateCode($length=6) { $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHI JKLMNOPRQSTUVWXYZ0123456789"; $code = ""; $clen = strlen($chars) - 1; while (strlen($code) < $length) { $code .= $chars[mt_rand(0,$clen)]; } return $code; } # Соединямся с БД // mysql_connect("localhost", "myhost", "myhost"); // mysql_select_db("testtable"); if(isset($_POST['submit'])) { # Вытаскиваем из БД запись, у которой логин равняеться введенному $query = mysql_query("SELECT user_id, user_password FROM users WHERE user_login='".mysql_real_escape_string($_POST['login'])."' LIMIT 1"); $data = mysql_fetch_assoc($query); # Соавниваем пароли if($data['user_password'] === md5(md5($_POST['password']))) { # Генерируем случайное число и шифруем его $hash = md5(generateCode(10)); // if(!@$_POST['not_attach_ip']) // { # Если пользователя выбрал привязку к IP # Переводим IP в строку $insip = ", user_ip=INET_ATON('".$_SERVER['REMOTE_ADDR']."')"; // } # Записываем в БД новый хеш авторизации и IP mysql_query("UPDATE users SET user_hash='".$hash."' ".$insip." WHERE user_id='".$data['user_id']."'"); # Ставим куки setcookie("id", $data['user_id'], time()+60*60*24*30); setcookie("hash", $hash, time()+60*60*24*30); # Переадресовываем браузер на страницу проверки нашего скрипта header("Location: check.php"); exit(); } else { print "Вы ввели неправильный логин/пароль"; } } ?> <form method="POST"> Логин <input name="login" type="text"><br> Пароль <input name="password" type="password"><br> <!-- Не прикреплять к IP(не безопасно) <input type="checkbox" name="not_attach_ip"><br> --> <input name="submit" type="submit" value="Войти"> </form>как тут правильно записать куки ?
1. Заменить
<?на<?php— чтобы потом не удивляться.2. Убедиться, что скрипт сохранен без BOM.
3. В параметры setcookie добавить путь
/.4. Ну и где тут wordpress?
я новичек в wp, если вы мне подскажите как делается авторизация буду очень признателен
вы лучше объясните, что вам нужно сделать.
в wp возможно залогинить юзера, возможно, что это вам и нужно.если в кратце:
юзер ходит по сайту, заходит на определенную страницу, там авторизация.
вводит логин и пароль, если они есть в базе, шифрую определенную строку, записываю в куки id и строку.
Юзер получает доступ к контенту ограниченому, все счастливы.
Проблема встала в том что я никак не могу записать нужную инфу в сессию. Поечму не пишется, до сих пор понять не могу.———
пару вопросов к примеру который выслали мне:
1. function custom_login() должен обязательно размещать в function.php ?
2. add_action( ‘after_setup_theme’, ‘custom_login’ ); могу запускать в любом месте ?а чем вас стандартный функционал движка по авторизации не устраивает?
форму авторизации можно встроить где угодно, благо что для этого тоже функции есть. спрятать записи от неавторизованных пользователей — тоже дело на 5 минут. зачем изобретать велосипед?я новичок в wp. как решить стандартными средствами я не знаю. приведите пример, я думаю у вас должны быть готовые примеры или заготовки реализации. Помогите новичку
По мне так представленый код тоже прост, и по идее все должно работать как нужно. просто почемуто не отрабатывает setcookie. просто не работает. для меня это загадка, уже целый день потратил и решения нет
Тема «не могу записать COOKIE» закрыта для новых ответов.