исходные данные:
apache 2.2/php 5.3.5 виндовые
register globals = on
два скрипта "типагостевухи": config/guest.php (из одного кмб пособия.он неполный,но дальнейшие функции из туториала не прикручиваю,т.к. с логикой данного этапа бы разобраться,а не пухнуть в дебрях ещё большего)
скрипты набиты вручную по образцу,лютые syntax-ошибки вычищены вроде бы.
теперь два вопроса:
1) форма выводится,но после нажатия send появляется пустая страница. исходный код показывает,что бразуеру передаётся заголовок страницы и доходит до тега <body>. наверное,что-то не догоняю сам. подскажите.
2) фигурные скобки и операторы <? ?>. как-то напрягают выделенные в коде моменты, т.е мне по привычке паскальной кажется,что всё должно быть симметрично,типа <? {blablabla}?> а не <? } {?>. почему так?
спасибо!
----config.php---------------
<?
error_reporting( E_ALL & E_STRICT );
$base = "base.txt";
$MessOnScreen = 10;
?>
------------------------------------
---guest.php-----------------
<html>
<head>
<Title>Гостевуха ёпта!</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<meta http-equiv="Pragma" content="no-cache">
</head>
<body>
<?
require("config.php");
error_reporting( E_ALL & E_STRICT );
function show_form()
[b]{
?>[/b]
<form method="post" action="">
имя<br>
<input type="text" name="name" maxlength="22">
<br>
E-mail<br>
<input type="text" name="email" maxlength="21">
<br>
сообщение<br>
<textarea cols="70" rows="20" name="mess"></textarea><br>
<input type="submit" value="send">
<input type="reset" value="clear">
</form>
[b]<?
}[/b]
function save_mess()
{
global $name,$email,$mess,$base;
$date=date("d.m.y.-h:i:s");
$text=$name."^^".$date."^^".$mess."\n";
$fp=fopen($base,"a");
fputs($fp,$text);
fclose($fp);
}
function show_mess()
{
global $base,$MessOnScreen;
$file=file($base);
$file=array_reverse($file);
echo "<table>";
if(sizeof($file) < $MessOnScreen) $MessOnScreen = sizeof($file);
for ($i = 0; $i < $MessOnScreen; $i++)
{
$mess = explode("^^",$file[$i]);
?>
<tr>
<td>
<p>написал:
<?
echo "<a href='mailto:".$mess[1]."'>".$mess[0]."</a>";
echo "<br>";
echo $mess[2];?>
</td>
<td>
<p><?=$mess[3];?></td>
</tr>
[b]<?
}[/b]
echo "</table></td>";
}
if ($mess) {
check_mess();
save_mess();
}
show_mess();
show_form();
?>
</BODY>
</HTML>
_____________________________
Спустя 7 минут, 53 секунды (2.02.2012 - 20:30) alexbel2404 написал(а):
1. PHP в <? ?> вообще работает? Возможно выключены short tags в php.ini
2. Не знаю как и объяснить. В данном случае, html врезан в тело функции, отсюда и { ?> html <? }
2. Не знаю как и объяснить. В данном случае, html врезан в тело функции, отсюда и { ?> html <? }
Спустя 2 минуты, 42 секунды (2.02.2012 - 20:33) TrollFace написал(а):
шорт-теги включены,предусмотрел такой вариант. вообще,если честно, php своим синтаксисом после,пусть и детских,но баловствований на паскале/асме кажется каким-то слишком пёстрым и сложным для восприятия. е*аные скобки )
а выдаёт пустую страницу с таким кодом:
а выдаёт пустую страницу с таким кодом:
<html>
<head>
<Title>Гостевуха ёпта!</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<meta http-equiv="Pragma" content="no-cache">
</head>
<body>
Спустя 2 минуты, 7 секунд (2.02.2012 - 20:35) alexbel2404 написал(а):
error_reporting(E_ALL); в начало скрипта и смотри ошибки.
Спустя 4 минуты, 5 секунд (2.02.2012 - 20:39) TrollFace написал(а):
Цитата (alexbel2404 @ 2.02.2012 - 17:35) |
error_reporting(E_ALL); в начало скрипта и смотри ошибки. |
ага,добавил. выдало: Fatal error: Call to undefined function check_mess() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\guest.php on line 66
затупил,вырезал строчку с вызовом этой func. вроде что-то работает,но теперь вместе с текстом из формы прям на странице самой формы выводит сообщение интерпретатора:
Undefined offset: 3 in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\guest.php on line 59
ща смотреть буду
Спустя 3 минуты, 12 секунд (2.02.2012 - 20:42) TrollFace написал(а):
в общем,отчасти работает, но хз чего на неопределённое смещение ругается.
случаем,не подскажете хороший редактор или ide,где удобная подсветка синтаксиса и такие вот "врезанные" блоки кода по отдельным скобкам можно сразу видеть?
случаем,не подскажете хороший редактор или ide,где удобная подсветка синтаксиса и такие вот "врезанные" блоки кода по отдельным скобкам можно сразу видеть?
Спустя 2 минуты, 43 секунды (2.02.2012 - 20:45) alexbel2404 написал(а):
я использую NetBeans для проектов, для быстрой правки файла Notepad++
Спустя 5 минут, 25 секунд (2.02.2012 - 20:50) TrollFace написал(а):
так и не понял,что ему это смещение не нравится)
и ещё вопросик: часто ли подобные врезанные html-конструкции встречаются в чужих проектах ? (как мне кажется,часто) реально ли сделать код более читабельным,либо это неизбежная особенность "самовложенных" кодесов?
и ещё вопросик: часто ли подобные врезанные html-конструкции встречаются в чужих проектах ? (как мне кажется,часто) реально ли сделать код более читабельным,либо это неизбежная особенность "самовложенных" кодесов?
Спустя 1 минута, 15 секунд (2.02.2012 - 20:52) TrollFace написал(а):
anyway, спасибо за советы!:)