Вставка данных из url в Mysql

Статус
В этой теме нельзя размещать новые ответы.

1Dreamweaver1

Профессор
Регистрация
4 Янв 2008
Сообщения
417
Реакции
45
Есть таблица (table) 4 поля (pid,kw,mt,ad)

Пример: Человек приходит по этой ссылке на сайт. Url записывается в Куки и далее, при субмите формы, данные вставляются в базу.
domain.com/pid=19877&kw=keyword&mt=b&ad=2465444

Как сделать следующее:
Параметр (mt=) может принимать 3 значения
Пример: mt=b; mt=c; mt=d, то есть url может выглядеть так:
domain.com/pid=19877&kw=keyword&mt=b&ad=2465444
domain.com/pid=19877&kw=keyword&mt=c&ad=2465444
domain.com/pid=19877&kw=keyword&mt=d&ad=2465444

Помогите сделать следующее:
Если человек пришел с параметром mt=b, то в поле (kw) вписывать значение keyword без кавычек

Если человек пришел с параметром mt=с, то в поле (kw) вписывать
значение [keyword] в скобках

Если человек пришел с параметром mt=d, то в поле (kw) вписывать
значение "keyword" в кавычках.


PHP:
parse_str($_COOKIE['param'], $param);
mysql_query("INSERT INTO table (FirstName,LastName,". implode(", ", array_keys($param)) .") 
 VALUES('$_REQUEST[FirstName]','$_REQUEST[LastName]','" . implode("','", array_values($param)) ."')") or die("Cannot save : " . mysql_error());
 
  • Заблокирован
  • #2
Для просмотра ссылки Войди или Зарегистрируйся

пример, если лень читать по-английски:
PHP:
switch ($i) {
case "apple":
    echo "i is apple";
    break;
case "bar":
    echo "i is bar";
    break;
case "cake":
    echo "i is cake";
    break;
}
?>
 
Помогите, плиз, разобраться на данном примере, хотябы для одного параметра (mt=c)
 
PHP:
switch ($_GET['mt']) {
case "b":
    $keyword = $_GET['kw'];
    break;
case "c":
    $keyword = '[' . $_GET['kw'] . ']';
    break;
case "d":
    $keyword = '"' . $_GET['kw'] . '"';
    break;
}
?>
 
Не работает ка надо. В поле kw вставляется ключевое слово без [] и " "
Подскажите что не так.
Пример:
domain.com/pid=19877&kw=windows&mt=c&ad=2465444
в поле kw должно вставиться [windows]
PHP:
switch ($_GET['mt']) {
case "b":
    $keyword = $_GET['kw'];
    break;
case "c":
    $keyword = '[' . $_GET['kw'] . ']';
    break;
case "d":
    $keyword = '"' . $_GET['kw'] . '"';
    break;
}

parse_str($_COOKIE['param'], $param);
mysql_query("INSERT INTO table (FirstName,LastName,". implode(", ", array_keys($param)) .") 
 VALUES('$_REQUEST[FirstName]','$_REQUEST[LastName]','" . implode("','", array_values($param)) ."')") or die("Cannot save : " . mysql_error());
 
НЕ ДЕЛАИТЕ ТАК!!!
Безопасность превыше всего!
Проверяите все параметры перед передачеи на query ато потом злые парнишки всё испортят.
 
НЕ ДЕЛАИТЕ ТАК!!!
Безопасность превыше всего!
Проверяите все параметры перед передачеи на query ато потом злые парнишки всё испортят.
По сабжу есть что сказать или так, погулять вышел?

Не работает ка надо. В поле kw вставляется ключевое слово без [] и " "
Подскажите что не так.
То, что мой пример - образец, а не готовое решение.
Если не хватает знаний, чтоб понять что к чему, проще заказать код у кого-то.
 
параметр mt ты после сабмита берешь уже из кукисов? Значит надо менять kw до записи в кукис.

А вот и решение проще: на кой тебе кукисы? Просто к action формы добавь параметры от ссылки, которую ты до этого писал в кукис. Затем уже при сабмите сделай
PHP:
switch ($_GET['mt']) { 
case "b": 
    $keyword = $_GET['kw']; 
    break; 
case "c": 
    $keyword = '[' . $_GET['kw'] . ']'; 
    break; 
case "d": 
    $keyword = '"' . $_GET['kw'] . '"'; 
    break; 
}

и заливай в базу.

пс. А по безопасности - замечание не зря сделали ;)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху