Xpoint
   [напомнить пароль]

Проблемы с условием if..else

Метки: [без меток]
2009-01-13 00:57:02 [обр] Blademen[досье]

Нужна ваша помощь. Я что то намудрил и немогу разобраться.
На главной странице устанавливается 2 cookie(ref, frompage)
Должно работать так:

  1. человек попадает на главную страницу с поисковика (сохраняются куки), идет на другую страницу с формой и заполняет ее и данные вводятся в бд.
  2. Но допустим, человек набирает сайт (mydomain.ru), потом идет на форму, потом на главную, потом обратно на форму и заполняет ее и вываливается ошибка.

(Warning: array_keys(): The first argument should be an array... Warning: implode(): Bad arguments... Warning: array_values(): The argument should be an array)
Должны вставляться только данные (fromname)

function urlReferer($reff = false){
array(
        "domen"=>"$domen",
        "zapros"=>"$zapros",
        "fromurl"=>"$fromurl"
    );
}
$test=urlReferer();
if (isset($_COOKIE['ref']) && isset($_COOKIE['frompage']) && ($_COOKIE['ref'] != 'mydomain.ru'))
 {
$sql = "INSERT INTO table (fromname,frompage,". implode(", ", array_keys($test)) .") 
   VALUES ('$_REQUEST[fromname]','$_REQUEST[frompage]','" . implode("','", array_values($test)) ."')";
   mysql_query($sql) or die(mysql_error());
}
else { 
   $sql = "INSERT INTO table (fromname) VALUES ('$_REQUEST[fromname]')";
   mysql_query($sql) or die(mysql_error()); }
спустя 6 часов [обр] Степаныч(50/50)[досье]
Либо приведён не реальный код. Либо ошибок больше.
спустя 22 минуты [обр] Прокаев2(13/35)[досье]
а где return ?
спустя 1 час 14 минут [обр] Lynn «Кофеман»(98/571)[досье]
  1. Где return?
  2. Откуда в функции взялись переменные $domen, $zapros и $fromurl?
  3. Вставка необработанных данных от пользователя в SQL — расстрел на месте.
спустя 1 час 3 минуты [обр] Blademen[досье]

1. Где return?
Функция urlReferer берет урл из куки($_COOKIE['ref']), к примеру, если человек пришел с поисковика(www.google.com/?search?hl=en&q=keyword) и разбивает е на
domen = www.google.com
zapros = keyword
fromurl = www.google.com/?search?hl=en&q=keyword

function urlReferer($reff = false){
******
return array(
        "domen"=>"$domen",
        "zapros"=>"$zapros",
        "fromurl"=>"$fromurl"
    );
}
$test=urlReferer();

А $_COOKIE['ref'] устанавливается на главной странице

$reff = $_SERVER['HTTP_REFERER'];
$date_of_expiry = time() + 3600;
setcookie("ref","$reff",$date_of_expiry,"/");

Вставка необработанных данных от пользователя в SQL — расстрел на месте
Обработка данных перед вставкой есть, через mysql_real_escape_string

Походу до сюда не доходит && ($_COOKIE['ref'] != 'mydomain.ru') и выполняется всегда первый if

спустя 2 дня 5 часов [обр] Blademen[досье]
up
спустя 10 часов [обр] Степаныч(50/50)[досье]
спустя 17 дней [обр] Антон Клесс(4/25)[досье]
поменять != на !== ?
Powered by POEM™ Engine Copyright © 2002-2005