|
|
|
| Добрый день!
Есть форма
<!--вывод комментариев -->
<?php
$result = mysql_query("SELECT * FROM comment WHERE post='" . mysql_real_escape_string($id_pu) . "' ORDER BY id", $db);
if(mysql_num_rows($result) > 0)
{
$comment = mysql_fetch_array($result);
do
{
$text = $comment["text"];
$author = $comment["author"];
$date = $comment["date"];
printf("<p><strong>%s</strong><br>Добавлено: %s<br>%s</p>",$author,$date,$text);
}
while ($comment = mysql_fetch_array($result));
}
?>
<div id='cerror'></div>
<br><br>
<div align="center">
<form action="#" method="POST" enctype="multipart/form-data" name="addcom" id="addcom" onSubmit="return false">
Ваше имя:<br>
<input name="author" type="text" size="30" class="pole" id="author"><br><br>
Текст комментария:<br>
<textarea name="text" rows="5" cols="50" class="text"></textarea><br>
<br>
<input name="id" type="hidden" value="<?php echo $id_pu; ?>">
<input class="adscom" name="button" type="button" value='Добавить комментарий' onclick="doLoad(document.getElementById('addcom'))">
</form>
</div>
|
В которой в обработчик передается $id_pu, но к сожалению, не понятно, почему эта переменная $id_pu не передается в этот обработчик:
$address = "mu@mail.ru";
$subject = "Новый комментарий на блоге";
$post_title = $myrow3["title"];
$message = "Появился комментарий к заметке - ".$post_title."\nКомментарий добавил(а): ".$author."\nТекст комментария: ".$text."\nСсылка на заметку: post_pu.php?id_pu=".$id_pu."";
mail($address,$subject,$message,"Co ntent-type:text/plain; Charset=windows-1251\r\n");
|
Где ошибка? | |
|
|
|
|
|
|
|
для: lukanuga
(04.09.2011 в 23:18)
| |
<?
$address = "mu@mail.ru";
$subject = "Новый комментарий на блоге";
$post_title = $myrow3["title"];
$message = "Появился комментарий к заметке - ".$post_title."\nКомментарий добавил(а): ".$author."\nТекст комментария: ".$text."\nСсылка на заметку: post_pu.php?id_pu=".$_POST['id'];
mail($address,$subject,$message,"Co ntent-type:text/plain; Charset=windows-1251\r\n");
|
| |
|
|
|
|
|
|
|
для: sl1p
(05.09.2011 в 00:48)
| | К сожалению, все осталось без изменений.
id_pu надо передать. | |
|
|
|
|
|
|
|
для: lukanuga
(04.09.2011 в 23:18)
| | 1) Посмотрите исходный код HTML-формы, скрытое поле содержит что-нибудь в атрибуте value? Может где-то раньше происходит потеря переменной?
2) Обработчик еще что-то содержит помимо этих строк? | |
|
|
|
|
|
|
|
для: cheops
(05.09.2011 в 15:31)
| | <input name="id" type="hidden" value="<?php echo $id_pu; ?>">
в исходном коде: <input name="id" type="hidden" value="1"> что верно
привожу весь обработчик
<?
include_once("blocks/bd1.php");
// Запрет на кэширование
header("Expires: Mon, 23 May 1995 02:00:00 GTM");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GTM");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
//****
$log =="";
$error="no"; //флаг наличия ошибки
require_once 'JsHttpRequest.php';
$JsHttpRequest =& new JsHttpRequest("windows-1251");
//Короткие имена переменных и обрезка пробелов img_title
$text = trim($_POST['text']);
$author = trim($_POST['author']);
$id = trim($_POST['id']);
//Проверка email адреса
if($author == ''){
$log .= "Пожалуйста, введите Ваше имя<br>";
$error = "yes";
}
//Проверка наличия введенного текста комментария
if (empty($text)){
$log .= "Необходимо указать текст сообщения!<br>";
$error = "yes";
}
else{
//Должнен быть хоть один символ на русском языке
$spam=1;
for($i=0;$i<strlen($text);$i++){
if((ord($text[$i])>=192) && (ord($text[$i])<=255)){$spam=0;break;}
}
if ($spam == 1) {
$log .= "Ваше сообщение не содержит ни одной русской буквы.<br>";
$error = "yes";
}
}
//Проверка длины текста комментария
if(strlen($text)>1000){
$log .= "Слишком длинный текст, в вашем распоряжении 1000 символов!<br>";
$error = "yes";
}
//Проверка на наличие длинных слов
$mas = preg_split("/[\s]+/",$text);
foreach($mas as $index => $val){
if (strlen($val)>40) {
$log .= "Слишком длинные слова (более 40 символов) в тексте записи!<br>";
$error = "yes";
break;
}
}
//Экранирование и преобразование опасных символов
if (!get_magic_quotes_gpc()){
$text = addslashes($text);
$author = addslashes($author);
$cod = addslashes($cod);
}
$text = htmlspecialchars($text);
$author = htmlspecialchars($author);
$cod = htmlspecialchars($cod);
//Если нет ошибок добавляем в базу
if($error=="no"){
$date = date("d-m-Y в H:i");
$result2 = mysql_query("INSERT INTO comment (post,author,text,date) VALUES ('" . mysql_real_escape_string($id) . "','" . mysql_real_escape_string($author) . "','" . mysql_real_escape_string($text) . "','$date')");
//****
$address = "mu@mail.ru";
$subject = "Новый комментарий на блоге";
$post_title = $myrow3["title"];
$message = "Появился комментарий к заметке - ".$post_title."\nКомментарий добавил(а): ".$author."\nТекст комментария: ".$text."\nСсылка на заметку: post_pu.php?id_pu=".$_POST['id_pu'];
mail($address,$subject,$message,"Co ntent-type:text/plain; Charset=windows-1251\r\n");
$ok="<div><strong>".$author."</strong><br>Добавлено: ".$date."<br>".$text."</div>";
//Помещаем результат в массив
$GLOBALS['_RESULT'] = array(
'error' => 'no',
'ok' => $ok
);
}
else {//если ошибки есть
$log = "<div><strong><font color='red'> Ошибка! </font></strong><br>".$log."</div>";
//Отправляем результат в массив
$GLOBALS['_RESULT'] = array(
'error' => 'yes',
'er_mess' => $log);
}
?>
|
| |
|
|
|
|
|
|
|
для: lukanuga
(05.09.2011 в 19:12)
| | Что требуется еще для получения ответа на вопрос? | |
|
|
|