[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: переменные из формы не добавляются в запросе
Гость_qwerty
Всем привет и С НОВЫМ ГОДОМ!!!)

Тут у меня не понятная штука какая то. Вот запрос на ап в бд:


$res_up = mysql_query("UPDATE client
SET dr = '
$dr'
WHERE id = '
$_SESSION[id]'") or die(mysql_error());


Вот переменная $dr идет постом с другой страницы с формы. Этот запрос ошибок не дает, а просто добавляет пустое значение в бд. При этом я выше запроса попробовал вывести эту переменную с echo и показывает число). Если вместо $dr в запросе указать вручную число, то тоже добавляется. Что за фигня?



Спустя 4 минуты, 58 секунд (6.01.2012 - 10:42) Guest написал(а):
То что идет постом надо брать из массива $_POST.

Спустя 8 минут, 15 секунд (6.01.2012 - 10:50) Гость_qwerty написал(а):
Guest

Да я и это пробовал, такая же петрушка. Просто я потом написал выше:

$_POST[dr] = $dr;

Вот всё с этой переменной работает, а этот запрос колов встал

Спустя 33 минуты, 34 секунды (6.01.2012 - 11:24) Zerstoren написал(а):
Руки оторвать! А не проблема.

Какого вы указываете в $_POST[dr]
константу dr? Вы вообще ошибки которые вам пишут игнорируете?
Лень кавычки поставить?

$_POST['dr'];


1) Проверьте тип отправляемой формы. Должен быть POST
2) Проверьте $_POST с помощью var_dump. К примеру var_dump($_POST);

Спустя 2 часа, 25 минут, 4 секунды (6.01.2012 - 13:49) Guest написал(а):
Zerstoren

Тихо, спокойно...))

В запрос $_POST['dr']; с кавычками не вставить, ошибок он мне никаких не дает, поэтому я и не знаю что за фигня происходит, хотя у меня и error_reporting('E_ALL');
ini_set('display_errors', 1);

и mysql_error()

Метод пост. Я же говорю, что если написать echo $_POST['dr']; то значение показывает, а если это засунуть в запрос, то он добавляет пустое значение. Вот

Спустя 35 минут, 11 секунд (6.01.2012 - 14:24) Jack_White написал(а):
Привет

вкратце как-то так надо:
во-первых надо проверить что запрос пришел постом

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
/*
далее проверить на некорректное значение хотя бы на empty, что не пусто и обработать вводимые данные (хотя бы trim()),
если пусто или некорректно , то редирект, а если ок, то потом присвоить $dr значение $_POST['dr'],
а не наоборот как у тебя($_POST[dr] = $dr; ты присваиваешь POST'у
неопределенную переменную $dr gj'njve b gecnj)
вот так надо:*/


$dr = $_POST['dr'];

$sql = "UPDATE client SET dr = '". $dr ."' WHERE id = '". $_SESSION['id'] ."'";

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

редирект
}


Спустя 6 минут, 46 секунд (6.01.2012 - 14:31) Игорь_Vasinsky написал(а):
переменные в одинарных ковычках не канают

Цитата
WHERE id = '". $_SESSION['id'] ."'"


для инт опускаются экранирующие ковычки

WHERE id = ". $_SESSION['id']


данные фильтруются

$dr = isset($_POST['dr']) ? mysql_real_escape_string($_POST['dr']) : null;



Цитата
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
/*


да ну нафиг

в форме на сабмит назначить имя и проверять перед запуском обработчика

if(isset($_POST['submit_name']))
{
//Запустить обработку
}

Спустя 1 час, 42 минуты, 50 секунд (6.01.2012 - 16:14) Jack_White написал(а):
переменные в одинарных ковычках не канают

WHERE id = '". $_SESSION['id'] ."'"

для инт опускаются экранирующие ковычки

WHERE id = ". $_SESSION['id']


ну я откуда знаю инт у него или нет, в его запросе были одинарные ковычки я и добавил как у него...WHERE id = '$_SESSION[id]'") да и id не обязательно должен быть инт

isset($_POST['dr']) даст true даж если будут пробелы так что такая проверка бесполезна

да ну нафиг

в форме на сабмит назначить имя и проверять перед запуском обработчика
if(isset($_POST['submit_name']))
{
//Запустить обработку
}

ну это на любителя, не вижу здесь ничего ужасного
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.