Может вставлять из QUERY_STRING, но не может выбрать то же значение из MySQL! - PullRequest
0 голосов
/ 31 декабря 2010

Как видите, вероятно нет причин, по которым он не должен работать. Я не знаю, что еще я могу сделать, какие-нибудь идеи? Любая помощь приветствуется!

Все, что я пытаюсь сделать, это проверить, если значение, введенное в конце URL-адреса, совпадает с тем, которое находится в базе данных (и да , оно в базе данных. :) Спасибо

<ч /> Код:

<?php

$keyword = substr($_SERVER['REQUEST_URI'],11); 
    if($_REQUEST['action'] == "link")
    {
        $keyword = $_POST['keyword'];
        $link    = $_POST['link'];

        $connection =
               mysql_connect("my01..com","h","h") or die(mysql_error());

        if($connection)
        {
         mysql_select_db("mysql_17902_h", $connection);

         mysql_query(
                 "INSERT INTO mysql_17902_h.links (
                   link,
                   keyword) VALUES (
                    '".$link."',
                      '".$keyword."')") or die(mysql_error());

            $state = true;
        }
    }
    else
    {
        if(!empty($_POST))
        {
            print_r($keyword);
            $connection =
                   mysql_connect("my01.h.com","h","h") or die(mysql_error());


            if($connection)
            {


                mysql_select_db("mysql_17902_h") or die(mysql_error());
           $result = mysql_query("SELECT link FROM links WHERE keyword = $keyword")
           or die(mysql_error());

           $row = mysql_fetch_array($result);
               $outsy = $row['link'];

           }
           $state = true;
           }

    }
?>

1 Ответ

0 голосов
/ 31 декабря 2010

Попробуйте переписать свой код, чтобы он был более разборчивым:

$link = mysql_real_escape_string($_POST['link']);
$keyword = mysql_real_escape_string($_POST['keyword']);

$sql = <<<EOL;
INSERT INTO mysql_17902_h.links (link, keyword)
VALUES ('$link', '$keyword')
EOL;

mysql_query($sql) or die(mysql_error());

Обратите внимание на использование mysql_real_escape_string() для предотвращения атак SQL-инъекций и окружения переменных одинарными кавычками в строке SQL. Вы забыли сделать это здесь:

$result = mysql_query("SELECT link FROM links WHERE keyword = $keyword") or ...
                                                              ^^^^^^^^ 

Отсутствие кавычек вокруг текстового поля является синтаксической ошибкой. Кроме того, в этот момент в коде ключевое слово $ содержит то, что выдает вызов substr() в верхней части скрипта, поэтому убедитесь, что вызов substr действительно выполняет то, что вы намеревались.

...