За последние 24 часа нас посетили 22167 программистов и 992 робота. Сейчас ищут 932 программиста ...

Как определить сайт, с которого пришел новый пользователь

Тема в разделе "PHP для новичков", создана пользователем vanchester, 13 апр 2021.

  1. vanchester

    vanchester Новичок

    С нами с:
    24 янв 2021
    Сообщения:
    17
    Симпатии:
    0
    Ребят, подскажите!!!
    У меня так:
    Код (Text):
    1. mysqli_query($db, "insert into users (ref,referer,dat_reg,came) values ('0','$ref','$t','".$_SERVER['HTTP_REFERER']."')");
    В данном случае при регистрации пользователя в столбец "came" записывает адрес моего сайта.
    Мне нужен сайт с которого пришли на мой сайт.

    Понимаю, что
    Код (Text):
    1. '".$_SERVER['HTTP_REFERER']."'
    нужно задать url кроме моего (возможно), только вот как это сделать?

    Или по другому как то???

    Помогите, а?
     
  2. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Записывайте в сессию адреса с которых приходят неавторизованные пользователи. И при регистрации извлекайте оттуда.
     
  3. vanchester

    vanchester Новичок

    С нами с:
    24 янв 2021
    Сообщения:
    17
    Симпатии:
    0
    Я не знаю, как это сделать!
    А если я сделаю так:
    Код (Text):
    1. if (stripos($url, 'mysite.ru') !== false)
    2. '".$_SERVER['HTTP_REFERER']."'
    это сработает?
     
  4. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Нет.
    $_SERVER['HTTP_REFERER'] - это адрес предыдущей страницы.
    Его может и не быть, начнем с этого.
    А во-вторых, к регистрации, обычно, переходят не сразу. Как минимум, сначала просматривают главную.
    У вас не так?
     
  5. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    858
    Симпатии:
    132
    Да в сессию пишите реферера, если пользователь не авторизован и $_SERVER['HTTP_REFERER'] не начинается с адреса вашего сайта, из минусов -- на каждого неавторизованного посетителя будет подниматься сессия.
     
  6. vanchester

    vanchester Новичок

    С нами с:
    24 янв 2021
    Сообщения:
    17
    Симпатии:
    0
    В общем, сделал так:
    Код (Text):
    1. if ( !isset( $_SESSION["origURL"] ) )
    2.                 $_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];
    Для sql:
    Код (Text):
    1. mysqli_query($db, "insert into users (ref,referer,dat_reg,came) values ('0','$ref','$t','".$_SESSION["origURL"]."')");
    Все получилось, но иногда возвращается пустой результат!
    Подскажите, как сделать, чтоб при пустом результате запись в sql была "не определено" или "no result"
     
  7. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    PHP:
    1. <?php
    2.  
    3. if (!isset($_SESSION["origURL"]))
    4. {
    5. $_SESSION["origURL"] = 'no result';
    6. }
    7.  
    8. if(isset($_SERVER["HTTP_REFERER"]))
    9. {
    10. $referer = parse_url($_SERVER["HTTP_REFERER"]);
    11.  
    12.   if($referer['host'] != $_SERVER["HTTP_HOST"])
    13.    {
    14.     $_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];
    15.    }
    16. }
    17.  
    18. print_r($_SESSION);
    19.  
    20. ?>
    Должен заметить, что в $_SERVER["HTTP_REFERER"] могут записать вообще что угодно. Как в куки например.
     
    #7 Drunkenmunky, 15 апр 2021
    Последнее редактирование: 15 апр 2021
  8. vanchester

    vanchester Новичок

    С нами с:
    24 янв 2021
    Сообщения:
    17
    Симпатии:
    0
    Спасибо огромное. Все отлично работает!
    А что тогда можно использовать вместо $_SERVER["HTTP_REFERER"] ?
     
  9. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Ничего. Эта штука дело сугубо добровольное, и может произвольно отключаться изменяться и тд.
    Если вам нужно что-то типа партнерской программы, то назначайте партнерам уникальный id и выдавайте им ссылку с ним в параметрах.