На локально работает нормально, выкладываю на хостинг выдает ошибку
"НЕ ВВЕДЕНО НАЗВАНИЕ КАТЕГОРИИ"
вообщем переменная пустая не передается с чем может быть связано?
<input type="checkbox" value="авторская керамика" name="yourname[]" /> авторская керамика<br />
<input type="checkbox" value="архитектурная керамика" name="yourname[]" /> архитектурная керамика<br />
<input type="checkbox" value="декоративные тарелки" name="yourname[]" /> декоративные тарелки<br />
<input type="checkbox" value="интерьерная керамика" name="yourname[]" /> интерьерная керамика<br />
if($_POST[submit])
{
if(!$_POST[photoname])
{
$content .= '<p>НЕ ВВЕДЕНО НАЗВАНИЕ</p>';
$errors = '1';
}
if(!$_POST[photodesk])
{
$content .= '<p>НЕ ВВЕДЕНО ОПИСАНИЕ РАБОТЫ</p>';
$errors = '1';
}
if(!$yourname)
{
$content .= '<p>НЕ ВВЕДЕНО НАЗВАНИЕ КАТЕГОРИИ</p>';
$errors = '1';
}
if(!$materials)
{
$content .= '<p>НЕ ВВЕДЕНО НАЗВАНИЕ МАТЕРИАЛА</p>';
$errors = '1';
}
if(!$errors)...
{
Спустя 2 минуты, 18 секунд (20.10.2011 - 17:15) Winston написал(а):
Возьмите в одинарные кавычки названия всех ключей
if($_POST['submit'])
Спустя 13 секунд (20.10.2011 - 17:15) imbalance_hero написал(а):
bazilio
1. Не $_POST[name], а $_POST['name'] , видишь кавычки?
2. Передаётся $_POST массив, который называется суперглобальный! А не обычная переменная. понимаешь о чём я?
1. Не $_POST[name], а $_POST['name'] , видишь кавычки?
2. Передаётся $_POST массив, который называется суперглобальный! А не обычная переменная. понимаешь о чём я?
Спустя 37 секунд (20.10.2011 - 17:16) Winston написал(а):
И еще напишите
print_r($_POST)И посмотрите, что передается, а что нет.
Спустя 3 минуты, 3 секунды (20.10.2011 - 17:19) imbalance_hero написал(а):
if($_POST[submit]) - данная конструкция неправильная, надо писать:
if(isset($_POST['submit']))
if(isset($_POST['submit']))
Спустя 5 минут, 17 секунд (20.10.2011 - 17:24) m4a1fox написал(а):
Чего уж там... :)
По хорошему так надо сделать
Ну и про валидность не забыть конечно!
if($_POST[submit])
{
if(!$_POST[photoname])
{
$content .= '<p>НЕ ВВЕДЕНО НАЗВАНИЕ</p>';
$errors = '1';
}
if(!$_POST[photodesk])
{
$content .= '<p>НЕ ВВЕДЕНО ОПИСАНИЕ РАБОТЫ</p>';
$errors = '1';
}
if(!$yourname)
{
$content .= '<p>НЕ ВВЕДЕНО НАЗВАНИЕ КАТЕГОРИИ</p>';
$errors = '1';
}
if(!$materials)
{
$content .= '<p>НЕ ВВЕДЕНО НАЗВАНИЕ МАТЕРИАЛА</p>';
$errors = '1';
}
if(!$errors)...
{
По хорошему так надо сделать
if(isset($_POST['submit'])){
$photoname = !empty($_POST['photoname']) ? $_POST['photoname'] : NULL;
$photodesk = !empty($_POST['photodesk']) ? $_POST['photodesk'] : NULL;
$yourname = !empty($_POST['yourname']) ? $_POST['yourname'] : NULL;
$materials = !empty($_POST['materials']) ? $_POST['materials'] : NULL;
}
Ну и про валидность не забыть конечно!
Спустя 1 минута (20.10.2011 - 17:25) Winston написал(а):
Не false а NULL поставь.
Спустя 2 минуты, 42 секунды (20.10.2011 - 17:28) imbalance_hero написал(а):
m4a1fox
Зачем? Мне удобнее на прямую с $_POST работать
Зачем? Мне удобнее на прямую с $_POST работать
Спустя 3 минуты, 18 секунд (20.10.2011 - 17:31) m4a1fox написал(а):
imbalance_hero
Цитата |
Мне удобнее на прямую с $_POST работать |
Хорошо! Просто это как вариант! Это же не правило!


Winston
Да, NULL? точно! Простите за оплошность!
Спустя 4 минуты, 26 секунд (20.10.2011 - 17:35) imbalance_hero написал(а):
FALSE тоже можно

Спустя 7 минут, 49 секунд (20.10.2011 - 17:43) bazilio написал(а):
print_r($_POST)
посмотрел массив который нужен выводит выводит, а вот так,
print_r($yourname);
локально выводит, а в интернете нет
Что это может быть ?
Спустя 2 минуты, 32 секунды (20.10.2011 - 17:46) m4a1fox написал(а):
imbalance_hero
Цитата |
FALSE тоже можно |
Запутали!


Спустя 28 секунд (20.10.2011 - 17:46) Winston написал(а):
У тебя походу register_blobals on на локалке.
Попробуй
Попробуй
print_r($_POST['yourname']);
Спустя 17 секунд (20.10.2011 - 17:46) m4a1fox написал(а):
bazilio
Цитата |
print_r($yourname); |
А это откуда берется?
Спустя 7 секунд (20.10.2011 - 17:46) imbalance_hero написал(а):
Я же ответил, $_POST['yourname'] и $yourname - РАЗНЫЕ переменные.
Спустя 3 минуты, 13 секунд (20.10.2011 - 17:50) Игорь_Vasinsky написал(а):
//Прошарим приходящий POST
echo '<pre>' . print_r($_POST, 1) . '</pre>';
//Создали массив для ошибок
$error = array();
//По аналогии проверяем все POST
$photoname = !empty($_POST['name']) ? $_POST['name'] : NULL; $error[] = "Не введено имя!";
//Если есть ошибки, т.е. массив не пустой - на время отладки
if($error)
{
echo '<pre>' . print_r($error, 1) . '</pre>';
}
//Для вывода
if($error)
{
foreach($error as $err)
echo $err . '<br/>';
}
Спустя 2 минуты, 6 секунд (20.10.2011 - 17:52) m4a1fox написал(а):
Цитата |
Я же ответил, $_POST['yourname'] и $yourname - РАЗНЫЕ переменные. |
Вот поэтому это так интересно!
Спустя 4 минуты, 18 секунд (20.10.2011 - 17:56) bazilio написал(а):
Все разобрался теперь знаю разницу между простыми переменными и глобальными! Все корректно заработало! !! УРА Всем большое Спасибо!
Спустя 19 минут, 9 секунд (20.10.2011 - 18:15) imbalance_hero написал(а):
bazilio
Ну а теперь ответ, у тебя так включены register_globals, а на сервере, в качестве БЕЗОПАСНОСТИ, они отключены. Их надо выключать. Если они включенные, то $_POST['name'] будет автоматически инициализировать с такими же параметрами и $name, что является неправильным.
Ну а теперь ответ, у тебя так включены register_globals, а на сервере, в качестве БЕЗОПАСНОСТИ, они отключены. Их надо выключать. Если они включенные, то $_POST['name'] будет автоматически инициализировать с такими же параметрами и $name, что является неправильным.
Спустя 9 минут, 19 секунд (20.10.2011 - 18:25) bazilio написал(а):
То есть on поменять на of?
в PHP.ini
в этой строке?
; register_globals to be on; Using form variables as globals can easily lead
в PHP.ini
в этой строке?
; register_globals to be on; Using form variables as globals can easily lead
Спустя 1 минута, 20 секунд (20.10.2011 - 18:26) bazilio написал(а):
А еще строку нашел раскомментированную
register_globals = On
Здесь?
register_globals = On
Здесь?
Спустя 2 минуты, 32 секунды (20.10.2011 - 18:28) imbalance_hero написал(а):
register_globals = On замени на
register_globals = Off
register_globals = Off