PHP-основы. Книга врет ли?
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
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(…. ….. <input type="hidden" name="sent" value="1"> //типо скрытое поле { html оформление и сам текст скрипта - всё в одном документе,в начале идут какие то проверки элементов $_POST[] (ну,обработка,в общем). И сам так забивал,когда своё тестил. Так вот,при первом открытии лезут ошибки, типо нет таких элементов (логично,нет запроса - нет переменных). В книжке авторы клали зуб,что всё должно бегать. Они неправы или язык обновился? Нубство,но подскажите уж,пожалуйста.
|
|
|
RE: PHP-основы. Книга врет ли? - 2010-02-19 23:49:10.680000
|
|
|
FriLL
Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
|
Можно полный скрипт, от начала и до конца
|
|
|
RE: PHP-основы. Книга врет ли? - 2010-02-19 23:52:36.120000
|
|
|
Sрam
Сообщений: 2863
Оценки: 372
Присоединился: 2009-01-16 15:23:43.276666
|
Какие конкретно ошибки лезут?
|
|
|
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)
|
|
|
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) Это и есть проверка на выполнение нужного фрагмента
|
|
|
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 не существует а его уже принимают
|
|
|
RE: PHP-основы. Книга врет ли? - 2010-02-19 23:59:27.716666
|
|
|
Sрam
Сообщений: 2863
Оценки: 372
Присоединился: 2009-01-16 15:23:43.276666
|
Пускай он сначала код выложит,а потом уже можно будет что-то сказать!
|
|
|
RE: PHP-основы. Книга врет ли? - 2010-02-20 00:02:55.886666
|
|
|
LolLolLolHahaha
Сообщений: 155
Оценки: 0
Присоединился: 2008-03-22 18:21:23
|
Аха, и тексты ошибок..
|
|
|
RE: PHP-основы. Книга врет ли? - 2010-02-20 00:21:39.680000
|
|
|
Genco
Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
|
Оу,сори,не хотел загромождать сообщение. Пожалуйста,этот из книги: quote:
<?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 <br>";}
If( !($_POST['betreff']=='@') ){$fehler.="Bitte geben Sie den Betreff an <br>";}
If( !($_POST['message']=='@') ){$fehler.="Bitte geben Sie eine Nachricht ein<br>";}
if($fehler){$fehler="<h4><font color=red>".$fehler."</font></h4>";}
}
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,'<br>',$_POST['message']);
$_POST['message']=str_replace($t2,'<br>',$_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']="";
}
?>
<html><head>
<title>Gдstebuch</title>
</head><bоdу>
<h3>Unser Gдstebuch</h3>
<?php echo $fehler; ?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" name="sent" value="1">
<p>Ihr Name:<br>
<input type="text" name="name" size="30" value="<?php echo $_POST['name']; ?>">
<br>
Betreff:<br>
<input type="text" name="betreff" size="30" value="<?php echo $_POST['betreff']; ?>">
<br>
Ihre Nachricht:<br>
<textarea name="message" rows="10" cols="30" wrap="virtual">
<?php echo $_POST['message']; ?>
</textarea>
</p>
<input type="submit" value="abschicken">
</form>
</bоdу></html> Ошибки типа "Notice: Undefined index:" и "Notice: Undefined variable:" В строчках 2,23,44,48,51,55. В разных идея хорошая,просто я пока не дочитал как возвращаться к формочке после выполнения [sm=ah.gif] ,да и вообще пример себе писал как в книжке(он потупее,я привел этот,каноничный,чтобы копаться только в их проблемах,самых неприятных). З.Ы. Немецкий язык из-за копипаста)).
|
|
|
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'] Что за книга?
|
|
|
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 <br>";} If( !($_POST['betreff']=='@') ){$fehler.="Bitte geben Sie den Betreff an <br>";} If( !($_POST['message']=='@') ){$fehler.="Bitte geben Sie eine Nachricht ein<br>";} о_О Индусский код???
|
|
|
RE: PHP-основы. Книга врет ли? - 2010-02-20 00:27:30.163333
|
|
|
FriLL
Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
|
quote:
В данном случае это не крейтично, так что можешь смело отключить показ ошибок. Давайте тогда вообще показ всех ошибок отключим, все будет красиво, но ничего работать не будет
|
|
|
RE: PHP-основы. Книга врет ли? - 2010-02-20 00:29:11.413333
|
|
|
LolLolLolHahaha
Сообщений: 155
Оценки: 0
Присоединился: 2008-03-22 18:21:23
|
В данном случае работать будет. А когда что-то неработает - закомментируй строку отключения ошибок и посмотри че там повылазило (кроме undefined variable). Да и я не только про отключение ошибок писал, но и про isset..
|
|
|
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-ами?
|
|
|
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 { .. делать еще что-то } — Эт чето типо гостивухи или где? Напиши плиз назначение скрипта, а то несильно люблю копаться в чужом коде :)
|
|
|
RE: PHP-основы. Книга врет ли? - 2010-02-20 01:10:51.466666
|
|
|
Genco
Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
|
Аха. тогда <input type="text" name="betreff" size="30" value="<?php if (isset($_POST['betreff'])) {echo $_POST['betreff'];} ?>"> И т.п.? Воо,круто,так то оно получше,Пасиба.
|
|
|
RE: PHP-основы. Книга врет ли? - 2010-02-20 01:14:06.006666
|
|
|
LolLolLolHahaha
Сообщений: 155
Оценки: 0
Присоединился: 2008-03-22 18:21:23
|
;) рад, что смог помочь =)
|
|
|
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:
<input type="text" name="betreff" size="30" value="<?php if (isset($_POST['betreff'])) {echo $_POST['betreff'];} ?>"> вообще по мне вот то что выделено засунуть в функцию, а потом просто вызывать
|
|
|
RE: PHP-основы. Книга врет ли? - 2010-02-20 18:49:41.993333
|
|
|
LolLolLolHahaha
Сообщений: 155
Оценки: 0
Присоединился: 2008-03-22 18:21:23
|
Не, ну давай сразу тогда класс напишем =) Человек только осваиваеться, а ты ему ООП =)
|
|
|
RE: PHP-основы. Книга врет ли? - 2010-02-20 20:10:06.843333
|
|
|
FriLL
Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
|
quote:
ORIGINAL: LolLolLolHahaha Не, ну давай сразу тогда класс напишем =) Человек только осваиваеться, а ты ему ООП =) Судя по постам ТС в Компилируемых языках он не клинической идиот
|
|
|
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)
|
|
|
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.
|
|
|
RE: PHP-основы. Книга врет ли? - 2010-02-21 02:47:20.206666
|
|
|
Genco
Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
|
Значит,что-то не так с настройкой PHP,раз не хотят они общаться? Просто в целом он не сбоит, extension И extension_dir прописал вроде…хз…хоть денвер ставь((
|
|
|
RE: PHP-основы. Книга врет ли? - 2010-02-21 13:28:08.586666
|
|
|
LolLolLolHahaha
Сообщений: 155
Оценки: 0
Присоединился: 2008-03-22 18:21:23
|
на Windows ставлю xampp, а под Ubunt'ой сразу апач и MySQL, скрипты сразу видят базы. — quote:
Судя по постам ТС в Компилируемых языках он не клинической идиот А, ну тогда верно.
|
|
|
RE: PHP-основы. Книга врет ли? - 2010-02-22 14:38:11.203333
|
|
|
Agent Smith
Сообщений: 976
Оценки: 0
Присоединился: 2007-04-10 21:56:49.593333
|
В зависимости от уровня ошибки, ошибки будут или не будут лезьть. Обычно на хостинге стоит: не выводит ошибки вообще, или выводить только критические. А у вас на девелоперской машине - выводить все ошибки. Критические ошибки - это те, которые не возвоют скрипту нормально выполнится до конца. Авторы этой книги упускают это. Такой способ написания скрипта - эту дурной тон. И правильно было замечено, что нужно проверять переменную через isset($_POST['tratata']) перд использованием.
|
|
|
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 всё это настраивается.
|
|
|
RE: PHP-основы. Книга врет ли? - 2010-02-23 01:32:08.336666
|
|
|
Genco
Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
|
Ну,я так в MySQL Monitor попал,правильно? Черт,значит есть коннект и конфиги позабыл какие-то,проверю чтоли снова….(( А вообще XAMPP будет нормальным решением? Он и посложнее денвера,и вроде получше. Сойдет по первости или имеет смысл сейчас пытаться всё настраивать?
|
|
|
RE: PHP-основы. Книга врет ли? - 2010-02-23 02:08:43.413333
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
Ну если ты уверен, что мускул запущен, то проверь во-первых, что php собран с поддержкой mysql, во-вторых что при подключении из пхп к mysql ты используешь корректные данные: хост/порт (или имя UNIX-сокета), имя пользователя, пароль, имя базы данных. Причём небось если mysql_connect (или как-там эта пхп функция называется?) обламывается, и коннект не устанавливает, то она каким-то образом сообщает о типе возникшей ошибки. Вот выясни с какой ошибкой она завершается.
|
|
|
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();
|
|
|
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 кнопочка не появляется. Вот это как вообще? Уже ведь проще некуда,что тут ещё может сбоить то?
|
|
|
RE: PHP-основы. Книга врет ли? - 2010-02-24 10:59:53.080000
|
|
|
codeismy.name
Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
|
XAMPP это конечно хороше/, но я бы посоветовал всётаки собрать в ручную сервер.. заодно при отладке узнаеш о различных библиотеках (extensios) и поймёш принцип работы самого сервера. это тебе в любом случае пригдится.. тем более в сборке апача + пхп + мускль нет ничего сложного
|
|
|
RE: PHP-основы. Книга врет ли? - 2010-02-24 11:44:12.813333
|
|
|
LolLolLolHahaha
Сообщений: 155
Оценки: 0
Присоединился: 2008-03-22 18:21:23
|
Genco, в ксампе есть известный баг - апач не стартует, если запущен скайп, так как они порты одинаковые используют. Выход - поменять порт в настройках скайпа, или же как я - запускать сервер на виртуалке, и прописать его ip в hosts. — P.S. Ну, для начала просто попробуй скайп вырубить.
|
|
|
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 сервера/другого сервера БД?? А то уж даже не знаю что не так.
|
|
|
RE: PHP-основы. Книга врет ли? - 2010-02-25 17:47:46.673333
|
|
|
Панда
Сообщений: 232
Оценки: 0
Присоединился: 2008-03-05 07:38:35.890000
|
а ты к localhost коннектишся? кинь код
|
|
|
RE: PHP-основы. Книга врет ли? - 2010-02-25 21:27:56.206666
|
|
|
Genco
Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
|
Да тут как бы и сложно как-то ещё…
<h1> Тест My-SQL расширение </h1>
<?php
echo "php works";
$link=mysql_connect("localhost","root","7");
echo "<br>";
if (isset($link)) {echo "Ну вот и подключился к базе";}
?>
ну или пообстоятельнее,тоже пробовал:
<?php
print "Current PHP version: <b> ". phpversion() ."</b>";
$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 "<h3>Database \"".$row->Database."\"</h3>\n";
$result = mysql_list_tables($row->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]<br>";
mysql_free_result($result);
}
}
?>
Тут скорее в системе дело,чем в этом…((
|
|
|
|
|