[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не отрабатывает echo
Alana
Имеется скрипт:

<?php
header("Content-Type: text/html; charset=UTF-8");
$hostname = "...";
$username = "...";
$password = "...";
$dbname = "...";
if (!MYSQL_CONNECT($hostname,$username,$password)) {
echo "Ошибка при попытке соединения с MySQL <br />";
exit;
}
mysql_query("SET NAMES utf8");
mysql_select_db($dbname) or die ("Could not select database");
$sn = $_POST[surname];
$str = $_POST[street];
$h = $_POST[house];
$f = $_POST[flat];
$p = $_POST[porch];
$f = $_POST[floor];
$ph = $_POST[phone];
$tf = $_POST[tarif];
$dt=date('d-m-yy');

$q = mysql_query("INSERT INTO request (surname,street,house,flat,porch,floor,phone,tarif,date_z) VALUES ('$sn','$str','$h','$f','$p','$f','$ph','$tf','$dt')");

$street_count = mysql_query('SELECT street_name FROM streets');
echo '<select size=1 name=combo_street>';
while ($street_row = mysql_fetch_array($street_count)) {
echo '<option>'.$street_row['street_name'].'</option>';
}
echo "Проверка";
?>

Начало нас не интересует, ибо с базой все отрабатывается нормально. Проблема возникает с echo - не выводится сообщение echo "Проверка"; Не выводит после конструкции echo '<select size=1 name=combo_street>'; и ниже. До этой конструкции отрабатывает нормально. Подскажите, пожалуйста, в чем проблема. Не могу понять.



Спустя 15 минут, 32 секунды (16.08.2010 - 09:35) linker написал(а):
Все очень просто, тэг не закрыт
<select size=1 name=combo_street>...</select>

Спустя 9 минут, 11 секунд (16.08.2010 - 09:44) Alana написал(а):
Цитата (linker @ 16.08.2010 - 06:35)
Все очень просто, тэг не закрыт
<select size=1 name=combo_street>...</select>

Вот я балда-то biggrin.gif Спасибо большое, работает laugh.gif
А вообще есть какие-то замечания по самому коду? Может есть какие-то рекомендации? Я на php никогда не писала, а тут необходимость появилась.

Спустя 4 минуты, 39 секунд (16.08.2010 - 09:48) phz написал(а):
Замечания по безопасности. Вы как я понимаю данные получаете от юзера? Нет проверки

С датой у вас так и нужно?

$dt=date('d-m-yy');


В базе данные вносите через mysql_real_escape_string()

Спустя 1 час, 4 минуты, 39 секунд (16.08.2010 - 10:53) linker написал(а):
1. Секурити по нулям.
2. $_POST[tarif] - PHP конечно пофигу, но всетаки надо $_POST['tarif']
3. Негоже в одном скрипте делать INSERT в таблицу и тут же продолжать работу, т.е. если я 100 раз нажму F5, то в базу запишется сто раз одно и тоже.

Спустя 4 часа, 30 минут, 26 секунд (16.08.2010 - 15:24) Alana написал(а):
Цитата (phz @ 16.08.2010 - 06:48)
Замечания по безопасности. Вы как я понимаю данные получаете от юзера? Нет проверки

С датой у вас так и нужно?

$dt=date('d-m-yy');


В базе данные вносите через mysql_real_escape_string()

Да, данные от юзера получаю. Да, знаю, безопасности пока никакой нет, не дошла до нее и пока не знаю как реализовать. Вообще должна стоять проверка на заполненность всех полей. Но это пока за гранью фантастки =)

Да, дата у меня так и должна. Я ее просто определяю и записываю в таблицу в соответствующее поле. А чем mysql_real_escape_string() лучше? Не знала про это.

Спустя 2 минуты (16.08.2010 - 15:26) Alana написал(а):
1. Секурити по нулям - ну да, с этим тоже проблемы.... sad.gif
2. $_POST[tarif] - PHP конечно пофигу, но всетаки надо $_POST['tarif'] - с кавычками я иной раз вообще не врубаюсь, где и когда надо ставить biggrin.gif Исправлю smile.gif
3. Негоже в одном скрипте делать INSERT в таблицу и тут же продолжать работу, т.е. если я 100 раз нажму F5, то в базу запишется сто раз одно и тоже - а вот про это я даже не подумала... huh.gif dry.gif Как этого избежать? Тем способом, что предложили выше?

Спустя 6 минут, 12 секунд (16.08.2010 - 15:32) Lenarfate написал(а):
про безопасность почитайте тут http://phpforum.ru/index.php?showtopic=21213 .
так же попробуйте решить вот эту задачку http://phpforum.ru/index.php?showtopic=19168

Спустя 2 минуты, 27 секунд (16.08.2010 - 15:34) Lenarfate написал(а):
что касается F5, можно делать перенаправление средствами функции header() непосредственно после запроса

Спустя 16 часов, 20 минут, 29 секунд (17.08.2010 - 07:55) Alana написал(а):
Про задачу.... Я такой чайник в php. Даже не чайник, а носик от чайника rolleyes.gif

$tmp = mysql_query("SELECT id_street FROM streets");
while (mysql_fetch_array($tmp)) {
echo '<select>';
$tmp2 = mysql_query("SELECT id_street, house_name FROM house WHERE id_street=$tmp[id]");
while ($tmp3 = mysql_fetch_array($tmp2)) {
echo '<option>'.$tmp3['house_name'].'</option>';
}
echo '</select>';
}

Тут должен рисовать на страничке 37 выпадающих списков и заполнять каждый список определенными номерами домов в зависимости от значения переменной $tmp. Эта переменная берет id домов и подставляет их в запрос ("SELECT id_street, house_name FROM house WHERE id_street=$tmp[id]"). Но, судя по всему, с переменной не отрабатывает. Если поставить любое число, например 1, то все запрос отрабатывает (и выводит во всех 37 выпадающих списках одни и те же номера домов, которые имеют в таблице id_street = 1).
- ой, сделала это =)

Я пока только экспериментирую, как можно решить задачу. Но пока не очень получается sad.gif

А вообще мне нужно прикрутить на форму выпадающий список с наименованиями, данные в котором берутся из базы. И чтобы при выборе улицы в выпадающем списке с номерами домов отображались только номера выбранной улицы. Наверное, это можно реализовать с помощью Javascript, да?
Быстрый ответ:

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