Тут у меня не понятная штука какая то. Вот запрос на ап в бд:
$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;
Вот всё с этой переменной работает, а этот запрос колов встал
Да я и это пробовал, такая же петрушка. Просто я потом написал выше:
$_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);
Какого вы указываете в $_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']; то значение показывает, а если это засунуть в запрос, то он добавляет пустое значение. Вот
Тихо, спокойно...))
В запрос $_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]'") да и id не обязательно должен быть инт
isset($_POST['dr']) даст true даж если будут пробелы так что такая проверка бесполезна
да ну нафиг
в форме на сабмит назначить имя и проверять перед запуском обработчика
ну это на любителя, не вижу здесь ничего ужасного
WHERE id = '". $_SESSION['id'] ."'"
для инт опускаются экранирующие ковычки
WHERE id = ". $_SESSION['id']
ну я откуда знаю инт у него или нет, в его запросе были одинарные ковычки я и добавил как у него...WHERE id = '$_SESSION[id]'") да и id не обязательно должен быть инт
isset($_POST['dr']) даст true даж если будут пробелы так что такая проверка бесполезна
да ну нафиг
в форме на сабмит назначить имя и проверять перед запуском обработчика
if(isset($_POST['submit_name']))
{
//Запустить обработку
}
ну это на любителя, не вижу здесь ничего ужасного