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

Тема в разделе "Базы данных", создана пользователем 1Dreamweaver1, 1 янв 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. 1Dreamweaver1

    1Dreamweaver1

    Регистр.:
    5 янв 2008
    Сообщения:
    417
    Симпатии:
    44
    Есть таблица (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. Jameson

    Jameson Читатель

    Заблокирован
    Регистр.:
    25 июн 2007
    Сообщения:
    406
    Симпатии:
    92
    Перейти по ссылке

    пример, если лень читать по-английски:
    PHP:
    switch ($i) {
    case 
    "apple":
        echo 
    "i is apple";
        break;
    case 
    "bar":
        echo 
    "i is bar";
        break;
    case 
    "cake":
        echo 
    "i is cake";
        break;
    }
    ?>
     
  3. 1Dreamweaver1

    1Dreamweaver1

    Регистр.:
    5 янв 2008
    Сообщения:
    417
    Симпатии:
    44
    Помогите, плиз, разобраться на данном примере, хотябы для одного параметра (mt=c)
     
  4. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    PHP:
    switch ($_GET['mt']) {
    case 
    "b":
        
    $keyword $_GET['kw'];
        break;
    case 
    "c":
        
    $keyword '[' $_GET['kw'] . ']';
        break;
    case 
    "d":
        
    $keyword '"' $_GET['kw'] . '"';
        break;
    }
    ?> 
     
  5. 1Dreamweaver1

    1Dreamweaver1

    Регистр.:
    5 янв 2008
    Сообщения:
    417
    Симпатии:
    44
    Не работает ка надо. В поле 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());  
     
  6. God3000

    God3000 Писатель

    Регистр.:
    3 дек 2008
    Сообщения:
    9
    Симпатии:
    1
    НЕ ДЕЛАИТЕ ТАК!!!
    Безопасность превыше всего!
    Проверяите все параметры перед передачеи на query ато потом злые парнишки всё испортят.
     
  7. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    По сабжу есть что сказать или так, погулять вышел?

    То, что мой пример - образец, а не готовое решение.
    Если не хватает знаний, чтоб понять что к чему, проще заказать код у кого-то.
     
  8. B1rdEX

    B1rdEX Постоялец

    Регистр.:
    30 июн 2008
    Сообщения:
    141
    Симпатии:
    26
    параметр 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; 
    }
    и заливай в базу.

    пс. А по безопасности - замечание не зря сделали ;)
     
Статус темы:
Закрыта.