[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Switch-case проблема.
shcherbinkin
Учусь обрабатывать формы, написал скриптик.

<?php
switch($nomer)
{
case 1: echo "one"; break;
case 2: echo "two"; break;
case 3: echo "fre"; break;
default: echo ("Укажите число от 1 до 3");
}
?>


Ввожу в строку http://localhost/wep.php?nomer=2
И скрипт отвечает кейсом default: Укажите число от 1 до 3!
Ввожу и 1 и 2 и 3 все равно ответ: Укажите число от 1 до 3!
Где ошибся, движок денвер!



Спустя 5 минут, 13 секунд (12.11.2010 - 01:10) SlavaFr написал(а):
зделай
echo $nomer;
a потом
echo $_GET['nomer'];

Спустя 1 минута, 31 секунда (12.11.2010 - 01:11) Invis1ble написал(а):
shcherbinkin
Ну правильно, у тебя в case стоит $nomer, а передаешь ты $_GET['nomer']

Спустя 17 минут, 7 секунд (12.11.2010 - 01:28) shcherbinkin написал(а):
Простите за нубство но я не доганяю!!!
мне нужно чтоб он нашел совпадение в кейсе с тем что я ему задаю и вывел соответсвенный ехо кейс в котором он нашел совпадение.
А он лупит все время деваулт кейс.
как правильно сделать, чтоб я по форме в хтмл файле вводил цыфру и он сравнил по кейсам цыфу и если нашел ответ вывел ее, а не вывел дефаулт кайс?
А дефаулт нужен чтоб вывести если число не найдено!

Форма form.htm:
<form action = "web.php" method="get">
Номер: <input type="text" name="nomer"/><br>
<input
type="submit"/>
</form>


Все лежит в корне.

Также хочу пофлудить немного о том как нынче пишут книги по пхп, цытата:

Управляющая структура switch передает управление тому из помеченных case операторов, для которого значение константного выражения совпадает со значением переключающего выражения. Если значение переключающего
выражения не совпадает ни с одним из константных выражений, то выполняется переход к оператору, помеченному меткой default. В каждом переключателе может быть не более одной метки default, однако она может
отсутствовать вообще. Приведем пример программы с переключателем. В этой программе выводятся названия нечетных целых десятичных цифр от 1 до 9 не
меньше заданной, в зависимости от числа, указанного в форме test.html. Форма test.html не отличается от той, что мы уже использовали:

<form action = "http://localhost/PHP/chapt2/switch.php" method="get">
number: <input type="text" name="number"/><br>
<input
type="submit"/>
</form>

<?

switch($number)
{
case 1:
echo ("one ");
case 2: case 3:
echo ("free");
case 4: case 5:
echo ("five");
case 6: case 7:
echo ("seven");
case 8: case 9:
echo ("nine");
break;
default:
echo ("This isn't number or number is > 9 or < 1");
}
?>

В книге пишут нерабочие примеры, и вот как учится если уже в трех книгах неправильные примеры пишут?!

Спустя 2 минуты, 48 секунд (12.11.2010 - 01:31) aH6y написал(а):
shcherbinkin
<?php
switch($_GET['nomer'])
{
case 1: echo "one"; break;
case 2: echo "two"; break;
case 3: echo "fre"; break;
default: echo ("Укажите число от 1 до 3");
}
?>

Спустя 2 минуты, 19 секунд (12.11.2010 - 01:33) inpost написал(а):
$number и $_GET['number'] - это разные переменные!

Спустя 1 минута, 19 секунд (12.11.2010 - 01:35) shcherbinkin написал(а):
Цитата (aH6y @ 11.11.2010 - 22:31)
<?php
switch($_GET['nomer'])
{
case 1: echo "one"; break;
case 2: echo "two"; break;
case 3: echo "fre"; break;
default: echo ("Укажите число от 1 до 3");
}
?>


Ура!!! Спасибо всем! Понял ошибку.

А может у кого есть ссылки на книги где более или мение грамотно без таких ошибок на примерах, можно учиться пхп языку?

Спустя 1 минута, 24 секунды (12.11.2010 - 01:36) aH6y написал(а):
shcherbinkin
воть, документация и естественно google.com

Спустя 3 минуты, 40 секунд (12.11.2010 - 01:40) shcherbinkin написал(а):
Жаль там ... зарегиться не могу не принимает код проверки, какой-то глюк наверное.
Я если что буду обращаться, спасибо всем что помгли.

Хотелось бы сделать вывод, если подобное нужно сделать:
Я изменил переменную потому что запрос шел с формы или потому что неправильно сделано?

Спустя 3 минуты, 28 секунд (12.11.2010 - 01:43) inpost написал(а):
С формы method="get", значит приходит переменная в виде: $_GET. Если бы метод был post, то переменная имела бы вид: $_POST['nomer'].

Спустя 11 минут, 34 секунды (12.11.2010 - 01:55) Sanchopansa написал(а):
можно еще чтоб не париться с $_GET и $_POST искать переменные в $_REQUEST... там они все есть и ГЕТ и ПОСТ

Спустя 4 минуты, 5 секунд (12.11.2010 - 01:59) Invis1ble написал(а):
Sanchopansa
Цитата
можно еще чтоб не париться с $_GET и $_POST

да уж... страшная запара ))

Спустя 1 минута, 54 секунды (12.11.2010 - 02:01) Sanchopansa написал(а):
Invis1ble
ну я когда начинал с ПЧП всегда юзал $_REQUEST.. мне так было легче.. вот и человеку посоветовал.. а там его уже дело smile.gif
Да и еше про один глобальный масив узнал smile.gif

Спустя 9 минут, 39 секунд (12.11.2010 - 02:10) inpost написал(а):
Sanchopansa
Ты пишешь скрипт:
if(isset($_REQUEST['name']))
mysql_query ("INSERT INTO lalalaa SET name='".$_REQUEST['name']."'");

Где-то там внизу:
<form method="post">

А хакер введёт:
index.php?name=ПЛОХИЕ_БУКВЫ, и хана... Он работает по своей схеме, а не твоей. Пост для более крепкой защиты и существует.

Спустя 3 минуты, 47 секунд (12.11.2010 - 02:14) Invis1ble написал(а):
Sanchopansa
Кстати да, но есть вариант - $GLOBALS['HTTP_GET_VARS'] - можно так еще )

Спустя 1 минута, 9 секунд (12.11.2010 - 02:15) Sanchopansa написал(а):
inpost
ты меня не правильно понял... Я знаю в чем разница между этими массивами.. и испотльзую я СЕЙЧАС именно те что нада.. Я говорил что пользовался на начальных уровнях.. когда я еще даже не что про Инъукцию не слыхал, а про фильтрацию входных данных еще не знал smile.gif

МОЖНО СЧИТАТЬ ЧТО Я ПРОСТО ПАРНЮ ДАЛ ЕЩЕ ОДНО ДОМАШНЕЕ ЗАДАНИЕ smile.gif

Спустя 7 минут, 2 секунды (12.11.2010 - 02:22) inpost написал(а):
Sanchopansa
Либо Твин, либо Сергеис говорил: "Учиться правильно писать надо с самого начала!", это, конечно, противоположно моему мнению, что единственное нормальное начало на данный момент - это Попов, но всё же, отличный аргумент на то, чтобы не советовать парню использовать REQUEST. Даже Костеров в своей книге рассказал про Request и сказал, что лучше так не делать вообще никогда! =)

Спустя 58 минут, 46 секунд (12.11.2010 - 03:21) shcherbinkin написал(а):
так знач лучше использовать метод пост?
а в пхп скрипте нужно что-то особенное менять?
просто читал что гет метод передаеться юрл-ом, а пост в теле.

скажите, а как запретить гет запрос к скрипту? чтоб только пост!

Спустя 23 минуты, 17 секунд (12.11.2010 - 03:44) inpost написал(а):
Никак, просто используй и обрабатывай те переменные, которые тебе нужны в данном коде.
Быстрый ответ:

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