Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Укажите где ошибка, Ошибка объявления переменной 
:(
    Опции темы
LenivecSid
Дата 6.1.2010, 15:47 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 4.4.2008

Репутация: нет
Всего: нет



посмотрите пожалуйста код. Укажите где здесь ошибка, я не очень понимаю. 
Код
<?php
//$_POST ['flag']==1, когда формуляр отправлен
if ($_POST ['flag']==1)
{
//удаление ведущих и замыкающих пробелов
$_POST ['supplier_name']=trim($_POST['supplier_name']);
$_POST ['supplier_address']=trim ($_POST ['supplier_address']);
$_POST ['supplier_inn']=trim ($_POST ['supplier_inn']);
$_POST ['supplier_account']=trim ($_POST ['supplier_account']);
$_POST ['supplier_phone']=trim ($_POST ['supplier_phone']);
$_POST ['supplier_bank']=trim ($_POST ['supplier_bank']);
$_POST ['address_bank']=trim ($_POST ['address_bank']);
$_POST ['director']=trim ($_POST ['director']);
$_POST ['chief_accountant']=trim ($_POST ['chief_accountant']);
//проверка заполненности всех полей
if (!$_POST ['supplier_name']){$fehler="введите название фирмы<br/>";}
if (!$_POST ['supplier_address']){$fehler="введите адресс фирмы<br/>";}
if (!$_POST ['supplier_inn']){$fehler="введите инн фирмы<br/>";}
if (!$_POST ['supplier_account']){$fehler="введите счет фирмы<br/>";}
if (!$_POST ['supplier_phone']){$fehler="введите телефон фирмы<br/>";}
if (!$_POST ['supplier_bank']){$fehler="введите банк фирмы<br/>";}
if (!$_POST ['address_bank']){$fehler="введите адресс банка<br/>";}
if (!$_POST ['director']){$fehler="введите данные начальника фирмы<br/>";}
if (!$_POST ['chief_accountant']){$fehler="введите данные главного бухгалтера<br/>";}
//при наличии ошибок, выдается сообщение
//и переменная $_POST['flag'] сбрасывается, чтобы показать содержимое формуляра
if ($fehler)
{
$meldung="<h2><font color=red>".$fehler."</font></h2>";
unset ($_POST['flag']);
}
else //при отсутствии ошибок данные сохраняются в базе данных
{
    //формирование sql-строки
$tabellsupplier="supplier";
$sql="INSERT INTO $tabellsupplier (supplier_name, supplier_address, supplier_inn, supplier_account,
supplier_phone, supplier_bank, address_bank, director, chief_accountant)
values ('".$_POST['supplier_name']."', '".$_POST['supplier_address']."', '".$_POST['supplier_inn']."',
'".$_POST['supplier_account']."', '".$_POST['supplier_phone']."', '".$_POST ['supplier_bank']."',
'".$_POST ['address_bank']."', '".$_POST ['director']."', '".$_POST ['chief_accountant'];
    //подключение к базе данных
$link = mysql_connect("localhost", "root", "1234");
mysql_select_db("warehouse", $link);
mysql_query($sql, $link);
$meldung="<h2><font color=red>данные приняты.</font></h2>";
}
    //выдача сообщения
echo $meldung;
}//end $_POST['flag']==1
if (!$_POST['flag'])
{
?>


PM MAIL   Вверх
Ипатьев
Дата 6.1.2010, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 3
Всего: 37



непонятно.
это вопрос на собеседовании что ли?
откуда информация о том, что это ошибка объявления переменной?
если об этом пишет РНР, то он и показывает строку, где ошибка.
PM MAIL   Вверх
capitan
Дата 6.1.2010, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 2
Всего: 13



Так
Код

if ($_POST ['flag']==1)

лучше не делать, т.к. $_POST ['flag'] может и не быть, что выдаст ошибку. Проверку делать лучше таким образом:
Код

if (!empty($_POST ['flag']) && $_POST ['flag']==1)


Но ещё нужно понимать что может быть в этой переменной, нужно понимать разницу между empty и isset. И использовать их в зависимости от ситуации.

Далее. Разберитесь в чем разница
Код

$fehler="введите адресс фирмы<br/>";

и
Код

$fehler .="введите адресс фирмы<br/>";


Иначе я не понимаю смысл "<br/>".  Перед началом "сбора ошибок", переменную все таки лучше объявить.
Код

$fehler = '';
 а уже потом "собирать" в неё варнинги.

Это так, на вскидку.

Это сообщение отредактировал(а) capitan - 6.1.2010, 21:02
PM MAIL WWW ICQ   Вверх
cia
Дата 14.1.2010, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 15.1.2007

Репутация: нет
Всего: 4



И еще лишним не будет экранировать пост-данные при выполнении insert'a, например, при помощи mysql_escape_string
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0452 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.