Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Личные сообщения в чате [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Без описания
inqubus
Отправлено: 15 Октября, 2012 - 03:45:54
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Окт. 2012  


Помог: 0 раз(а)




При логауте не апдейдит в таблицу значение онлайна.

logout.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.         session_start();
  3.        
  4.         mysql_query("UPDATE users SET online = 0 WHERE id = {$_SESSION['id']}");
  5.         session_destroy();
  6.         header("Location: index.php");
  7.        
  8.        
  9. ?>
 
 Top
login8
Отправлено: 15 Октября, 2012 - 11:20:14
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Февр. 2012  
Откуда: Куба


Помог: 0 раз(а)




inqubus
сложно на пальцах обьяснить как реализовать приват в чате, еслиб он у тя был на файловом движке хотя бы я бы подсказал. а так.......... не разбираюсь в MySQL

..

кстати.. когда сделаешь, кинешь ссылку мне на свой шедевр, хочу посмотреть Закатив глазки
 
 Top
Zuldek
Отправлено: 15 Октября, 2012 - 11:26:09
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




inqubus пишет:
При логауте не апдейдит в таблицу значение онлайна.

mysql_error()
 
 Top
login8
Отправлено: 15 Октября, 2012 - 11:27:47
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Февр. 2012  
Откуда: Куба


Помог: 0 раз(а)




а ты тока на привате застрял? все остальное сделано?
 
 Top
inqubus
Отправлено: 16 Октября, 2012 - 01:35:56
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Окт. 2012  


Помог: 0 раз(а)




Работа только началась, но по составленному, если это можно назвать, ТЗ, приват - камень преткновения
 
 Top
inqubus
Отправлено: 16 Октября, 2012 - 16:03:40
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Окт. 2012  


Помог: 0 раз(а)




Zuldek пишет:
inqubus пишет:
При логауте не апдейдит в таблицу значение онлайна.

mysql_error()

Действительно, спасибо)) совсем забыл подключить в logout.php подключение к бд)
 
 Top
inqubus
Отправлено: 16 Октября, 2012 - 19:56:52
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Окт. 2012  


Помог: 0 раз(а)




Такой еще вопрос: как при записи тела сообщения в базу данных - как сделать, чтобы команды SQL не влияли на INSERT, чтобы не допустить SQL-инъекций?

К примеру человек в строку чата пишет команду SQL, чтобы она не влияла на внесение сообщения в бд.

Подскажите пожалуйста. Заранее спасибо.

UPDATED: есть идея тело сообщения кодировать к примеру в base64, заносить в базу, а уже при выборке - делать раскодировку

(Отредактировано автором: 16 Октября, 2012 - 21:13:46)

 
 Top
inqubus
Отправлено: 17 Октября, 2012 - 07:46:46
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Окт. 2012  


Помог: 0 раз(а)




Еще вопрос появился, обработчик кнопки "Send" для общего чата.

Send.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.         session_start();
  3.         require "bd.php";
  4.        
  5.         if(isset($_POST['chat_line'])){
  6.                 $msg = htmlspecialchars($_POST['chat_line']);
  7.                 $usr = $_SESSION['name'];
  8.                 $t = date("Y-m-d H:i:s");
  9.                
  10.        
  11.                 $text = mysql_query("INSERT INTO messages (sender, reciever, text, time_stamp)
  12.                                                                                 VALUES ('$usr', NULL, '$msg', '$t')
  13.                                                         ") or die(mysql_error);
  14.                 $textOp = mysql_query("SELECT id, sender, text, TIME(time_stamp)
  15.                                                                 FROM messages
  16.                                                                 LIMIT 20") or die(mysql_error);
  17.                
  18.                 while ($msgRow = mysql_fetch_assoc($textOp)){
  19.                                 echo "{$msgRow['time_stamp']}.{$msgRow['sender']}.{$msgRow['text']}";  
  20.                 }
  21.                 mysql_free_result($textOp);                                                                            
  22.                                                                                
  23.         }
  24.  
  25. ?>


Выдает Notice: Use of undefined constant mysql_error - assumed 'mysql_error' in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\my_chat\send.php on line 16
mysql_error
и не пишет в базу. Подскажите, пожалуйста, в чем ошибся?
 
 Top
Мелкий Супермодератор
Отправлено: 17 Октября, 2012 - 09:35:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




0) mysql_error - это функция.
1)
inqubus пишет:
чтобы не допустить SQL-инъекций?

1.0) mysql_real_escape_string
1.1) или выкинуть, в конце концов, давно устаревший mysql_* и использовать PDO или mysqli с препарированными запросами.


-----
PostgreSQL DBA
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« HTTP и PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB