Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

PHP-основы. Книга врет ли?

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> PHP-основы. Книга врет ли?
Имя
Сообщение << Старые топики   Новые топики >>
PHP-основы. Книга врет ли? - 2010-02-19 22:34:28.700000   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
Решил я сунуться в PHP по необходимости, пока даже без особых изысков. Скриптовые языки доселе правда не уважал. Книжку взял,всё как водится,решил поиграться. Там предлагается для PHP 5 такая вещь:
quote:


if($_POST['sent']==1) { первый проход по скрипту,делаем что-то}
…..
$_POST['message']=str_replace(….
$_POST['message']=str_replace(….
…..
&lt;input type="hidden" name="sent" value="1"&gt; //типо скрытое поле
{


html оформление и сам текст скрипта - всё в одном документе,в начале идут какие то проверки элементов $_POST[] (ну,обработка,в общем). И сам так забивал,когда своё тестил. Так вот,при первом открытии лезут ошибки, типо нет таких элементов (логично,нет запроса - нет переменных). В книжке авторы клали зуб,что всё должно бегать. Они неправы или язык обновился? Нубство,но подскажите уж,пожалуйста.
Post #: 1
RE: PHP-основы. Книга врет ли? - 2010-02-19 23:49:10.680000   
FriLL

Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
Можно полный скрипт, от начала и до конца
Post #: 2
RE: PHP-основы. Книга врет ли? - 2010-02-19 23:52:36.120000   
Sрam

Сообщений: 2863
Оценки: 372
Присоединился: 2009-01-16 15:23:43.276666
Какие конкретно ошибки лезут?
Post #: 3
RE: PHP-основы. Книга врет ли? - 2010-02-19 23:52:38.963333   
LolLolLolHahaha

Сообщений: 155
Оценки: 0
Присоединился: 2008-03-22 18:21:23
Как я понял у тебя есть файл php который содержит в себе и формы, и обработку этих же форм. Тоесть послыает сам себе post запросы.

<?php
… Тут берем пост и чето с ним делаем
?>

<html>
…. Тут формочки и контент
</html>

Есстественно при запуске будет ругаться, т.к. ничего не отправленно а уже принимаеться - сам видишь.. логично.. а значит если ошибки только в этом следовательно они не крейтичны.. следовательно тебе просто нужно было задать вопрос - КАК отключить показ ошибок. или зайти на php.su и в поиске вбить error - там бы ты нашел такую функцию - error_reporting(0);
Которая и поможет тебе добиться требуемого результата. Т.е.

<?php
error_reporting(0);
……
?>

<html>
….
</html>

P.S. Незнаю кто там авторы, но по мне привычней использовать разные страницы, да и выгода получаеться в скорости (если ngnix вертиться, конечно). Хотя, в майл ру тоже при регистрации все в одном храниться, насколько я помню. (а можт прогерры тож по этой книге учились :D)
Post #: 4
RE: PHP-основы. Книга врет ли? - 2010-02-19 23:54:21.710000   
Sрam

Сообщений: 2863
Оценки: 372
Присоединился: 2009-01-16 15:23:43.276666
quote:

Есстественно при запуске будет ругаться, т.к. ничего не отправленно а уже принимаеться

quote:

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

Это и есть проверка на выполнение нужного фрагмента
Post #: 5
RE: PHP-основы. Книга врет ли? - 2010-02-19 23:57:08.910000   
LolLolLolHahaha

Сообщений: 155
Оценки: 0
Присоединился: 2008-03-22 18:21:23
Аа.. ну тогда, возможно, стоит попробовать isset($_POST['sent'])



quote:

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


На это помоему и ругается.. Что никакой параметр sent не существует а его уже принимают
Post #: 6
RE: PHP-основы. Книга врет ли? - 2010-02-19 23:59:27.716666   
Sрam

Сообщений: 2863
Оценки: 372
Присоединился: 2009-01-16 15:23:43.276666
Пускай он сначала код выложит,а потом уже можно будет что-то сказать!
Post #: 7
RE: PHP-основы. Книга врет ли? - 2010-02-20 00:02:55.886666   
LolLolLolHahaha

Сообщений: 155
Оценки: 0
Присоединился: 2008-03-22 18:21:23
Аха, и тексты ошибок..
Post #: 8
RE: PHP-основы. Книга врет ли? - 2010-02-20 00:21:39.680000   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
Оу,сори,не хотел загромождать сообщение. Пожалуйста,этот из книги:
quote:


&lt;?php if($_POST['sent']==1) { /* Kommentar: Langschreibweise fьr die nachfolgende Kurzschreibform $_POST['name']=trim($_POST['name']); $_POST['name']=strip_tags($_POST['name']); $_POST['name']=str_replace('~','',$_POST['name']); */ $_POST['name']=str_replace('~','',strip_tags(trim($_POST['name']))); $_POST['betreff']=str_replace('~','',strip_tags(trim($_POST['betreff']))); $_POST['message']=str_replace('~','',strip_tags(trim($_POST['message']))); $fehler=''; $_POST['name']='@'; $_POST['betreff']='@'; $_POST['message']='@'; If( !($_POST['name']=='@') ){$fehler="Bitte geben Sie einen Namen ein &lt;br&gt;";} If( !($_POST['betreff']=='@') ){$fehler.="Bitte geben Sie den Betreff an &lt;br&gt;";} If( !($_POST['message']=='@') ){$fehler.="Bitte geben Sie eine Nachricht ein&lt;br&gt;";} if($fehler){$fehler="&lt;h4&gt;&lt;font color=red&gt;".$fehler."&lt;/font&gt;&lt;/h4&gt;";} } if($_POST['name'] AND $_POST['betreff'] AND $_POST['message'])//Formular wurde ausgefьllt { //$_POST['message']=nl2br($_POST['message']); $t1=chr(10); $t2=chr(13); $_POST['message']=str_replace($t1,'&lt;br&gt;',$_POST['message']); $_POST['message']=str_replace($t2,'&lt;br&gt;',$_POST['message']); IF(file_exists('gast.txt')){$ausgabe="\n";} $comment=fopen('gast.txt','a'); $ausgabe.=$_POST['name']."~".$_POST['betreff']."~".$_POST['message']; fputs($comment,$ausgabe); fclose($comment); $_POST['name']=""; $_POST['betreff']=""; $_POST['message']=""; } ?&gt; &lt;html&gt;&lt;head&gt; &lt;title&gt;Gдstebuch&lt;/title&gt; &lt;/head&gt;&lt;bоdу&gt; &lt;h3&gt;Unser Gдstebuch&lt;/h3&gt; &lt;?php echo $fehler; ?&gt; &lt;form action="&lt;?php echo $_SERVER['PHP_SELF']; ?&gt;" method="post"&gt; &lt;input type="hidden" name="sent" value="1"&gt; &lt;p&gt;Ihr Name:&lt;br&gt; &lt;input type="text" name="name" size="30" value="&lt;?php echo $_POST['name']; ?&gt;"&gt; &lt;br&gt; Betreff:&lt;br&gt; &lt;input type="text" name="betreff" size="30" value="&lt;?php echo $_POST['betreff']; ?&gt;"&gt; &lt;br&gt; Ihre Nachricht:&lt;br&gt; &lt;textarea name="message" rows="10" cols="30" wrap="virtual"&gt; &lt;?php echo $_POST['message']; ?&gt; &lt;/textarea&gt; &lt;/p&gt; &lt;input type="submit" value="abschicken"&gt; &lt;/form&gt; &lt;/bоdу&gt;&lt;/html&gt;


Ошибки типа "Notice: Undefined index:" и "Notice: Undefined variable:"
В строчках 2,23,44,48,51,55.
В разных идея хорошая,просто я пока не дочитал как возвращаться к формочке после выполнения [sm=ah.gif] ,да и вообще пример себе писал как в книжке(он потупее,я привел этот,каноничный,чтобы копаться только в их проблемах,самых неприятных).
З.Ы. Немецкий язык из-за копипаста)).
Post #: 9
RE: PHP-основы. Книга врет ли? - 2010-02-20 00:24:51.676666   
FriLL

Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
quote:

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

Вот эта строка уже ошибочная ибо чтото сравниваеться без проверки установлен ли в принципе $_POST['sent']
Что за книга?
Post #: 10
RE: PHP-основы. Книга врет ли? - 2010-02-20 00:25:07.650000   
LolLolLolHahaha

Сообщений: 155
Оценки: 0
Присоединился: 2008-03-22 18:21:23
А ну да.. Ругается как раз на отсутствие параметров name, betref message и так далее..

В данном случае это не крейтично, так что можешь смело отключить показ ошибок.
и вообще ты пробовал, то что я писал выше?


quote:


$_POST['name']='@';
$_POST['betreff']='@';
$_POST['message']='@';
If( !($_POST['name']=='@') ){$fehler="Bitte geben Sie einen Namen ein &lt;br&gt;";}
If( !($_POST['betreff']=='@') ){$fehler.="Bitte geben Sie den Betreff an &lt;br&gt;";}
If( !($_POST['message']=='@') ){$fehler.="Bitte geben Sie eine Nachricht ein&lt;br&gt;";}


о_О Индусский код???
Post #: 11
RE: PHP-основы. Книга врет ли? - 2010-02-20 00:27:30.163333   
FriLL

Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
quote:

В данном случае это не крейтично, так что можешь смело отключить показ ошибок.

Давайте тогда вообще показ всех ошибок отключим, все будет красиво, но ничего работать не будет
Post #: 12
RE: PHP-основы. Книга врет ли? - 2010-02-20 00:29:11.413333   
LolLolLolHahaha

Сообщений: 155
Оценки: 0
Присоединился: 2008-03-22 18:21:23
В данном случае работать будет.

А когда что-то неработает - закомментируй строку отключения ошибок и посмотри че там повылазило (кроме undefined variable).

Да и я не только про отключение ошибок писал, но и про isset..
Post #: 13
RE: PHP-основы. Книга врет ли? - 2010-02-20 00:35:37.156666   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
Ну да,обойти проблему то можно. Читал - 2 файла работают хорошо, показ ошибок отключать стыдновато если честно. Книга - "PHP 5 & MySQL 5" Кристина Пейтон,Андре Меллер. За индусский код извиняюсь[sm=bu.gif], это я тестировал скрипт по какому принципу ругается и забыл убрать
quote:


$fehler='';
$_POST['name']='@';
$_POST['betreff']='@';
$_POST['message']='@';

Вот этого быть не должно, проверки тоже стояли а-ля If(!($_POST['name']), всё норм было. Бред и надо вычеркнуть,да. Но общий смысл глюка меняться не стал.

//—————————
Isset попробовал,своё дело он делает,Спасибо.
Но там же везде ругается,а такая штука,как "сохранение введенной инфы в полях после отправки" например требует переменную, с этим и есть проблемы. Что,всюду if-ы понатыкать чтоли с isset-ами?
Post #: 14
RE: PHP-основы. Книга врет ли? - 2010-02-20 01:05:31.893333   
LolLolLolHahaha

Сообщений: 155
Оценки: 0
Присоединился: 2008-03-22 18:21:23
Имхо достаточно один раз:

quote:


if (isset($_POST['name'], $_POST['mail'], $_POST['еще чето']) {
..Делать что-то
} else {
.. делать еще что-то
}




Эт чето типо гостивухи или где? Напиши плиз назначение скрипта, а то несильно люблю копаться в чужом коде :)
Post #: 15
RE: PHP-основы. Книга врет ли? - 2010-02-20 01:10:51.466666   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
Аха. тогда &lt;input type="text" name="betreff" size="30" value="&lt;?php if (isset($_POST['betreff'])) {echo $_POST['betreff'];} ?&gt;"&gt; И т.п.? Воо,круто,так то оно получше,Пасиба.
Post #: 16
RE: PHP-основы. Книга врет ли? - 2010-02-20 01:14:06.006666   
LolLolLolHahaha

Сообщений: 155
Оценки: 0
Присоединился: 2008-03-22 18:21:23
;) рад, что смог помочь =)
Post #: 17
RE: PHP-основы. Книга врет ли? - 2010-02-20 13:10:48.783333   
FriLL

Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
quote:

Книга - "PHP 5 & MySQL 5" Кристина Пейтон,Андре Меллер.

Во-во у меня такая же, а то чувствую код знакомый

quote:

&lt;input type="text" name="betreff" size="30" value="&lt;?php if (isset($_POST['betreff'])) {echo $_POST['betreff'];} ?&gt;"&gt;

вообще по мне вот то что выделено засунуть в функцию, а потом просто вызывать
Post #: 18
RE: PHP-основы. Книга врет ли? - 2010-02-20 18:49:41.993333   
LolLolLolHahaha

Сообщений: 155
Оценки: 0
Присоединился: 2008-03-22 18:21:23
Не, ну давай сразу тогда класс напишем =) Человек только осваиваеться, а ты ему ООП =)
Post #: 19
RE: PHP-основы. Книга врет ли? - 2010-02-20 20:10:06.843333   
FriLL

Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333

quote:

ORIGINAL: LolLolLolHahaha

Не, ну давай сразу тогда класс напишем =) Человек только осваиваеться, а ты ему ООП =)

Судя по постам ТС в Компилируемых языках он не клинической идиот
Post #: 20
RE: PHP-основы. Книга врет ли? - 2010-02-20 21:32:35.430000   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
Ну да, PHP будет примерно 3(4)м языком, принципы то уже примерно знакомы)). Просто теперь думаю,что книгу стоит дочитать до конца,а потом уже пробовать.

З.Ы. А в книге кстати установка под старые версии софта написана. Мне их и поставить или лучше новые? Просто апач MySQL так и не увидел, это последний надо настраивать по-особенному или я конфиги в инете не те нашел? (остальное работает стабильно, Apache 2.2+PHP 5.3)
Post #: 21
RE: PHP-основы. Книга врет ли? - 2010-02-20 22:23:39.966666   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: Genco
апач MySQL так и не увидел

Апач и не должен видеть mysql. С mysql общаются пхп-скрипты, посредством своих библиотек. А апач ничего и не должен знать про mysql.
Post #: 22
RE: PHP-основы. Книга врет ли? - 2010-02-21 02:47:20.206666   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
Значит,что-то не так с настройкой PHP,раз не хотят они общаться? Просто в целом он не сбоит, extension И extension_dir прописал вроде…хз…хоть денвер ставь((
Post #: 23
RE: PHP-основы. Книга врет ли? - 2010-02-21 13:28:08.586666   
LolLolLolHahaha

Сообщений: 155
Оценки: 0
Присоединился: 2008-03-22 18:21:23
на Windows ставлю xampp, а под Ubunt'ой сразу апач и MySQL, скрипты сразу видят базы.


quote:

Судя по постам ТС в Компилируемых языках он не клинической идиот


А, ну тогда верно.
Post #: 24
RE: PHP-основы. Книга врет ли? - 2010-02-22 14:38:11.203333   
Agent Smith

Сообщений: 976
Оценки: 0
Присоединился: 2007-04-10 21:56:49.593333
В зависимости от уровня ошибки, ошибки будут или не будут лезьть. Обычно на хостинге стоит: не выводит ошибки вообще, или выводить только критические. А у вас на девелоперской машине - выводить все ошибки. Критические ошибки - это те, которые не возвоют скрипту нормально выполнится до конца. Авторы этой книги упускают это. Такой способ написания скрипта - эту дурной тон. И правильно было замечено, что нужно проверять переменную через isset($_POST['tratata']) перд использованием.
Post #: 25
RE: PHP-основы. Книга врет ли? - 2010-02-22 18:00:13.310000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: Genco
З.Ы. А в книге кстати установка под старые версии софта написана. Мне их и поставить или лучше новые? Просто апач MySQL так и не увидел, это последний надо настраивать по-особенному или я конфиги в инете не те нашел? (остальное работает стабильно, Apache 2.2+PHP 5.3)

Нисколько не удивительно что старые версии, поскольку книга была выпущена не вчера. Да и вообще книга вряд ли ориентирована на администрирование apache, php и mysql.
Проблемы же с mysql я бы решал следующим путём. Для начала убедился бы что он вообще работает. В поставке mysql есть программка mysql – это консольный клиент к базе данных. Попробуй с его помощью присоединиться к базе. Если это не удастся, то надо выяснять причину: то ли mysql не запущен, то ли конфиг кривой. Если же mysql присоединиться, значит проблема в настройках php соединения. Тут я не сильно смогу помочь, поскольку не очень представляю как в php всё это настраивается.
Post #: 26
RE: PHP-основы. Книга врет ли? - 2010-02-23 01:32:08.336666   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
Ну,я так в MySQL Monitor попал,правильно? Черт,значит есть коннект и конфиги позабыл какие-то,проверю чтоли снова….((
А вообще XAMPP будет нормальным решением? Он и посложнее денвера,и вроде получше. Сойдет по первости или имеет смысл сейчас пытаться всё настраивать?
Post #: 27
RE: PHP-основы. Книга врет ли? - 2010-02-23 02:08:43.413333   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
Ну если ты уверен, что мускул запущен, то проверь во-первых, что php собран с поддержкой mysql, во-вторых что при подключении из пхп к mysql ты используешь корректные данные: хост/порт (или имя UNIX-сокета), имя пользователя, пароль, имя базы данных. Причём небось если mysql_connect (или как-там эта пхп функция называется?) обламывается, и коннект не устанавливает, то она каким-то образом сообщает о типе возникшей ошибки. Вот выясни с какой ошибкой она завершается.
Post #: 28
RE: PHP-основы. Книга врет ли? - 2010-02-23 09:15:13.580000   
Parano1d

Сообщений: 423
Оценки: 0
Присоединился: 2008-05-21 13:40:17.093333
mysql_connect(…) or die mysql_error();
Post #: 29
RE: PHP-основы. Книга врет ли? - 2010-02-24 01:01:59   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
Окей, тут развлечений мне хватит если что с сервом. Тогда такой вопрос - я поставил XAMPP, тыкаю "start" у апача и мускула. У последнего тыкаю в "admin". Скрипт phpmyadmin шлет меня со словами "You tried to access the address http://localhost/phpmyadmin/, which is currently unavailable". В hosts прописал себя локального на 127.0.0.1. Так что же за фигня то?

// В смысле рядом с кнопочкой start у апача Admin кнопочка не появляется. Вот это как вообще? Уже ведь проще некуда,что тут ещё может сбоить то?
Post #: 30
RE: PHP-основы. Книга врет ли? - 2010-02-24 10:59:53.080000   
codeismy.name

Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
XAMPP это конечно хороше/, но я бы посоветовал всётаки собрать в ручную сервер.. заодно при отладке узнаеш о различных библиотеках (extensios) и поймёш принцип работы самого сервера. это тебе в любом случае пригдится.. тем более в сборке апача + пхп + мускль нет ничего сложного
Post #: 31
RE: PHP-основы. Книга врет ли? - 2010-02-24 11:44:12.813333   
LolLolLolHahaha

Сообщений: 155
Оценки: 0
Присоединился: 2008-03-22 18:21:23
Genco, в ксампе есть известный баг - апач не стартует, если запущен скайп, так как они порты одинаковые используют. Выход - поменять порт в настройках скайпа, или же как я - запускать сервер на виртуалке, и прописать его ip в hosts.


P.S. Ну, для начала просто попробуй скайп вырубить.
Post #: 32
RE: PHP-основы. Книга врет ли? - 2010-02-25 02:56:13.613333   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
Уже гуглил на тему скайпа, порт проверил - скайп его не блочит (да и выключен был). Причем странно, службу запускать если - она тут же останавливается. Руками пробовал - винда пишет,что служба апача "была запущена и тут же остановлена", вроде как за ненадобностью и из-за простоя,что-то в таком ключе. Перезагружался,всё чистил,переустанавливал - без толку.
Но это ещё не самый цирк. Я сник и поставил Денвер (Denwer). Встал спокойно он,включается,скрипты бегают. При попытке элементарно подключиться к базе данных лезет та же ошибка,что и когда я руками всё собирал, т.е. примерно:
quote:

Warning: mysql_connect(): Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера. in C:\WWW\test.php on line 4 Fatal error: Maximum execution time of 60 seconds exceeded in C:\WWW\test.php on line 4

Как будто всё работает и только мускул опять ни в какую. Логично подозреваю что в системе что-то не так,а первый конфиг апача руками был при этом верен. Пока плюнул и на первом попавшемся хостинге учусь,но с настройкой продолжу прикладывать усилия. Кстати,мб я какую то тему не просек ключевую - там не надо ли через MySQL таблиц насоздавать или убедиться в наличии/отсутствии в системе SQL сервера/другого сервера БД?? А то уж даже не знаю что не так.
Post #: 33
RE: PHP-основы. Книга врет ли? - 2010-02-25 17:47:46.673333   
Панда

Сообщений: 232
Оценки: 0
Присоединился: 2008-03-05 07:38:35.890000
а ты к localhost коннектишся?
кинь код
Post #: 34
RE: PHP-основы. Книга врет ли? - 2010-02-25 21:27:56.206666   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
Да тут как бы и сложно как-то ещё…
&lt;h1&gt; Тест My-SQL расширение &lt;/h1&gt; &lt;?php echo "php works"; $link=mysql_connect("localhost","root","7"); echo "&lt;br&gt;"; if (isset($link)) {echo "Ну вот и подключился к базе";} ?&gt;
ну или пообстоятельнее,тоже пробовал:
&lt;?php print "Current PHP version: &lt;b&gt; ". phpversion() ."&lt;/b&gt;"; $link = mysql_connect("localhost", "root","7") or die("Could not connect"); if( !$link ) die( mysql_error() ); $db_list = mysql_list_dbs($link); while ($row = mysql_fetch_object($db_list)) { echo "&lt;h3&gt;Database \"".$row-&gt;Database."\"&lt;/h3&gt;\n"; $result = mysql_list_tables($row-&gt;Database); if(!$result) die( "DB Error, could not list tables\n MySQL Error: ".mysql_error() ); else { while ($row = mysql_fetch_row($result)) print "Table: $row[0]&lt;br&gt;"; mysql_free_result($result); } } ?&gt;
Тут скорее в системе дело,чем в этом…((
Post #: 35
Страниц:  [1]
Все форумы >> [Веб-программинг] >> PHP-основы. Книга врет ли?







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.