[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: локально работает нормально, выкладываю на хостин
bazilio
Страница с формой и checkboxами
На локально работает нормально, выкладываю на хостинг выдает ошибку
"НЕ ВВЕДЕНО НАЗВАНИЕ КАТЕГОРИИ"
вообщем переменная пустая не передается с чем может быть связано?

<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 массив, который называется суперглобальный! А не обычная переменная. понимаешь о чём я?

Спустя 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']))

Спустя 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 работать

Спустя 3 минуты, 18 секунд (20.10.2011 - 17:31) m4a1fox написал(а):
imbalance_hero
Цитата
Мне удобнее на прямую с $_POST работать

Хорошо! Просто это как вариант! Это же не правило! smile.gif Каждый ... едет как он хочет! smile.gif

Winston
Да, NULL? точно! Простите за оплошность!

Спустя 4 минуты, 26 секунд (20.10.2011 - 17:35) imbalance_hero написал(а):
FALSE тоже можно smile.gif

Спустя 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 тоже можно

Запутали! blink.gif biggrin.gif

Спустя 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, что является неправильным.

Спустя 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

Спустя 1 минута, 20 секунд (20.10.2011 - 18:26) bazilio написал(а):
А еще строку нашел раскомментированную
register_globals = On
Здесь?

Спустя 2 минуты, 32 секунды (20.10.2011 - 18:28) imbalance_hero написал(а):
register_globals = On замени на
register_globals = Off
Быстрый ответ:

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