Подскажите пожалуйста

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

Ответить
TAFTIC
Сообщения: 6
Зарегистрирован: 21 ноя 2007, 00:18

В общем html+php скрипты, учиться я только начинаю посему проблемы естественно.
Задачки две.
Обе в принцыпе по книге но не работают :)


Первое:

calc_form.html

<html><head>
<title>Форма калькулятора</title>
<i>Форма калькулятора, тупые расчеты:</i>
</head>

<body>
<form Action="calc.php" Method="post">
<p>Значение 1: <input type="text" Name="val1" size=10></p>
<p>Значение 2: <input type="text" Name="val2" size=10></p>

<p>Действие:

<select multiple name="$calc">
<option value="a">Сложить
<option value="b">Вычесть
<option value="c">Умножить
<option value="d">Разделить
</select>

<p><Input type="submit" name="submit" Value="Вычислить"</p>

</form>
</body>
</html>

и собственно calc.php

<?
if (($val1 == "") || ($val2 == "") || ($calc =="")) {
header("Location: http://localhost/calc_form.html");
exit;
}
if ($calc == "a")
{$result = $val1 + $val2;}
else if ($calc == "b")
{$result = $val1 - $val2;}
else if ($calc == "c")
{$result = $val1 * $val2;}
else if ($calc == "d")
{$result = $val1 / $val2;}
?>
<html>
<head>
<title>Результат</title>
</head>
<body>
<P>Результат равен: <? echo "$result"; ?></p>
</body>
</html>

Проблема вот в чем, первое это:
if (($val1 == "") || ($val2 == "") || ($calc =="")) {
header("Location: http://localhost/calc_form.html");
exit;
}
ибо он постоянно делает header даже если все значения были введены, и второе, если вырезать header то он мне выдаёт только

Результат равен:

И всё! Никаких цифр в результате вычисления он не выдаёт.

Тут подозрение что calc.php даже не получает эти переменные или значение $calc
Или ещё в чем проблема так и непойму

И второе:
generic_form.html

<html><head>
<title>Общая форма ввода</title>
</head>
<body>
<form action="display_input.php" method="post">

<p><strong>Текстовое поле:</strong>

<textarea name="text1" Cols=45 Rows=5 Wrap=virtual></textarea>
</p>

<p><strong>Строковая функция:</strong>

<Input type="radio" Name="func" Value="md5" Checked> функция MD5

<Input type="radio" Name="func" Value="strlen"> Получить длину строки

<Input type="radio" Name="func" Value="strrev"> Перевернуть строку

<Input type="radio" Name="func" Value="strtoupper"> Перевести строку в верхний регистр

<Input type="radio" Name="func" Value="strtolover"> Перевести строку в нижний регистр

<Input type="radio" Name="func" Value="ucwords"> Сделать первую букву каждово слова заглавной</p>


<P><Input type="submit" Name="submit" Value="Выполнить" ></p>

</form></body></html>

и соответственно
display_input.php

<? $result = $func($text1); ?>

<html><head>
<title>Основной ввод результата</title>
</head>
<body>

<?
echo "$result";
?>
<p><a href="generic_form.html">Назад</a></p>
</body></html>


А вот проблема:
Fatal error: Function name must be a string in *:\*\htdocs\display_input.php on line 1

Системные данные: Apache 2.2.4 + PHP5.2.0 WinXP Prof SP2
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Никаких $ в именах форм.
Принимай $_POST['val1']
Перепиши если что-то не будет работать запостишь
Аватара пользователя
Gelert
Сообщения: 61
Зарегистрирован: 27 янв 2005, 00:02
Контактная информация:

Согласен с Duncon.
вопрос: а зачем так всё усложнять? сделай все в одном, макс. 2 файлах...
Мужчина должен уметь делать все, кроме как рожать детей и трахаться в задницу.
TAFTIC
Сообщения: 6
Зарегистрирован: 21 ноя 2007, 00:18

2Duncon: Я ещё тока новичок, щас попробую ваш совет реализовать....

2Gelert: Ну я лично почти ничего не усложнял, по крайней мере специально, оба примера сделаны для тренировки и наработки навыков начальных, а суть, в переходу (обращению) к php скрипту и передачи переменных.....
TAFTIC
Сообщения: 6
Зарегистрирован: 21 ноя 2007, 00:18

Duncon:
Ткни пальцем я не понял всё ровно :)
И по обоим вопросам плиз, ибо я уже замучился стоять на одном месте.....
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

<select multiple name="$calc"> ---> <select multiple name="calc">

if (($_POST['val1'] == "") || ($_POST['val2'] == "") || ($_POST['calc'] =="")) {

Ткнул
TAFTIC
Сообщения: 6
Зарегистрирован: 21 ноя 2007, 00:18

Duncon, я как приду домой попробую, а по второму вопросу можешь что нибуть подсказать? Или ткнуть :)
нада указать что "text1" это текст ? Но почему он тогда ругается когда я просто запрашиваю страницу display_input.php ??
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Не больше тыкать не буду это самые основы книгу в руки и вперед..
TAFTIC
Сообщения: 6
Зарегистрирован: 21 ноя 2007, 00:18

Duncon, спасибо тебе большое $_POST помогло, терь понятно.
А насчет книг, скачал по пхп5 щас читаю уже, спс.
Ответить