[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не удается вывести имя пользователя в чате
pro_xaoc
Приветствую вас, знатоки! В общем расскажу все как есть. Я для увеличения своих навыков в программировании, решил написать чат. Сейчас он работает, регистрацию сделал и ещё сделал так, чтоб я смог зайти на чат только после регистрации и авторизации на сайте чата. Теперь, когда я пишу в чат, у меня выводится только лишь мой написанный текст, а вот кто написал (т.е. имя пользователя), не могу вывести. Помогите пожалуйста реализовать это. Или хотя бы алгоритм. Спасибо.

P.S. Сайт чата: http://chat.kzshop.kz/



Спустя 7 минут, 19 секунд (27.02.2011 - 17:53) Snus написал(а):
pro_xaoc
Код напиши, ага?

Спустя 13 минут, 14 секунд (27.02.2011 - 18:06) pro_xaoc написал(а):
Snus, в том то и дело, что код который реализует вывод имени пользователя в чате у меня не реализовано, вот и не знаю, какой код предоставить. Я думал сначала сделать алгоритм всего этого процесса, потом уже переходить к коду. Если нужно, я поместил папку чата в один архив и закачал на сервак. http://kzshop.kz/chat.kzshop.kz.tar.gz. Спасибо.

Спустя 1 минута, 42 секунды (27.02.2011 - 18:08) Snus написал(а):
pro_xaoc
Код чата. Или как ты себе представляешь нашу помощь?

Спустя 16 минут, 14 секунд (27.02.2011 - 18:24) pro_xaoc написал(а):
код, который записывает текст, который введен в чате в файл text.php
<?php
$message = $_POST['poletext'];
if ($message != 'clear') {
$rec = fopen('text.php','a+');
fwrite($rec,"<div class='message'>".$message."</div>\n");
fclose($rec);
} else {
$rec = fopen('text.php','w+');
fwrite($rec,"");
fclose($rec);
}
?>

в этом пхп - файле из главной индексной страницы посылаются данные методом пост и если такой пользователь есть в БД, то отправляет на страницу чата.
<?php
$login = $_POST['login'];
$pass = $_POST['pass'];

$db = mysql_connect('localhost','pro_xaoc','12345');
mysql_select_db('db',$db);

$resultSearchAkkaunt = mysql_query("SELECT akkaunt FROM chat_db WHERE akkaunt='$login'",$db);
$resultSearchPassword = mysql_query("SELECT password FROM chat_db WHERE password='$pass'",$db);
$myRowAkkaunt = mysql_fetch_array($resultSearchAkkaunt);
$myRowPassword = mysql_fetch_array($resultSearchPassword);
if ($myRowAkkaunt && $myRowPassword) {
header('Location: http://test.kz/chat.php');
} else {
echo "такого нет";
}
?>

код страницы чата
<?php
if (($_SERVER['HTTP_REFERER'] == 'http://test.kz/') || ($_SERVER['HTTP_REFERER'] =='http://www.test.kz/') || ($_SERVER['HTTP_REFERER'] =='http://test.kz/index.php')) {
include_once('html/header.html');
include_once('html/iflogin.html');
include_once('html/footer.html');
} else {
echo 'Ошибка: Вы перешли с внешней ссылки!';
}
?>

Спустя 25 минут, 42 секунды (27.02.2011 - 18:50) inpost написал(а):
pro_xaoc
Привет SQL-inject =)

Давай ко мне по ссылкам в подписи, в раздел безопасности на форуме. Тут многое ещё править и править =)

Спустя 59 минут, 30 секунд (27.02.2011 - 19:49) pro_xaoc написал(а):
Уважаемые, я не прошу написать мне готовый скрипт smile.gif , помогите с алгоритмом всего этого процесса. Я подумывал использовать IP адрес примерно так:
1) Пользователь авторизовался на сайте чата;
2) Скрипт узнает его айпи и записывает в базу вместе с его аккаунтом, примерно так: IP = $accaunt;
3) Пользователь пишет в чат;
4) Скрипт узнает его айпи и если такой айпи найден в базе, то он прикрепляет к сообщению аккаунт этого айпи, который ранее был записан при авторизации;
5) Отправляет в чат готовое сообщение с аккаунтом того, кто его написал.
Но у этого алгоритма тоже есть свои минусы, при отключении/включении сети, айпи передалось другому пользователю, и он от его имени может писать в чате. Так что, думаю это не выход, а в голову другое не лезет. Помогите мне пожалуйста.

P.S. inpost, спасибо, это ведь из раздела безопасности сайта, хорошая тема, но сейчас мне нужен алгоритм, а безопасностью займусь после реализации этого алгоритма rolleyes.gif .

Спустя 18 минут, 1 секунда (27.02.2011 - 20:07) T1grOK написал(а):
Если ip привязан к определенному пользователю, как тогда можно писать от его имени "с такого" же IP?
Я так понимаю фиксируем активные ip в таблицу, примерно такой структуры
IP|Ид_юзверя.
В сессию или куки сохраняйте Ид_юзверя, потом сравниваете информацию с той, что у вас в таблице с IP-ишниками

if(IP == АйпишникПользователя & Ид_юзверя == Ид_юзверя_из куков){
написать сообщение();
}else{
послатьлесом();
}

Спустя 54 минуты, 50 секунд (27.02.2011 - 21:02) YVSIK написал(а):
а зачем привязывать пользователя к его ЙП что нет других способов?
извлекайте из таблицы пользователя не по ЙП(ip) а по его ИД(id)
IP может быть один на несколько пользователей как пример(у одного провай.. и города)
вот ID в таблице уникален тем и дорог
а вызвать его мона или из таблицы или из простой переменой
примерно так
<?php еcho '$lоgin'; ?>

есль я правельон понял об чём соб... речь.

Спустя 11 минут, 2 секунды (27.02.2011 - 21:13) pro_xaoc написал(а):
YVSIK
вы поняли меня, но как узнает пхп что пишет именно такой-то или такой-то пользователь? У меня на тестовом сайте авторизация сделано так: пользователь авторизуется, потом методом пост улетают данные в пхп файл, а там эти данные обрабатываются. Если такой пользователь есть, то происходит направление к странице чата. Если так подумать, то нет никакой связи между страницей чата и авторизацией. Поэтому перед использованием ID нужен ещё один механизм, который определит, что это именно пользователь из нашей БД с некоторым ID. Вот в чем проблема.

Спустя 22 минуты, 19 секунд (27.02.2011 - 21:35) YVSIK написал(а):
надо пользователя авторизовать и по пути его-же пользователя записать в сессию и или в куки чтоб он был виден на всех страницах
так как это гловальные переменные
и видны на всех страницах
знач так пример===> автогризовались и передали
пользователя в скажем сессию и потом извлевкать этого пользователя уже не из базы а из сессии на всех страницах сайта
вот пример

 <?php session_start();?>
<?php
еcho($_SESSION['login']);

вот ещё как пример ===>
после того как прошла авторизация передаем пользователя в сессию так

<?php session_start();?>
<?php
$_SESSION['loginl' ]= $loginl ;?>

Спустя 3 минуты, 33 секунды (27.02.2011 - 21:39) pro_xaoc написал(а):
YVSIK
О сэссии и куки, раньше не знал о них, так-с кажется это, что мне и нужно, теперь попробую это реализовать, потом отпишусь. Спасибо!

Спустя 1 день, 11 минут, 4 секунды (28.02.2011 - 21:50) pro_xaoc написал(а):
О гуд, все работает с помощью сессии, повозился конечно, но работает biggrin.gif Всем спасибоооооооо! =)

Спустя 4 часа, 7 минут, 23 секунды (1.03.2011 - 01:57) pro_xaoc написал(а):
Не обращайте внимания на это сообщение, это я для увеличения своего поста (10), чтоб отблагодарить тех которые мне помогли. biggrin.gif
Быстрый ответ:

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