• Пытаюсь записать в COOKIE инфу для авторизации. Ошибок никаких не выдает, но и ничего не записывает.
    кто сталкивался с подобным ?

Просмотр 15 ответов — с 1 по 15 (всего 26)
  • обычно в таких случаях приводят код записи куков и код чтения куков.

    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)

    Модератор Юрій

    (@yube)

    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>

    как тут правильно записать куки ?

    Модератор Юрій

    (@yube)

    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. просто не работает. для меня это загадка, уже целый день потратил и решения нет

Просмотр 15 ответов — с 1 по 15 (всего 26)

Тема «не могу записать COOKIE» закрыта для новых ответов.