Вобщем вот скрипт ajax чата с автообновлением, при вводе данных в форму добавляется в базу все кроме {userto}. Добавляются норм {user} {message} Подскажите почему не работает!
shoutbox.php<?php
define("HOST", "localhost");
define("USER", "root");
define("PASSWORD", "123");
define("DB", "test");
function connect($db, $user, $password){
$link = @mysql_connect($db, $user, $password);
if (!$link)
die("Could not connect: ".mysql_error());
else{
$db = mysql_select_db(DB);
if(!$db)
die("Could not select database: ".mysql_error());
else return $link;
}
}
function getContent($link, $num){
$res = @mysql_query("SELECT date, user, userto, message FROM shoutbox ORDER BY date DESC LIMIT ".$num, $link);
if(!$res)
die("Error: ".mysql_error());
else
return $res;
}
function insertMessage($user, $userto, $message){
$query = sprintf("INSERT INTO shoutbox(user, userto, message) VALUES('%s', '%s', '%s');", mysql_real_escape_string(strip_tags($user)), mysql_real_escape_string(strip_tags($userto)), mysql_real_escape_string(strip_tags($message)));
$res = @mysql_query($query);
if(!$res)
die("Error: ".mysql_error());
else
return $res;
}
if(!$_POST['action']){
header ("Location: index.html");
}
else{
$link = connect(HOST, USER, PASSWORD);
switch($_POST['action']){
case "update":
$res = getContent($link, 10);
while($row = mysql_fetch_array($res)){
$result .= "<p><strong>".$row['user']."</strong><img src=\"./css/images/bullet.gif\" alt=\"-\" /><strong>".$row['userto']."</strong><img src=\"./css/images/bullet.gif\" alt=\"-\" />".$row['message']." <span class=\"date\">".$row['date']."</span></p>";
}
echo $result;
break;
case "insert":
echo insertMessage($_POST['nick'], $_POST['userto'], $_POST['message']);
break;
}
mysql_close($link);
}
?>
index.html<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title> Shoutbox Мини-чат на сайт</title>
<link rel="stylesheet" href="css/general.css" type="text/css" media="screen" />
</head>
<body>
<div id="container">
<div class="content">
<h1>Последние сообщения</h1>
<div id="loading"><img src="css/images/loading.gif" alt="Загрузка..." /></div>
<p>
</div>
</div>
<form method="post" id="form">
<table>
<tr>
<td><label>Ваше имя</label></td>
<td><input class="text user" id="nick" type="text" MAXLENGTH="25" /></td>
</tr>
<tr>
<td><label>Кому</label></td>
<td><input class="text" id="userto" name="userto" type="text" MAXLENGTH="25" /></td>
</tr>
<tr>
<td><label>Сообщение</label></td>
<td><input class="text" id="message" type="text" MAXLENGTH="255" /></td>
</tr>
<tr>
<td></td>
<td><input id="send" type="submit" value="Отправить" /></td>
</tr>
</table>
</form>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="shoutbox.js"></script>
</body>
</html>
shoutbox.js
$(document).ready(function(){
var inputUser = $("#nick");
var inputUserto = $("#userto");
var inputMessage = $("#message");
var loading = $("#loading");
var messageList = $(".content > p");
function updateShoutbox(){
messageList.hide();
loading.fadeIn();
$.ajax({
type: "POST", url: "shoutbox.php", data: "action=update",
complete: function(data){
loading.fadeOut();
messageList.html(data.responseText);
messageList.fadeIn("fast");
}
});
}
function checkForm(){
if(inputMessage.attr("value"))
return true;
else
return false;
}
updateShoutbox();
$("#form").submit(function(){
if(checkForm()){
var nick = inputUser.attr("value");
var userto = inputUserto.attr("value");
var message = inputMessage.attr("value");
$("#send").attr({ disabled:true, value:"Отправляю..." });
$("#send").blur();
$.ajax({
type: "POST", url: "shoutbox.php", data: "action=insert&nick=" + nick + "&userto=" + userto + "&message=" + message,
complete: function(data){
messageList.html(data.responseText);
updateShoutbox();
$("#send").attr({ disabled:false, value:"Отправить" });
}
});
}
else alert("Пожалуйста, представьтесь и напишите сообщение");
return false;
});
});
Спустя 6 минут, 48 секунд (29.03.2012 - 14:23) Invis1ble написал(а):
для начала проверь, приходят ли все данные в обработчик
Спустя 6 минут, 14 секунд (29.03.2012 - 14:29) mirck2791 написал(а):
Не приходят, я вот незнаю где косяк
Спустя 1 минута, 59 секунд (29.03.2012 - 14:31) Invis1ble написал(а):
Дебаж javascript. Перед вызовом ajax() userto какое значение имеет?
Спустя 1 минута, 22 секунды (29.03.2012 - 14:33) mirck2791 написал(а):
userto это с формы отправляется ник кому пишем
Спустя 1 минута, 31 секунда (29.03.2012 - 14:34) Invis1ble написал(а):
Я код читать умею, ты проверь, какое значение оно имеет перед отправкой
Спустя 4 минуты, 57 секунд (29.03.2012 - 14:39) mirck2791 написал(а):
Вобщем когда пишу цифрами то выводится, а буквами не отправляется
Спустя 4 минуты, 59 секунд (29.03.2012 - 14:44) Invis1ble написал(а):
Об этом нужно было сразу писать. Скорее всего поле в таблице БД имеет тип int, т.е. предназначено для хранения id адресата, а не его имени.
Спустя 11 минут, 24 секунды (29.03.2012 - 14:56) mirck2791 написал(а):
Все спасибо проблема решена)
Спустя 1 минута, 31 секунда (29.03.2012 - 14:57) Invis1ble написал(а):
Ну раз решена - вобще-то по негласным правилам хорошего тона принято описывать, в чем была проблема. Для будующих поколений.
Спустя 1 час, 40 минут, 21 секунда (29.03.2012 - 16:38) Guest написал(а):
В базе стояла байда, что можно было только цифры записывать