[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не пойму где ошибка?
andreisurger
Я только начал изучать php. Так что сильно не ругайтесь. Написал код но он почему-то не работает как надо. Подскажите где ошибка?

<?php
echo "<form action='index.php' method='get'>";
echo "<br/>";
echo "<input type='text' name='n'/>";
echo "<input type='text' name='k'/>";
echo "<input type='submit' value='Нажать'/>";


$a = $_GET['n'];
$b = $_GET['k'];
$c = $a + $b;

if($c = 5)
{
echo "Верно";
}
elseif( = 4)
{
echo "не правильно";
}
else
{
echo "Нормуль";
}

?>

Весь код в одном файле.



Спустя 6 минут, 39 секунд (9.01.2011 - 18:02) twin написал(а):
Два равно надо

Спустя 3 минуты, 54 секунды (9.01.2011 - 18:06) andreisurger написал(а):
А точно. Проверил, что тог не работает когда ввожу 2 и 2. Выводит Нормуль??

Спустя 1 минута, 51 секунда (9.01.2011 - 18:08) sharki написал(а):
$с = 4 это знак присваивания т.е пеерменной $c присвоить 4, $с == 4 а это означает что $c равно 2.

И вообще возьми книжку, и дочитай до конца!

Спустя 52 секунды (9.01.2011 - 18:09) alex12060 написал(а):
Цитата
А точно. Проверил, что тог не работает когда ввожу 2 и 2. Выводит Нормуль??


По Русски и с запятыми)

Спустя 20 секунд (9.01.2011 - 18:09) Invis1ble написал(а):
andreisurger
в условиях (обоих) оператор сравнения == нужен, а не оператор присваивания =

Спустя 3 минуты, 29 секунд (9.01.2011 - 18:13) andreisurger написал(а):
Я исправил оператор присваивания на опрератор сравнения. После этого проверил скрипт в работе. при вводе в форму 2 и 3 выводит первое условие, а при вводе 2 и 2 третье, хотя должен второе.

Спустя 56 секунд (9.01.2011 - 18:14) andreisurger написал(а):
Вот переделанный код

<?php
echo "<form action='index.php' method='get'>";
echo "<br/>";
echo "<input type='text' name='n'/>";
echo "<input type='text' name='k'/>";
echo "<input type='submit' value='Нажать'/>";


$a = $_GET['n'];
$b = $_GET['k'];
$c = $a + $b;

if($c == 5)
{
echo "Верно";
}
elseif( == 4)
{
echo "не правильно";
}
else
{
echo "Нормуль";
}

?>

Спустя 6 минут, 17 секунд (9.01.2011 - 18:20) sergeiss написал(а):
Тебе еще не хватает блока, где идет оценка "были ли вообще переданы данные". Проблема в том, что при первом запуске скрипта данных передано не будет, а в твоем коде все равно что-то будет выведено.

Что-то типа такого надо (для $b аналогично):
$a = isset( $_GET['n'] ) ? $_GET['n'] : false;

//и дальше надо проверять, что
if( $a !== false ) // это говорит о том, что что-то было передано, может быть и ноль


Я тебе не полный код написал, а только часть, как подсказку.

Спустя 42 секунды (9.01.2011 - 18:21) Invis1ble написал(а):
andreisurger
у тебя там во втором условии буква "с" русская wink.gif

Спустя 8 минут, 16 секунд (9.01.2011 - 18:29) andreisurger написал(а):
И правда русская оказалась.

Спустя 55 секунд (9.01.2011 - 18:30) inpost написал(а):
andreisurger
покажи код!

Спустя 3 минуты, 57 секунд (9.01.2011 - 18:34) andreisurger написал(а):
Разобрался вроде. Правда сделал немного по другому:

<?php
echo "<form action='index.php' method='get'>";
echo "<br/>";
echo "<input type='text' name='n'/>";
echo "<input type='text' name='k'/>";
echo "<input type='submit' value='Нажать'/>";


$a = $_GET['n'];
$b = $_GET['k'];
$c = $a + $b;
if ($a and $b){
if($c == 5)
{
echo "Верно";
}
elseif($c == 4)
{
echo "не правильно";
}
else
{
echo "Нормуль";
}
}

?>

Спустя 1 час, 32 минуты, 41 секунда (9.01.2011 - 20:07) andreisurger написал(а):
Спасибо всем. Попробую калькулятор написать простенький. Надо же как то практиковаться.

Спустя 2 часа, 16 минут, 13 секунд (9.01.2011 - 22:23) sergeiss написал(а):
andreisurger - только ты в своем коде не учел то, что я написал.

Спустя 16 минут, 27 секунд (9.01.2011 - 22:39) andreisurger написал(а):
Так я же это добавил:
if ($a and $b)
Почти идентично. Только в конце не добавил else.

Спустя 52 секунды (9.01.2011 - 22:40) twin написал(а):
Цитата
andreisurger - только ты в своем коде не учел то, что я написал.

Почему? Там четко прописано - "Нормуль" smile.gif

Спустя 3 минуты, 28 секунд (9.01.2011 - 22:44) andreisurger написал(а):
Хотя else есть. Мне больше понятен синтаксис if else

Спустя 2 минуты, 39 секунд (9.01.2011 - 22:46) Invis1ble написал(а):
andreisurger
прочти еще раз пост sergeiss и попробуй понять, что он тебе хотел сказать )

Спустя 12 часов, 40 минут, 9 секунд (10.01.2011 - 11:26) andreisurger написал(а):
$a = isset( $_GET['n'] ) ? $_GET['n'] : false;

//и дальше надо проверять, что
if( $a !== false ) // это говорит о том, что что-то было передано, может быть и ноль


Насколько я понял из книг этот код можно разобрать так.
Если передано значение n, то a присвоено значение n, иначе a = false., а дальше проверять если a не равно false, то выполнить следующий код.
Но данную запись насколько я знаю можно записать с помощью конструкции if...else.

Спустя 4 часа, 27 минут, 18 секунд (10.01.2011 - 15:54) Invis1ble написал(а):
andreisurger
да, можно. sergeiss привел сокращенный вариант записи. Суть не в этом, а в том, чтобы делать проверку.

Спустя 1 час, 35 минут, 32 секунды (10.01.2011 - 17:29) andreisurger написал(а):
Понял спасибо.

Спустя 1 час, 50 минут, 45 секунд (10.01.2011 - 19:20) andreisurger написал(а):
Так вроде в моем коде есть проверка?

Спустя 10 минут, 6 секунд (10.01.2011 - 19:30) Invis1ble написал(а):
andreisurger
какая? на существование $_GET у тебя нет проверок
поставь в начале своего кода такую строчку:
error_reporting(E_ALL | E_STRICT);

и будешь "приятно" удивлен =)

Спустя 6 минут, 26 секунд (10.01.2011 - 19:37) andreisurger написал(а):
Вот такую ошибку выдает
Notice: Undefined index: n
Notice: Undefined index: k

Спустя 7 минут, 4 секунды (10.01.2011 - 19:44) andreisurger написал(а):
А если вот так написать:

<?php
echo "<form action='index.php' method='get'>";
echo "<br/>";
echo "<input type='text' name='n'/>";
echo "<input type='text' name='k'/>";
echo "<input type='submit' value='Нажать'/>";

if ($_GET['n'])
{
$a = $_GET['n'];
}

if ($_GET['k'])
{
$b = $_GET['k'];
}
$c = $a + $b;
if ($a and $b){
if($c == 5)
{
echo "Верно";
}
elseif($c == 4)
{
echo "не правильно";
}
else
{
echo "Нормуль";
}
}

?>

Спустя 6 минут, 13 секунд (10.01.2011 - 19:50) Invis1ble написал(а):
andreisurger
вот именно! а проверка как раз и нужна, чтобы избежать всех этих ошибок )

Спустя 38 секунд (10.01.2011 - 19:50) Invis1ble написал(а):
if (isset($_GET['n'])) - такие проверки тебе нужны.

Спустя 4 минуты, 47 секунд (10.01.2011 - 19:55) Dron19 написал(а):
Цитата (Invis1ble @ 10.01.2011 - 16:50)
if (isset($_GET['n'])) - такие проверки тебе нужны.

на будующее:
if(isset($_GET['n']) == true) и if(isset($_GET['n'])) - идентично

Спустя 2 минуты, 38 секунд (10.01.2011 - 19:58) andreisurger написал(а):
Все теперь понял. Тогда в коде if ($a and $b) наверное лишнее?

Спустя 5 минут, 8 секунд (10.01.2011 - 20:03) andreisurger написал(а):
Хотя не лишнее. Без него выводит последнее условие.

Спустя 5 минут, 28 секунд (10.01.2011 - 20:08) andreisurger написал(а):
Dron19
Цитата

--------------------
PHP+MySQL - уже изучил на уровне профессионала, осталось всего лишь это:
C,C++,C#,JavaScript,Python,Ruby,Perl,OpenGl,DirectX,ASP.NET - Намерен учить все

А по каким книгам учил php если не секрет?

Спустя 5 минут, 41 секунда (10.01.2011 - 20:14) DedMorozzz написал(а):
Цитата
PHP... - уже изучил на уровне профессионала
ммм, а это как. В моём понимании - сделать всё.
Немного оффтопа, который в тему:
Риторический вопрос, который может оказаться не риторическим - как реализовать отправку смс с сайта стран востока, по всему миру. Укажи решение smile.gif
Учитывая, что профи точно всё нают..

Спустя 7 минут, 58 секунд (10.01.2011 - 20:22) Dron19 написал(а):
Цитата (andreisurger @ 10.01.2011 - 17:08)
Dron19
Цитата

--------------------
PHP+MySQL - уже изучил на уровне профессионала, осталось всего лишь это:
C,C++,C#,JavaScript,Python,Ruby,Perl,OpenGl,DirectX,ASP.NET - Намерен учить все

А по каким книгам учил php если не секрет?

честно говоря названия я уже не помню, извини, давно их поотдавал знакомым

Спустя 1 час, 35 минут, 30 секунд (10.01.2011 - 21:58) andreisurger написал(а):
Просто я накачал разных в интернете и по ним стараюсь учить.

Спустя 50 секунд (10.01.2011 - 21:58) andreisurger написал(а):
Думал может кто посоветует самую понятную и полную.

Спустя 2 часа, 1 минута, 34 секунды (11.01.2011 - 00:00) sergeiss написал(а):
Цитата (andreisurger @ 10.01.2011 - 22:58)
Думал может кто посоветует самую понятную и полную.

Я посоветую smile.gif

Скачай хэлп по ПХП из моей подписи, прочитай его полностью. Там ВЕСЬ ПХП. Насчет понятности... Это скорее к тебе вопрос, как ты воспринимаешь.

Спустя 11 часов, 57 минут, 49 секунд (11.01.2011 - 11:58) andreisurger написал(а):
Я люблю когда все расписано по пунктам. Что и для чего в скрипте написано.

Спустя 34 секунды (11.01.2011 - 11:58) andreisurger написал(а):
А по-русски нет?
Быстрый ответ:

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