Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: По гостевой книге?
 
 автор: Kront   (22.05.2005 в 16:31)   письмо автору
 
 

Написал гостевую книгу с использованием БД с книги "Самоучитель-PHP5", Всё проверил всё верно! Но при нажатии на "Добавить сообщение", появляется пустая странница addrec.php, хотя должна быть выводится форма добавки сообщения.

В коде не могу найти ошибку!

Помогите разобратся в чём проблема?

   
 
 автор: glsv (Дизайнер)   (22.05.2005 в 17:02)   письмо автору
 
   для: Kront   (22.05.2005 в 16:31)
 

Чтобы не перебивать код из книги можно скачать гостевую из downloads.
http://www.softtime.ru/info/gbmysql.php
Код отличается, но по аналогии можно разобраться.
У меня нет сейчас исходников той гостевой, поэтому приложите ваши файлы в форум - попробуем разобраться.

   
 
 автор: Kront   (22.05.2005 в 20:31)   письмо автору
 
   для: glsv (Дизайнер)   (22.05.2005 в 17:02)
 

Ну значит вот коды гостевой книги, без страницы администрирования:

config.php:

<?php
$dblocation
="localhost";
$dbname="guestbook";
$dbuser="root";
$dbpasswd="";
$dbcnx=@$mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!
$dbncx)
{
echo (
"<p>В настоящий момент сервер базы данных не доступен, поэтому
 корректное отображение невозможно</p>"
);
 exit();
}
if (!@
mysql_select_db($dbname,$dbcnx))
{
echo (
"<p>В настоящий момент сервер базы данных не доступен, поэтому
 корректное отображение невозможно</p>"
);
 exit();
}
function 
puterror ($message)
{
echo (
"<p>$message</p>");
exit();
}
?>


index.php:


<html>
<head>
<title>Гостевая книга</title>
<meta http-equiv="Content-type" content="text/html; charset=windows-1251">
</head>
<body>
<p><a class=link href="addrec.php" title="">
Написать сообщение</a></p>
<table widh="85%" border="0">
<tr>
<td>
<?php
include "config.php";
//стартовая точка
if (empty($start)) $start=0;
if (
$start 0$start=0;
$pnumber=10;
//Запрашиваем общее число выводимых сообщений
$tot=mysql_query("select count(*) from gues where hide=0;");
$query="select * from guest
where hide=0
order by puttime desc limit "
.$start.", ".$pnumber.";";
$thm mysql_query($query);
if (
$tot && $thm)
{
$total=mysql_feth_array($tot);
$count=$total['count(*)'];
if (
$start>0) print "<a class=link href=index.php?start=".($start $pnumber).">Предыдущие</a>";
if (
$count>$start $pnumber) print "<a class=link href=index.php?start=".($start $pnumber).">Следующие</a>";
while (
$themes mysql_feth_array($thm))
{
$name=trim($themes['name']);
$city=trim($themes['city']);
$email=trim($themes['email']);
$url=trim($themes['url']);
$msg=trim($themes['msg']);
$answer=trim($themes['answer']);
?>
<table border=1 widh="100%" cellpadding="0" cellspacing="0">
<tr>
<td>
<b><? echo $name;?></b>
&nbsp;<?if (!empty ($city)) print "$city";?>
</td>
<td widh="100%" valign="bottom" align="right">
от <b><?print $themes['puttime'];?></b>
</td>
</tr>
<tr valign="top">
<td colspan="2" height="25">
<?
if (!empty($email)) print "$email: <a class=link href=mailto:$email>$email</a>&nbsp;&nbsp;";
if (!empty (
$url)) print "www: <a class=link href='$url'>$url</a>";
?>
</td>
</tr>
<tr valign="top">
<td colspan="2">
<? echo $msg;
?>
<br>
<? if (!empty ($answer)&& $answer !="-")
{
print 
"<p class=panswer>Администратор:&nbsp;$answer</p>";
}
?>
</td>
</tr>
</table>
<?
}
}
else 
puterror("Ошибка при выборке сообщений...");
print 
"<a class=link href=addrec.php>Добавить&nbsp;сообщение</a>&nbsp;&nbsp;&nbsp;&nbsp;";
if (
$start !=0) print "<a class=link href=index.php?start=".($start $pnumber).">Предыдущие</a>";
if (
$count $start $pnumber) print "<a class=link href=index.php?start=".($start $pnumber).">Следующие</a>";
?>
</td>
</tr>
</table>
</body>
</html>


addrec.php:


<?php
include "config.php";
$error="";
$action=$HTTP_POST_VARS["action"];
if (
$action !="")
{
$lenmsg=strlen($msg);
$templen=0;
$temp=strtok($msg" ");
if (
strlen($msg) > 60)
{
while (
$templen $lenmsg)
{
if (
strlen($temp) > 60)
{
$action="";
$error=$error."<li> Текст сообщения содержит слишком много символов без пробелов";
break;
}
else
{
$templen=$templen $strlen($temp) + 1;
}
$temp=strtok(" ");
}
}
$name=trim($name);
$msg=trim($msg);
if (empty (
$msg))
{
$action="";
$error=$error."<li> Вы не ввели сообщение";
}
if (empty (
$name))
{
$action="";
$error=$error."<li> Вы не ввели имя";
}
if (!empty(
$email))
{
if (
preg_match("/[0-9a-z]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i"$email))
{
$action="";
$error=$error."<li> Не верно введён e-mail.&nbsp; Ввдите e-mail в виде <i>admin@promoney.com.ru</i>";
}
}
$name=substr($HTTP_POST_VARS["name"],0,32);
$name=htmlspecialchars(stripslashes($name));
$city=substr($HTTP_POST_VARS["city"],0,32);
$city=htmlspecialchars(stripslashes($city));
$email=substr($HTTP_POST_VARS["email"],0,32);
$name=htmlspecialchars(stripslashes($email));
$url=substr($HTTP_POST_VARS["url"],0,32);
$url=htmlspecialchars(stripslashes($url));
$msg=substr($msg,0,1024);
if (empty(
$error))
{
$msg=nl2br($msg);
$msg=str_replace("[u]","<u>",$msg);
$msg=str_replace("[U]","<u>",$msg);
$msg=str_replace("","<i>",$msg);
$msg=str_replace("","<B>",$msg);
$msg=str_replace("[B]","<B>",$msg);
$msg=str_replace("","<SUB>",$msg);
$msg=str_replace("","<SUP>",$msg);
$msg=str_replace("[SUp]","<SUP>",$msg);
$msg=str_replace("[/u]","</u>",$msg);
$msg=str_replace("[/U]","</u>",$msg);
$msg=str_replace("
"
,"</i>",$msg);
$msg=str_replace("[/I]","</i>",$msg);
$msg=str_replace("
","</B>",$msg);
$msg=str_replace("[/B]","</B>",$msg);
$msg=str_replace("","</SUB>",$msg);
$msg=str_replace("[/sub]","</SUB>",$msg);
$msg=str_replace("","</SUP>",$msg);
$msg=str_replace("[/sup]","</SUP>",$msg);
$msg=eregi_replace("(.*)\\[url\\](.*)\\[/url\\](.*)","\\1<a href=\\2>\\2</a>\\3",$msg);
$query="insert into guest values (0,'$name','$city','$email','$url','$msg','-',now(),0);";
if (
mysql_query($query))
{
print 
"<html><head>\n";
print 
"<meta http-equev='Refresh' content='0; url=index.php'>\n";
print 
"</head></html>\n";
exit();
}
else
{
echo 
"<a href='index.php'>Вернуться</a>";
echo (
"<p>Ошибка при добавлении сообщения</p>");
echo(
"<p>$query</p>");
exit();
}
}
}
if (empty(
$action))
{
?>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=windows-1251">
<title>Новое сообщение</title>
</head>
<body bottommarign="0" marignheight="0" marignwidht="0" rightmarign="0" leftmarign="0" topmarign="0">
<table>
<tr>
<td>
<form action="addrec.php" method="post">
<input type="hidden" name="action" value="post">
<table aligne="center" cellpading="0" cellspacing="0">
<tr>
<td colspan=2><b>Добавление сообщения</b></td>
</tr>
<tr>
<td width="50"><b>&nbsp;&nbsp;&nbsp;Имя&nbsp;</b></td>
<td><input type="text" name="name" maxlength=32 size=25 value='<?echo $name;?>'></td>
<td rowspan="3" width="120">* Обязательные для заполнения поля</td>
</tr>
<tr>
<td><b>&nbsp;&nbsp;&nbsp;Город</b></td>
<td><input type="text" name="city" maxlength=32 size=25 value='<?echo $city;?>'></td>
</tr>
<tr>
<td><b>&nbsp;&nbsp;&nbsp;E-mail</b></td>
<td><input type="text" name="email" maxlength=32 size=25 value='<?echo $email;?>'></td>
</tr>
<tr>
<td><b>&nbsp;&nbsp;&nbsp;URL</b></td>
<td colspan="2"><input type="text" name="url" maxlength=36 size=40 value='<?echo $url;?>'></td>
</tr>
<tr>
<td colspan"3">
<b>Сообщение *</b><br>
<textarea name="msg" cols=42 rows=5><?echo $msg;?></textarea>
</td>
</tr>
<tr>
<td colspan"3">
<input type="submit"  value="Добавить">&nbsp;&nbsp;&nbsp;
</td>
</tr>
</table>
<td>
<table border"0" cellspacing="1" cellpading="4">
<tr align="left">
<td>
<u><i><b>Поддерживаемые теги:</u></i></b>
</td>
</tr>
<tr><td><b>Жирный</b></td></tr>
<tr><td><i>Наклонный</i></td></tr>
<tr><td>[u]<u>Подчёркнутый</u>[/u]</td></tr>
<tr><td><sup>Верхний индекс</sup></td></tr>
<tr><td><sub>Нижний индекс</sub></td></tr>
</table>
</td>
</form>
</td>
</tr>
</table>
</body>
</html>
<?
if (!empty($error))
{
print 
"<P>Во время добавления записи произошли следующие ошибки:</P>";
print 
"<UL>\n";
print 
$error;
print 
"</UL>\n";
}
?>
<?
}?>


В некоторых местах я кое- что убирал, так как это мне не нужно, но совсем мало убирал.

   
 
 автор: glsv (Дизайнер)   (22.05.2005 в 23:52)   письмо автору
 
   для: Kront   (22.05.2005 в 20:31)
 

Хитрая ошибка :) В config.php
Вместо

<?
$dbcnx
=@$mysql_connect($dblocation,$dbuser,$dbpasswd);
?>

Нужно писать

<?
$dbcnx
=@mysql_connect($dblocation,$dbuser,$dbpasswd);
?>

Символ @ запрешает вывод ошибок от функции mysql_connect(). Поэтому, хотя ошибка была вы ее не видели.

   
 
 автор: JIEXA   (23.05.2005 в 00:42)   письмо автору
 
   для: glsv (Дизайнер)   (22.05.2005 в 23:52)
 

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

   
 
 автор: cheops   (23.05.2005 в 02:02)   письмо автору
 
   для: JIEXA   (23.05.2005 в 00:42)
 

Функция mysql_connect начинается со знака $, а не должна, так как это не переменная.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования