[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: php5 + sumbit
NegreM
Есть такой пример,элементарный:

<?
if (@$doADD) {echo 'текст';}
?>

<form action=order.php>
<input type=submit value="Добавить ещё" name=doADD>
</form>


В php4 отлично все работало, но на серевере php5 и этот пример не работает..
Нашел что надо включить на серевер register_global и все будет работать...Но хостер не хочет включать:(
Кто что посоветует, как справиться с такой проблемой и отслежить нажатие кнопки



Спустя 4 минуты, 23 секунды (22.12.2008 - 12:16) modobaks написал(а):
[php]
<?
if (isset( $_REQUEST['doADD'] ) ) {echo 'текст';}
?>

Спустя 9 минут, 40 секунд (22.12.2008 - 12:25) sergeiss написал(а):
Как уже многократно утверждалось, надо делать прогу так, чтобы глобальные переменные не использовались.
Проблема в том, что при неправильном их использовании могут быть варианты проникновения хакеров на сервер. Вот хостер и пытается обезопасить себя.
Придется немного переписать скрипты...

<?
$doADD=$_REQUEST['doADD']; // можно и другое имя для переменной взять, но тогда можно запутаться
if ( strlen($doADD) > 0 ) {echo 'текст';} // можно и другие функции сравнения использовать
?>

А вот про 'name=doADD' я не понял, что имелось ввиду.

Спустя 2 минуты, 33 секунды (22.12.2008 - 12:28) NegreM написал(а):
Большое спасибо!
Все работает
Ошибку понял,впредь буду знать:)

Спустя 2 минуты, 27 секунд (22.12.2008 - 12:30) modobaks написал(а):
PHP
$doADD=$_REQUEST['doADD']; // можно и другое имя для переменной взять, но тогда можно запутаться


А если эта переменная еще не создана, то браузер выдаст ошибку

Спустя 3 минуты, 49 секунд (22.12.2008 - 12:34) lawbreaker написал(а):
PHP
<?
$submit=$_POST['doADD'];
if(
$submit=true){

}
?>

<form action=order.php>
<input type=submit value="Добавить 

Спустя 15 минут, 29 секунд (22.12.2008 - 12:50) sergeiss написал(а):
Цитата (modobaks @ 22.12.2008 - 12:30)
PHP
$doADD=$_REQUEST['doADD']; // можно и другое имя для переменной взять, но тогда можно запутаться


А если эта переменная еще не создана, то браузер выдаст ошибку

Да ну? С чего бы это? smile.gif

Он просто создаст переменную с именем $doADD и с пустым содержанием. Никаких ошибок быть не должно.

Спустя 29 минут, 9 секунд (22.12.2008 - 13:19) Sylex написал(а):
Цитата (sergeiss @ 22.12.2008 - 15:50)
Цитата (modobaks @ 22.12.2008 - 12:30)
PHP
$doADD=$_REQUEST['doADD']; // можно и другое имя для переменной взять, но тогда можно запутаться


А если эта переменная еще не создана, то браузер выдаст ошибку

Да ну? С чего бы это? smile.gif

Он просто создаст переменную с именем $doADD и с пустым содержанием. Никаких ошибок быть не должно.

sergeiss, запусти:
PHP
<?php
    error_reporting
(E_ALL);
    
$doADD=$_REQUEST['doADD'];


только ошибку дает PHP, а не браузер, браузер ее показывает smile.gif

Спустя 41 минута, 51 секунда (22.12.2008 - 14:01) Adil написал(а):


error_reporting(0);
и нет проблем wink.gif wink.gif wink.gif

Спустя 2 часа, 23 секунды (22.12.2008 - 16:01) modobaks написал(а):
я про эту часть $_REQUEST['doADD'];

Спустя 44 минуты, 56 секунд (22.12.2008 - 16:46) sergeiss написал(а):
Это уже перебор, писать error_reporting(E_ALL); smile.gif

Согласен, что лучше будет написать с проверкой, было ли что-то передано. Что-нибудь типа
$doADD=isset( $_REQUEST['doADD']) ? $_REQUEST['doADD'] : false;

Но можно просто не включать показ ВСЕХ ошибок...

Спустя 2 часа, 31 минута, 30 секунд (22.12.2008 - 19:17) Sylex написал(а):
так вот реальная тема, надо ли оно, проверять на существование все переменные? Или фиг с ними?

Спустя 2 часа, 36 минут, 9 секунд (22.12.2008 - 21:54) kirik написал(а):
Цитата (sergeiss @ 22.12.2008 - 08:46)
Но можно просто не включать показ ВСЕХ ошибок...

На счет этого не могу сказать, но знак "@", который гасит выведение ошибки влияет не лучшим образом на скорость скрипта.
ИМХО если ты делаешь какой-то продукт, то он должен идеально работать как с включенными ошибками, так и без =)

Спустя 15 минут, 25 секунд (22.12.2008 - 22:09) lawbreaker написал(а):
PHP
<?
$s $_POST['submit'];
if (
$s==true){echo 'text';}
?>

<form action=order.php>
<input type=submit value="Добавить 

вот решение етой проблемы!!

или я чтото не врубаю? sad.gif

Спустя 3 минуты, 10 секунд (22.12.2008 - 22:12) modobaks написал(а):
итог проверка нужна, везде и во все, biggrin.gif dry.gif blink.gif

Спустя 9 минут, 57 секунд (22.12.2008 - 22:22) sergeiss написал(а):
Цитата (lawbreaker @ 22.12.2008 - 22:09)
PHP
<?
$s = $_POST['submit'];
if ($s==true){echo 'text';}
?>

<form action=order.php>

вот решение етой проблемы!!

или я чтото не врубаю? sad.gif

Дык... Ты все правильно написал, спору нету. Только это решение было еще днем дано. Тут вопрос уже пошел немного другой, чуть более глубокий (или более философский, что ли?).

kirik - я не понял, а каким образом гашение ошибок скажется на работе скрипта? Скорее, наоборот будет.
Потому что обработка все равно будет сделана, вне зависимости от вывода ошибок. Но при включенном выводе ошибок будут выводиться дополнительные строки, отрабатывать дополнительные функции где-то в ядре ПХП.
А при выключенном выводе будет сделана вся та же обработка, но не будет работы функций по выводу данных.


_____________
Моя мама запрещала мне в детстве рисовать в Paint, ссылаясь на то, "чтоб в компьютере краска не кончалась" :)
Быстрый ответ:

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