С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
37 / 37 / 1
Регистрация: 07.09.2010
Сообщений: 752

отображение пользователей

19.09.2010, 02:57. Показов 1510. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возможно название темы не подходит к вопросу.
Есть такой код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
if ($player1 == 0) {
 $nick1=$_SESSION['login'];
 mysql_query("UPDATE `object` SET `player1` = '$nick1' ");
} elseif ($player1 == $nick1) {
 echo ('Вы уже вошли');
} else {
    if ($player2 == 0) {
     $nick2=$_SESSION['login'];
     mysql_query("UPDATE `object` SET `player2` = '$nick2' ");
    } elseif ($player2 == $nick2) {
     echo ('Вы уже вошли');
    }
}
Цель:
Заходит пользователь, в поле меняется значение с 0 на ник пользователя. На странице отображается его ник. Если он перезагрузит страницу, то все останется как есть.
Заходит 2ой пользователь, в другом поле меняется значение с 0 на ник польз. На странице в другом месте отображается его ник. Если он перезагрузит страницу, то все останется как есть.

Но у меня выходит так, что если зайдет 2ой пользователь, то поле 1ого пользователя собьется ником 2ого.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.09.2010, 02:57
Ответы с готовыми решениями:

Отображение профилей пользователей на сайте
Привет! Изучаю php несколько дней , смогла создать простенькую регистрацию+авторизацию с сессиями , но вот как создать отображение...

Авторизация пользователей и отображение данных
Здравствуйте! Не так давно наталкивался на подобную тему здесь, к сожалению не сохранил для себя. В общем суть в следующем: ...

Одинаковое отображение для всех пользователей
Доброго времени суток. Прошу помочь советом или примером или материалом каким-нибудь, в общем дело в том, что есть динамическая страница,...

13
 Аватар для GalaX
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
19.09.2010, 03:29
у тебя структура БД ваще непонятная
вообще, каждому пользователю присваивается уникальный идентификатор
а потом по этому идентификатору ищешь нужного тебе юзверя:
SQL
1
UPDATE `object` SET `player` = '$nick' WHERE `id`=ид_пользователя
0
37 / 37 / 1
Регистрация: 07.09.2010
Сообщений: 752
19.09.2010, 13:27  [ТС]
Заходит рандомный пользователь, для чего ид? Как его узнать?
0
18 / 18 / 1
Регистрация: 24.09.2009
Сообщений: 98
19.09.2010, 14:49
Смотри:
1. Как пользователь(любой) входит в сайт, заноситься инфа о нём(ип,где находиться,время)
2. Считываем инфу.
3. Чтоб не засорялась БД, надо написать скрипт, что когда пользователь с таким ИП отсутствует более $x минут, удаляем его.

ЗЫ. Позже напишу сюда такой скрипт.
0
37 / 37 / 1
Регистрация: 07.09.2010
Сообщений: 752
19.09.2010, 14:57  [ТС]
Смотрите что мне надо. Полный код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?php
include("connect.php");
?>
<?php
session_start();
 
 
$querys="SELECT * FROM object"; 
$ress=mysql_query($querys);
$rows=mysql_fetch_array($ress);
$player1=$rows['player1'];
$player2=$rows['player2'];
$y1=$rows['y1'];
$y2=$rows['y2'];
$x1=$rows['x1'];
$x2=$rows['x2'];
 
if ($player1 == 0) {
 $nick1=$_SESSION['login'];
 mysql_query("UPDATE `object` SET `player1` = '$nick1' ");
} elseif ($player1 == $nick1) {
 echo ('Вы уже вошли');
} else {
    if ($player2 == 0) {
     $nick2=$_SESSION['login'];
     mysql_query("UPDATE `object` SET `player2` = '$nick2' ");
    } elseif ($player2 == $nick2) {
     echo ('Вы уже вошли');
    }
}
 
 
 
 
?>
<html>
 
<button onclick="XY()">Выйти</button>
<script language="JavaScript">
 
 
function XY() {
<?php mysql_query("UPDATE `object` SET (`x1`,`y1`,`x2`,`y2`) = (x1,y1,x2,y2) "); ?>
alert('player1 x='+x1+'; y='+y1+'. player2 x='+x2+'; y='+y2+'.')
}
 
 
 
y1 = <?php echo $y1 ?>;
x1 = <?php echo $x1 ?>;
y2 = <?php echo $y2 ?>;
x2 = <?php echo $x2 ?>;
 
m=0; 
document.onkeydown = function(w) { 
    w=w||window.event; 
    if (!m && w.keyCode == '87')  m=setInterval(function() {tops();},1);   
    if (!m && w.keyCode == '83')  m=setInterval(function() {downs();},1);  
    if (!m && w.keyCode == '65')  m=setInterval(function() {lefts();},1);  
    if (!m && w.keyCode == '68')  m=setInterval(function() {rights();},1);  
}
 
document.onkeyup = function() {if (m) {clearInterval(m); m=0;}} 
 
function tops() { 
    document.getElementById("<?php echo $_SESSION['login'] ?>").style.top=parseInt(document.getElementById("<?php echo $_SESSION['login'] ?>").style.top)-1+"px"; 
    y1=y1+1;
} 
function downs() { 
    document.getElementById("<?php echo $_SESSION['login'] ?>").style.top=parseInt(document.getElementById("<?php echo $_SESSION['login'] ?>").style.top)+1+"px"; 
    y1=y1-1;
} 
function rights() { 
    document.getElementById("<?php echo $_SESSION['login'] ?>").style.left=parseInt(document.getElementById("<?php echo $_SESSION['login'] ?>").style.left)+1+"px"; 
    x1=x1+1;
} 
function lefts() { 
    document.getElementById("<?php echo $_SESSION['login'] ?>").style.left=parseInt(document.getElementById("<?php echo $_SESSION['login'] ?>").style.left)-1+"px"; 
        x1=x1-1;
} 
</script>
 
<div id='<?php echo "$nick1"; ?>' style="position:absolute; width:100px; height:100px; left:<?php echo "$x1"; ?>px; top:<?php echo "$y1"; ?>px; background-color:#000; color:#FFF;"><?php echo "$player1"; ?></div>
<div id='<?php echo "$nick2"; ?>' style="position:absolute; width:100px; height:100px; right:<?php echo "$x2"; ?>px; top:<?php echo "$y2"; ?>px; background-color:#496; color:#FFF;"><?php echo "$player2"; ?></div>
 
</html>
Есть 2 квадратика, в нем имена пользователей. Заходит 1ый п. на 1ом квадрате показывается его имя, он может двигать свой квадрат. Для 2ого пользователя аналогично 2ого квадрата.
Проблему в 1ом посте описал. Но еще есть одно но. Если пользователь закроет страницу, должны удалиться(до этого занесенные) из бд его данные.
0
18 / 18 / 1
Регистрация: 24.09.2009
Сообщений: 98
19.09.2010, 17:31
Цитата Сообщение от Le Thaw Посмотреть сообщение
Но еще есть одно но. Если пользователь закроет страницу, должны удалиться(до этого занесенные) из бд его данные.
Ну это почти-что невозможно. Можно только по истечению определённого кол-ва времени, допустим 5 минут.
0
37 / 37 / 1
Регистрация: 07.09.2010
Сообщений: 752
19.09.2010, 17:41  [ТС]
Разве никак не отловить что пользователь закрыл страницу?

Добавлено через 1 минуту
Ну ведь, например, если пользователь закрыл страницу, и открыл снова ему надо опять авторизовываться.

Добавлено через 5 минут
Хотя ладно, обойдусь без этого.
0
 Аватар для GalaX
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
19.09.2010, 18:35
Цитата Сообщение от Le Thaw Посмотреть сообщение
Разве никак не отловить что пользователь закрыл страницу?
обычно такое не делается, ибо пользователь страницу закрывает не всегда на крестик - она может еще reset-ом закрыться (вот тогда на сервер будет извещен, что у юзверь браузер/вкладка закрыта)
0
18 / 18 / 1
Регистрация: 24.09.2009
Сообщений: 98
19.09.2010, 18:43
Цитата Сообщение от Le Thaw Посмотреть сообщение
Разве никак не отловить что пользователь закрыл страницу?
Только Java-Script и то, пользователь может аварийно закрыть браузер.
0
37 / 37 / 1
Регистрация: 07.09.2010
Сообщений: 752
19.09.2010, 19:14  [ТС]
Аварийно это редко, так что не особо важно

Добавлено через 34 секунды
Вы поможете с 1ым кодом?
0
 Аватар для GalaX
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
19.09.2010, 23:00
Цитата Сообщение от Le Thaw Посмотреть сообщение
Добавлено через 34 секунды
Вы поможете с 1ым кодом?
может быть так поможет:
PHP
1
2
3
4
5
...
mysql_query("UPDATE `object` SET `player1` = '$nick1' WHERE `player1`='0' ");
...
mysql_query("UPDATE `object` SET `player2` = '$nick2' WHERE `player2`='0' ");
...
0
37 / 37 / 1
Регистрация: 07.09.2010
Сообщений: 752
20.09.2010, 08:04  [ТС]
Это никак не поможет. Скрипт будет работать, а поле просто обновляться не будет.
0
Йошь-мыслитель
 Аватар для Xander Bass
126 / 120 / 26
Регистрация: 22.02.2009
Сообщений: 706
Записей в блоге: 5
21.09.2010, 04:43
Le Thaw, вероятнее всего причина кроется в структуре БД.
Цитата Сообщение от Le Thaw Посмотреть сообщение
$querys="SELECT * FROM object";
Здесь название таблицы для пущей верности в кавычки закройте.

Далее вопрос: откуда вы берёте значение $nick1 в случае 'Вы уже вошли? Это так вопрос на засыпку. Не удивлюсь, если эту строчку скрипт не выводит никогда.
0
37 / 37 / 1
Регистрация: 07.09.2010
Сообщений: 752
22.09.2010, 15:44  [ТС]
Да не выводит=)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.09.2010, 15:44
Помогаю со студенческими работами здесь

Статистика пользователей - как идентифицировать пользователей с одинаковыми именами
есть 2 таблицы users, и item, в таблице item есть поле username, задача такова что бы вывести информацию о том сколько записей сделал user...

Отображение пользователей на гугл картах
Как отобразить в приложениии, к которому я прикрепил гугл карты других пользователей , которые тоже используют это приложение? Чтобы в виде...

Xacl И Отображение Списка Пользователей В Sametime
Здравствуйте! В адресной книге Domino организации включено использование xACL. В результате при отправке почты отправитель...

[kubuntu 12.04] Отображение списка пользователей в окне логина
Т.е. что-то по типу экрана входа в windows. Как это сделать? Инфы хватает, но четкой иструкции нет, а тыком не нашел. Заранее благодарен. ...

Вопросы по подходу и не только. Отображение контента для зарегистрированных/незарегистрированных пользователей.
Это вопрос больше по подходу. Наверное можно было и так найти, но я подумал, что если кто-нибудь сможет ответить, то это и для многих...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Old Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru