Читал книгу Кузнецова PHP.Практика создания сайтов. Думаю, вы знаете этот толмут. Начал писать классы. Написал с ними и несложную форму регистрации. Вроде все понятно. но при попытке проверить работу скрипта вылазиет вместо скрипта регистрации пустое место...Шапка (их шапка) отображается нормально. Шапку проверил, лишнее удалил. Ошибки следующие.. Notice: Undefined index: name in S:\home\myphp.ru\www\index.php on line 6 Notice: Undefined index: pass in S:\home\myphp.ru\www\index.php on line 7 Notice: Undefined index: pass_again in S:\home\myphp.ru\www\index.php on line 8 Notice: Undefined index: email in S:\home\myphp.ru\www\index.php on line 9 Notice: Undefined index: about in S:\home\myphp.ru\www\index.php on line 10 Вот сам index.php PHP: require_once("config.php"); try { $name = new field_text("name","Имя",true,$_POST['name']); $pass = new field_password("pass","Пароль",true,$_POST['pass']); $pass_again = new field_password("pass_again","Повторите пароль",true,$_POST['pass_again']); $email = new field_text_email("email","E-mail",true,$_POST['email']); $about = new field_textarea("about","О себе",false,$_POST['about']); $form = new form(array("name" => $name, "pass" => $pass, "pass_again" => $pass_again, "email" => $email, "about" => $about),"Добавить","field"); if(!empty($_POST)) { $error = $form->check(); if($form->fields['pass']->value != $form->fields['pass_again']->value) { $error[] = "Неверный пароль"; } $query = "SELECT * FROM users WHERE email = '{$form->fields['email']->value}'"; $mal = mysql_query($query); if(!$mail) { throw new ExceptionMySQL(mysql_error(),$query,"Ошибка регистрации пользователя"); } if(mysql_result($mal,0)) { $error = "Пользователь с электронным адресом {$form->fields['email']->value} уже зарегестрирован"; } if(empty($error)) { $query2 = "INSERT INTO users VALUES('','{$form->fields['name']->value}',md5'{$form->fields['pass']->value}', '{$form->fields['email']->value}','{$form->fields['description']->value}',NOW())"; if(!mysql_query($query2)) { throw new ExceptionMySQL(mysql_error(),$query,"Ошибка регистрацияя пользователя"); } header("Location:$_SERVER[PHP_SELF]"); exit(); } } require_once("utils/top.php"); if(!empty($error)) { foreach($error as $arr) { echo "<span style=\"color:red\">$err</span>"; } } $form->print_form(); } catch(ExceptionObject $exc) { require_once("class/exception.object.php");} catch(ExceptionMember $exc) { require_once("class/exception.member.php");} catch(ExceptionMySQL $exc) { require_once("class/exception.mysql.php");} require_once("utils/bottom.php"); Что не так?
хмм..поставил Код (Text): if(!empty($_POST)) { перед объявлением переменных. Получилось так: PHP: require_once("config.php"); try { if(!empty($_POST)) { $name = new field_text("name","Имя",true,$_POST['name']); $pass = new field_password("pass","Пароль",true,$_POST['pass']); $pass_again = new field_password("pass_again","Повторите пароль",true,$_POST['pass_again']); $email = new field_text_email("email","E-mail",true,$_POST['email']); $about = new field_textarea("about","О себе",false,$_POST['about']); $form = new form (array("name" => $name, "pass" => $pass, "pass_again" => $pass_again, "email" => $email, "about" => $about),"Добавить","field"); Так? Но уже появилась ошибка. не видит $form: Код (Text): Notice: Undefined variable: form in S:\home\myphp.ru\www\index.php on line 53 Fatal error: Call to a member function print_form() on a non-object in S:\home\myphp.ru\www\index.php on line 53
ну ты форму где определяешь? при первом вызове в if( POST ) ты не заходишь, а форма там создается... p.s. какие-то хреновые у тя учебники или учителя.
ну блин. Самого очень бесит, что в этой книге опечаток много или неточностей (хотя и написано на корешке 2008 год).... Альтернативы ей я не нашел. Имею в виду, чтобы в книге был написан пример хотя бы нескольких основных скриптов сайта, написанных на пхп с объяснениями ( ну или без)....
а я и не говорил, что я собираюсь писать сайты из 1-2 скриптов. Просто понятнь, как пишутся и т.д. В этой книге авторы пишут о создании cms. ничего похожего я не видел.
))) ну раз не надо, посмотрим что-нибудь другое... насчет исходников, я пробовал и шло через одно место (много непонятного)...попробую наверно взять какую-нить полегче и заковырять ее.
Постарайтесь сразу разделять функционал: работа с БД - отдельно, отображение данных - отдельно (смотрите в сторону шаблонов), проверка данных, инициализация констант и прочего. Будет это на классах или процедурами - не так уж и важно. Главное что бы было понимание разделения труда. Может по началу и будут с этим трудности, но когда вникните - будет легче как в отладке так и в смене каких-то элементов, я уж не говорю про дизайн и прочее оформительство. Не копируйте примеры с учебников-чужих исходников-чего-то еще. Пишите свое. Сразу. Чужой код - только как справочник по вопросам реализации алгоритмов и каких-то приемов.
Я так понял, вы имеет в виду эту книгу http://www.ozon.ru/context/detail/id/4319673/ Обязательно буду вникать
и ее тоже, но я про http://www.ozon.ru/context/detail/id/3405880/ )))) Если Вы в москве могу отдать за 200 ))) А может и за 150 ))) У меня есть еще несколько хороших книг по пхп, которые мне уже не нужны