Bars
Новичок
При передаче данных из формы посредством AJAX не передаётся сессия => PHP не может её получить.
Если переменной $player присвоить значение 'Bars' (к примеру), то комментарий добавляется. А из-за того, что не читается сессия, MySQL экранирует ошибку (undefined).
Библиотека jQuery подключена (1.8.3).JavaScript написал(а):function addcomment()
{
var id = $('#newsid').val();
var text = $('#commtext').val();
var captcha = $('#commcode').val();
$('#loading').css('display','inline');
$.ajax({
type: "POST",
url: "/inc/ajax/addcomment.php",
data: "id="+id+"&captcha="+captcha+"&text="+text,
success: function(res) {
if(parseInt(res)!=0){
$("#commresult").html(res);
$('#loading').css('display','none');
}
}
});
}
PHP:
<?php
sleep(3);
include '../db.php';
$id = (int)$_POST['id'];
$ip = $_SERVER["REMOTE_ADDR"];
$onlydate = date("d-m-Y");
$player = $_SESSION['player'];
// Сделать CAPTCHA!!!
if (strlen($_POST['text']) > 600 || strlen($_POST['text']) < 5){?>
<div class="notify_box notify notify_error">
<p><span>Ошибка</span>Комментарий должен содержать от 5 до 600 символов</p>
</div>
<?php
exit;
} else {
$fin = array("&", "`", "\n", "\r");
$rep = array("&", "´", "<br />", "<br />");
$text = htmlspecialchars(stripslashes($_POST['text']));
$text = str_replace($fin, $rep, $text);
$smilies = array("smile", "wink", "sneaky", "O_o", "good", "bad", "facepalm", "unsure", "frown", "cry", "biggrin", "LOL", "cool", "eek", "confused", "tongue", "laugh", "rolleyes", "nya", "cautious", "mad", "creeper", "poop"); // Массив смайлов
foreach ($smilies as $smile){
$find[] = "*$smile*"; // Находим текстовые смайлы
$replace[] = "<img src=\"/tpl/img/smiles/$smile.gif\" align=\"absmiddle\" />"; // И заменяем на графические
}
$text = str_replace($find, $replace, $text);
$con;
mysql_select_db($ocName);
$repque = mysql_query("SELECT `text` FROM `only_comments` WHERE `author`='$player' ORDER BY `id` DESC LIMIT 1");
$repres = mysql_result($repque,0);
mysql_close($con);
echo $repres;
}
?>