[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с чатом.
CitRus
это снова я. сделал простенький чат,но почему-то сообщения не выводяться.помгите если сможете.

вот структура самого чата:

<?php

session_start();

include 'conf.php';

?>
<!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">
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>
Чат</title>
</head>

<body>
<form
method="post">
<input
type="text" name = "msg" />
<input
type="submit" value = "Написать" name = "write" />
</form>

<?php


$name = $_SESSION['name'];

if (isset($_POST['write']))

{

if (isset($_POST['msg']))

{

$msg = htmlspecialchars($_POST['chat']);

$time = date('H:i');

$query = "INSERT INTO user (msg, time_msg, wrt_user) VALUES ('".$msg."','".$time."','".$name."')";

$sql = mysql_query($query);

$msg_get = mysql_query("SELECT * FROM `chat` WHERE `msg` = '{$msg}' LIMIT 1") or die(mysql_error());

if (mysql_num_rows($msg_get) == 1 )

{

$row = mysql_fetch_assoc($msg_get);

$time_msg = $row['time_msg'];

$wrt_user = $row['wrt_user'];

$msg_print = $row['msg'];

print ("$time_msg $wrt_user /: $msg_echo <BR>") ;

}

}

}



?>

<a
href = "main.php">На главную</a>

</body>
</html>


P.S : если что сильно не ругать - я еще новичок в этих делах(кстати,html,php и mysql изучал только по инету)



Спустя 14 минут, 59 секунд (9.09.2012 - 18:28) Игорь_Vasinsky написал(а):
ты интересный.))) пишешь что сделал чат, но не знаешь почему не выводятся сообщения.

Спустя 43 минуты, 51 секунда (9.09.2012 - 19:12) Shkiper написал(а):
CitRus

<?php

/////
if (mysql_num_rows($msg_get) == 1 )

{

$row = mysql_fetch_assoc($msg_get);

$time_msg = $row['time_msg'];

$wrt_user = $row['wrt_user'];

$msg_print = $row['msg'];

print ("$time_msg $wrt_user /: $msg_echo <BR>") ;

}
else
{
echo "Not message";
}
/////


Спустя 5 минут, 48 секунд (9.09.2012 - 19:18) CitRus написал(а):
Цитата (Игорь_Vasinsky @ 9.09.2012 - 18:28)
ты интересный.))) пишешь что сделал чат, но не знаешь почему не выводятся сообщения.

ну пытался сделать... блин,почему вы все так острить любите? а подсказать никак?

Спустя 2 минуты (9.09.2012 - 19:20) CitRus написал(а):
Shkiper, выводит Not message... значит проблема там.

Спустя 55 секунд (9.09.2012 - 19:21) CitRus написал(а):
там вроде в бд опять ничего не записывается

Спустя 36 минут, 6 секунд (9.09.2012 - 19:57) Игорь_Vasinsky написал(а):
а как тут не острить???

ты не спрашиваешь - почему не работает функция, ты не говоришь что выводиться ошибка.

Ты просто говоришь: написал чат, а он не работает. laugh.gif

Спустя 10 часов, 8 минут, 52 секунды (10.09.2012 - 06:06) Shkiper написал(а):
 $query = "INSERT INTO user (msg, time_msg, wrt_user) VALUES ('".$msg."','".$time."','".$name."')";

$sql = mysql_query($query);

Замени на
 $query = "INSERT INTO `user` (`msg`, `time_msg`, `wrt_user`) VALUES ('".$msg."','".$time."','".$name."')";

$sql = mysql_query($query) or die(mysql_error());

Спустя 13 часов, 51 минута, 4 секунды (10.09.2012 - 19:57) CitRus написал(а):
сори,извиняюсь - надо было писать INSERT INTO не user а chat

Спустя 5 минут, 18 секунд (10.09.2012 - 20:02) CitRus написал(а):
хмм... это помогло но только частично,в бд записывается время и автор а сообщение не записывается и не выводиться. что делать? никакие ошибки броузер не выводит, adobe dreamweawer тоже не материться на синтаксические ошибки. подскажите где ошибка.

Спустя 1 минута, 19 секунд (10.09.2012 - 20:03) CitRus написал(а):
так,нашел еще 2 ошибки:

1) вместо $msg=htmlspecialchars($_POST['msg']) почему-то написал $msg=htmlspecialchars($_POST['chat'])

2) вместо print ("$time_msg $wrt_user : $msg_print <BR>") ;

стояло print ("$time_msg $wrt_user : $msg_echo(раньше так назвал переменную,потом переименовал и забыл поменять.) <BR>") ;

но только у меня появился очередной вопрос: после того как я пишу другое сообщение прошлое стирается,как сделать чтоб все по порядку было ? это надо осуществить через циклы? и еще как потом сделать чтоб если на странице 10 сообщений то прошлые будут перемещаться в другую страницу? посоветуйте что нибудь.

Спустя 5 минут, 27 секунд (10.09.2012 - 20:09) Shkiper написал(а):
$msg = htmlspecialchars($_POST['chat']);

Поменяй на:
$msg = htmlspecialchars($_POST['msg']);

Спустя 1 день, 16 часов, 55 минут, 32 секунды (12.09.2012 - 13:04) CitRus написал(а):
ну блин,люди помогите пожалуйста - вы же знаете что делать. как сделать чтоб после написания еще одного сообщения оно не ставилось вместо первого а шло по порядку?

Спустя 8 минут, 33 секунды (12.09.2012 - 13:13) inpost написал(а):
Для даты надо хранить формат date-time.
А теперь по твоему чату, объясни данный запрос:
SELECT * FROM `chat` WHERE `msg` = '{$msg}' LIMIT 1
По порядку, я начну:
SELECT - запрос на выборку.
* - выбираем все поля.

Теперь твоя очередь объяснять то, что ты написал! :)

Спустя 4 часа, 37 минут, 14 секунд (12.09.2012 - 17:50) CitRus написал(а):
Цитата
еперь твоя очередь объяснять то, что ты написал! smile.gif


FROM `chat` - в табличе чат
WHERE `msg` = '{$msg}' - где поле msg равно тексту полученному из формы... это лишнее? извиняюсь,я php только в инете учил и я еще новичок - объясните что нужно сделать.



Спустя 5 минут, 23 секунды (12.09.2012 - 17:55) CitRus написал(а):
только что попробовал кое-что и я почти обрадовался когда увидел что сообщения идут по порядку,но не тут-то было - после того как я перезахожу в чат
сообщений там уже нет. скажите - что я делаю не так? что надо сделать?

Спустя 5 минут, 20 секунд (12.09.2012 - 18:01) CitRus написал(а):
вот дурак - я ставил echo внутрь условия if (isset($_POST['write'])) ,надо было просто вынести его оттуда. но все-таки один вопрос у меня еще есть - сообщения идут сверху вниз,как сделать так чтоб самые старые сообщения были внизу а новые наверху?

Спустя 2 часа, 54 минуты, 1 секунда (12.09.2012 - 20:55) inpost написал(а):
ORDER BY `id` ASC или DESC на твой выбор.

Спустя 15 часов, 34 минуты, 55 секунд (13.09.2012 - 12:30) CitRus написал(а):
inpost ок спасибо. щя прикреплю пагинатор и оставлю здесь весь код - вдруг понадобится новичкам.

Спустя 2 часа, 43 минуты, 40 секунд (13.09.2012 - 15:13) CitRus написал(а):
вот весь чат(без дизайна)

<?php

session_start();

include 'conf.php';

?>
<!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">
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>
Чат</title>
</head>

<body>
<form
method="post">
<input
type="text" name = "msg" />
<input
type="submit" value = "Написать" name = "write" />
</form>

<?php




$name = $_SESSION['name'];

if (isset($_POST['write']))

{

if (isset($_POST['msg']))

{

$msg = htmlspecialchars($_POST['msg']);

$msg = mysql_real_escape_string($msg);

$time = date('H:i');

$query = "INSERT INTO `chat` (`msg`, `time_msg`, `wrt_user`) VALUES ('".$msg."','".$time."','".$name."')";

$sql = mysql_query($query) or die(mysql_error());


}

}




$nums = 10;

if (isset($_GET['page']))

{
$page = intval($_GET['page']);

}

else

{

$page = 1;

}

$query = "SELECT COUNT(*) AS `counter` FROM `chat`";

$sql = mysql_query($query) or die(mysql_error());

$row = mysql_fetch_assoc($sql);

$elements = $row['counter'];

$pages = ceil($elements/$nums);


if ($page < 1)

{

$page = 1;

}

elseif ($page > $pages)

{

$page = $pages;

}


$start = ($page-1)*$nums;

if ($start < 0) $start = 0;

$msg_get = mysql_query("SELECT *
FROM `chat` ORDER BY `id_msg` DESC
LIMIT
{$start}, {$nums}") or die(mysql_error());

while($line = mysql_fetch_array($msg_get))

{

echo "[".$line['time_msg']. "] ".$line['wrt_user']." : ".$line['msg']."<br>";

}

$neighbours = 6;
$left_neighbour = $page - $neighbours;
if ($left_neighbour < 1) $left_neighbour = 1;

$right_neighbour = $page + $neighbours;
if ($right_neighbour > $pages) $right_neighbour = $pages;

if ($page > 1)

{

print ' <a href="?page=1">начало</a> ... <a href="?page=' . ($page-1) . '"><-Вперед</a> ';

}

for ($i=$left_neighbour; $i<=$right_neighbour; $i++)

{
if ($i != $page)

{

print ' <a href="?page=' . $i . '">' . $i . '</a> ';

}

else

{

print ' <b>' . $i . '</b> ';

}

}


if ($page < $pages)

{

print ' <a href="?page=' . ($page+1) . '">назад-></a> ... <a href="?page=' . $pages . '">конец</a> ';

}

?>
<hr />
<a
href = "chat.php">Обновить</a><br />
<a
href = "main.php">На главную</a>

</body>
</html>

Спустя 1 минута, 10 секунд (13.09.2012 - 15:14) CitRus написал(а):
спасибо всем кто помогал
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.