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

Форум PHP

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

 

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

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

тема: добавление коментариев
 
 автор: lukanuga   (11.09.2011 в 04:03)   письмо автору
 
 

Добрый день!
Использую скрипт http://www.ajaxs.ru/lessonview.php?cat=ajax&id=110 добавление коментариев на сайт.
С помощью участников форума удалось подогнать под собственный сайт.
Все работает.
На сайте есть разделы, в которых есть разные id (id_pu, id_ccu и т.д.)
В данный момент оставлять комментарии возможно только для id_pu. Как сделать комментарии для статей где id_ccu совершенно не понятно. И вот почему... Для это мне нужно привести код


<!--вывод комментариев -->
<?php
$result 
mysql_query("SELECT * FROM comment_pu 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("<div class='content3'><strong>%s</strong><br>Добавлено: %s<br>%s<br><br>
       <div class='line'><img src='img/spacer.gif' width='1' height='1'></div></div>
       "
,$author,$date,$text);
}
while (
$comment mysql_fetch_array($result));
}
?>    

<h1>Оставить свой комментарий:</h1>
<div id='cerror'></div>
<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 [b]$id_pu[/b]; ?>">
<input class="adscom" name="button" type="button" value='Добавить комментарий' onclick="doLoad(document.getElementById('addcom'))">
</form>
</div>

Жирным выделено, что передается $id_pu. А нужно передать id_ccu. Надо просто заменить. Это понятно. В обработчике comment.php

<?
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_pu (post,author,text,date) VALUES ('" mysql_real_escape_string($id) . "','" mysql_real_escape_string($author) . "','" mysql_real_escape_string($text) . "','$date')");
    
//****
    
$id_pu $_REQUEST['id'];    
$address "my@mail.ru"
$subject "Новый комментарий на блоге"
$post_title $myrow3["title"]; 


$message "Появился комментарий к заметке - ".$post_title."<br>Комментарий добавил(а): ".$author."<br>Текст комментария:   
 "
.$text."<br>Ссылка на заметку:<a href='www.mail.ru/pu.php?id_pu=".$_REQUEST['id']."'>this is link</a>"

  
$headers 'Content-Type: text/html;charset=windows-1251';  
  
mail($address,$subject,$message,$headers); 
 
    
    
$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);
}  
?>

тоже можно прописать нужные параметры. И переименовать comment.php в comment_pu.php
А дальше возникает ситуация, которую я не могу решить. Не понятно вот это.

// JavaScript Document
function doLoad(value){
    err=document.getElementById('cerror');
    err.innerHTML = "<img src='images/upload.gif' width='32' height='8'><br><p>Ваш комментарий обрабатывается...</p>";
    // Create new JsHttpRequest object.
    var req = new JsHttpRequest();
    // Code automatically called on load finishing.
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
          if (req.responseJS.error == 'no') {
            // Clear error information.
            err.innerHTML = "";
            // Write req.responseJS to page element (_req.responseJS become responseJS). 
            err.innerHTML = req.responseJS.ok;
            
            
            form = document.getElementById('addcom');
            form.text.value = "";
            form.author.value = "";    
            
          }
          else
          {
          err.innerHTML = req.responseJS.er_mess;
          }      
        }
    }
    // Prepare request object (automatically choose GET or POST).
    req.open(null, 'comment.php', true);
    // Send data to backend.
    req.send( { q: value } );
}

Жирным выделил что нельзя менять. comment.php
Вопрос, как в этот файл прописать другой comment_pu.php к примеру?

  Ответить  
 
 автор: Slo_Nik   (11.09.2011 в 09:05)   письмо автору
 
   для: lukanuga   (11.09.2011 в 04:03)
 

>Вопрос, как в этот файл прописать другой comment_pu.php к примеру?
взять и прописать другое имя файла, ни чего сложного.
найдите, где у Вас в коде есть имя файла comment.php и замените на своё, потом проверяйте, что получится )))

  Ответить  
 
 автор: lukanuga   (11.09.2011 в 17:02)   письмо автору
 
   для: Slo_Nik   (11.09.2011 в 09:05)
 

так в том то и дело что comment.php встречается только в comment.js
4 строчка снизу, выделено.
Как прописать здесь comment_pu.php. Как добавить?
Ибо если заменить, что придется переименовать comment.js также?


// JavaScript Document
function doLoad(value){
    err=document.getElementById('cerror');
    err.innerHTML = "<img src='images/upload.gif' width='32' height='8'><br><p>Ваш комментарий обрабатывается...</p>";
    // Create new JsHttpRequest object.
    var req = new JsHttpRequest();
    // Code automatically called on load finishing.
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
          if (req.responseJS.error == 'no') {
            // Clear error information.
            err.innerHTML = "";
            // Write req.responseJS to page element (_req.responseJS become responseJS). 
            err.innerHTML = req.responseJS.ok;
            
            
            form = document.getElementById('addcom');
            form.text.value = "";
            form.author.value = "";    
            
          }
          else
          {
          err.innerHTML = req.responseJS.er_mess;
          }      
        }
    }
    // Prepare request object (automatically choose GET or POST).
    req.open(null, 'comment.php', true);
    // Send data to backend.
    req.send( { q: value } );
}

  Ответить  
 
 автор: Slo_Nik   (11.09.2011 в 18:18)   письмо автору
 
   для: lukanuga   (11.09.2011 в 17:02)
 

а при чём тут файл js к php ?

  Ответить  
 
 автор: gOFREe   (11.09.2011 в 22:43)   письмо автору
 
   для: lukanuga   (11.09.2011 в 17:02)
 

А зачем переименовывать comment.php в comment_pu.php?
Даже если возникла острая необходимость, то в файле .js можно прописать
req.open(null, 'comment_pu.php', true);

И его не понадобится переименовывать.
Честно, не очень понял надобность всех этих действий с переименовкой.

  Ответить  
 
 автор: lukanuga   (12.09.2011 в 04:02)   письмо автору
 
   для: gOFREe   (11.09.2011 в 22:43)
 

так мне нужно и сохранить

req.open(null, 'comment.php', true);

  Ответить  
 
 автор: lukanuga   (12.09.2011 в 15:51)   письмо автору
 
   для: lukanuga   (12.09.2011 в 04:02)
 

могу ли я прописать вот так

req.open(null, 'comment.php', 'comment_pu.php', true);

  Ответить  
 
 автор: Slo_Nik   (12.09.2011 в 17:02)   письмо автору
 
   для: lukanuga   (12.09.2011 в 15:51)
 

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

  Ответить  
 
 автор: lukanuga   (12.09.2011 в 23:40)   письмо автору
 
   для: Slo_Nik   (12.09.2011 в 17:02)
 

попробую еще объяснить. тот скрипт добавления комментариев расчитан на параметр id. И я это реализовал.
Вопрос стоит в том, как реализовать то же самое на том же сайте только еще и для другого раздела статей, в которых присутствует не id, а id_pu.

  Ответить  
Rambler's Top100
вверх

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