Вопрос № 125874: Здравствуйте, уважаемые участники форума! У меня такая проблема: я пока не знаю MySql по этому хотел написать такой скрипт определяющую реферера посетителя:
<?php
$var = $_POST["refid"];
if ($var = "11111111") ...
Вопрос № 125.874
Здравствуйте, уважаемые участники форума! У меня такая проблема: я пока не знаю MySql по этому хотел написать такой скрипт определяющую реферера посетителя:
<?php
$var = $_POST["refid"];
if ($var = "11111111")
{
$referrer = "Вася Пупкин";
}
if ($var = "22222222")
{
$referrer = "Иван Петрович";
}
else
{
$referrer = " ";
}
echo "Вас пригласил: $referrer"!
?>
Но каждый раз хоть ссылка выглядет так
http://mysite.ru/index.php?refid=11111111 или
http://mysite.ru/index.php?refid=22222222 или http://mysite.ru/
$referrer всегда имеет значение "Иван Петрович".
Подскажите пожалуйста, где я ошибся?
Отправлен: 04.03.2008, 01:02
Вопрос задал: Sherland (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Иван Сергеевич
Здравствуйте, Sherland!
Во-первых, при вводе приведенных вами URL параметр refid занесется в массив $_GET, а не $_POST. Можно также использовать массив $_REQUEST, в котором собраны оба вышеперечисленных массива.
Во вторых, тогда уж лучше сделать массив пользователей
$users = array ("11111"=>"Иван Иваныч", "22222"=>"Степан Петрович");
а далее :
if (array_key_exists($_GET["refid"], $users)) $referrer = $users[$_GET["refid"]];
else $referrer = "";
Так вам не придется перебирать всех зарегистрированных пользователей.
Ответ отправил: Иван Сергеевич (статус: 2-ой класс)
Ответ отправлен: 04.03.2008, 01:15 Оценка за ответ: 5 Комментарий оценки: Спасибо Вы очень помогли!
Отвечает: Anti_SP
Здравствуйте, Sherland
В вашем варианте есть ошибка - когда вы проверяете значение $var то вместо сравнения(==) у вас стоит присваивание(=). Правильно будет:
Ответ отправил: Anti_SP (статус: 1-ый класс)
Ответ отправлен: 04.03.2008, 01:46 Оценка за ответ: 5 Комментарий оценки: Спасибо Вы очень помогли! Я использовал 2ой вариант!
Отвечает: magnifiko
Здравствуйте, Sherland!
В РНР операция сравнения выглядит так ==
А операция присваивания =
Т.е.,
$referrer = "Иван Петрович";
правильно
Но
if ($var = "22222222")
неправильно. В нём происходит присваивание.
Правильно вот как:
if ($var =="22222222")
Ответ отправил: magnifiko (статус: 1-ый класс)
Ответ отправлен: 04.03.2008, 11:58 Оценка за ответ: 5 Комментарий оценки: Спасибо! Я это заметил после отправки вопроса!