Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
 Аватар для Khvosticov
0 / 0 / 0
Регистрация: 16.07.2010
Сообщений: 29

$_SESSION - идёт перезапись ID

16.07.2010, 21:36. Показов 1396. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет ребят , всем доброе время суток , на этом форуме впервые - поэтому прошу не пинать.

Занимаюсь разработкой своего движка , и возникла ошибка при работе с сесиями.

Вобщем уже сделал функцию просмотра пользователей сайта (из БД).

Допустим ID моего профиля 1 , т.е id=1
А друга ID допустим 14 , т.е id=14

при просмотре его профиля page.php?id=14 - после обновления страницы - при нажатии на кнопку в навигации мой профиль $_SESSION[id] меня перебрасывает не на мой id=1 а на id=14 т.е после обновления страницы на id=14 мой ид изменяется с id=1 на id=14.

P.S в БД id не изменяется только в сесии.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.07.2010, 21:36
Ответы с готовыми решениями:

$_post и $_session в форме index.php. передача переменных из $_post в $_session
пока начал это делать... это в качестве примера. есть: <? session_save_path($_SERVER.'/session'); session_start(); if...

При добавлении в List<> идет перезапись старых значений
Всем привет. какой-то косяк! создал статический список: static List&lt;Card&gt; myList; с типом Card: public class Card { ...

У меня простая программа на ассемблере в debug и TD идет, а в окне DOS не идет.
Здравствуйте У меня простая программа на ассемблере в debug и TD идет, а в окне DOS не идет. Не понимаю, в чем дело. COM файл 200...

8
Почетный модератор
 Аватар для Humanoid
11556 / 4351 / 452
Регистрация: 12.06.2008
Сообщений: 12,454
16.07.2010, 21:58
Значит ошибка где-то в коде. Скорее всего, одну и ту же переменную использовал и для сессии и для номера просматриваемого пользователя.
0
 Аватар для Khvosticov
0 / 0 / 0
Регистрация: 16.07.2010
Сообщений: 29
16.07.2010, 22: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
<?php
session_start();
include ("bd.php");
if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result = mysql_query("SELECT * FROM users WHERE login='$login' AND password='$password'",$db); 
$myrow = mysql_fetch_array($result);
}
if (isset($_GET['user']))
{
$id = $_GET['user']; 
}
if (!isset($id))
{
$id = 1;
}
if (!preg_match("|^[\d]+$|", $id)) {
exit ("<p>Неверный формат запроса! Проверьте URL!");
}
$result3 = mysql_query ("SELECT * FROM users WHERE id='$id'",$db);
if (mysql_num_rows($result3) > 0)
{
$myrow3 = mysql_fetch_array($result3);
do 
{
echo "$myrow3[login]";
}
while ($myrow3 = mysql_fetch_array($result3));
}
echo "$myrow66[login]";
?>
</body>
</html>
Сейчас переписал , всё равно тоже самое , я нервно курю бамбук в сторонеке...
0
Почетный модератор
 Аватар для Humanoid
11556 / 4351 / 452
Регистрация: 12.06.2008
Сообщений: 12,454
16.07.2010, 23:00
А попробуй ради интереса тут на 13, 15, 17, 19 и 22 строках изменить $id на $id1
1
 Аватар для Khvosticov
0 / 0 / 0
Регистрация: 16.07.2010
Сообщений: 29
16.07.2010, 23:05  [ТС]
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
<?php
session_start();
include ("bd.php");
if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result = mysql_query("SELECT * FROM users WHERE login='$login' AND password='$password'",$db); 
$myrow = mysql_fetch_array($result);
}
if (isset($_GET['user']))
{
$id1 = $_GET['user']; 
}
if (!isset($id1))
{
$id1 = 1;
}
if (!preg_match("|^[\d]+$|", $id1)) {
exit ("<p>Неверный формат запроса! Проверьте URL!");
}
$result3 = mysql_query ("SELECT * FROM users WHERE id1='$id'",$db);
if (mysql_num_rows($result3) > 0)
{
$myrow3 = mysql_fetch_array($result3);
do 
{
echo "$myrow3[login]";
}
while ($myrow3 = mysql_fetch_array($result3));
}
echo "$myrow66[login]";
?>
</body>
</html>
Что-то я не понял почему он ругается на 23 строку
PHP
1
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\monitor\page.php on line 23
0
 Аватар для tyz
356 / 315 / 48
Регистрация: 21.04.2009
Сообщений: 574
16.07.2010, 23:29
В 23 строке
PHP
1
$result3 = mysql_query ("SELECT * FROM users WHERE id1='$id'",$db);
Замени на:
PHP
1
$result3 = mysql_query ("SELECT * FROM users WHERE id='$id1'",$db);
Добавлено через 43 секунды
Khvosticov, видно вы по урокам Попова учили PHP...
1
 Аватар для Khvosticov
0 / 0 / 0
Регистрация: 16.07.2010
Сообщений: 29
16.07.2010, 23:38  [ТС]
Спасибо ребята , помогло действительно хватило переименовать только одной переменной!
Большое спасибо.
0
Почетный модератор
 Аватар для Humanoid
11556 / 4351 / 452
Регистрация: 12.06.2008
Сообщений: 12,454
16.07.2010, 23:57
Рекомендую в php.ini найти строку register_globals = On и изменить её на register_globals = Off

Не по теме:

Вот поэтому я и не люблю всякие сборки с кривыми настройками. Лучше всего устанавливать чистый PHP

0
 Аватар для Khvosticov
0 / 0 / 0
Регистрация: 16.07.2010
Сообщений: 29
17.07.2010, 00:12  [ТС]
Раз уж на то пошло то помогите теперь переписать чуть
HTML5
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
<form action="post.php" method="post" name="form_com">
<table width='50%' style='margin:auto' class='regform'>
<tr class=serverlisttitle>
<td>Текст комментария: <br></td>
</tr>
<tr>
<td>
 <textarea name="text" cols="60%" rows="4"></textarea></label>
</td>
</tr>
<tr>
<td>
 
<input type='hidden' name='login' value='$myrow[login]'>
<input name="id" type="hidden" value="<? echo $id; ?>">
<input type='hidden' name='user' value='$myrow[id]'>
<input type='hidden' name='avatar' value='$myrow[avatar]'>
<input type='hidden' name='color' value='$myrow[color]'>
<input type='hidden' name='title' value='$myrow[title]'>
<input name="sub_com" type="submit" value="Добавить коментарий">
<input name="sub_com" type="reset" value="Очистить поле">
</td> 
</tr>
</table>
 
</form>
привязать к

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
<?php
session_start();
include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь 
 
if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
//если существет логин и пароль в сессиях, то проверяем их и извлекаем аватар
 
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result = mysql_query("SELECT * FROM users WHERE login='$login' AND password='$password'",$db); 
$myrow = mysql_fetch_array($result);
//извлекаем нужные данные о пользователе
}
else {
//Проверяем, зарегистрирован ли вошедший
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!"); }
 
if (isset($_POST['id'])) { $id = $_POST['id']; $post = $_POST['post']; }//получаем идентификатор страницы получателя
if (isset($_POST['text'])) { $text = $_POST['text'];}//получаем текст сообщения
if (isset($_POST['avatar'])) { $avatar = $_POST['avatar'];}//получаем текст сообщения
if (isset($_POST['poluchatel'])) { $poluchatel = $_POST['poluchatel'];}//логин получателя
$login = $_SESSION['login'];//логин автора
$avatar = $myrow['avatar'];
$user = $myrow['id'];
$color = $myrow['color'];
$title = $myrow['title'];
$date = date("Y-m-d");//дата добавления
 
if (empty($login) or empty($text) or empty($date)) {//есть ли все необходимые данные? Если нет, то останавливаем
exit ("<center><h1>Внимание , вы не ввели сообщение</h1></center> <meta http-equiv='Refresh' content='1; URL=page.php?id=".$id."'>");}
 
$text = stripslashes($text);//удаляем обратные слеши
$text = htmlspecialchars($text);//преобразование спецсимволов в их HTML эквиваленты
 
 
$result2 = mysql_query("INSERT INTO usercomments (post,user,login, date, text,avatar,title,color) VALUES ('$id','$user','$login','$date','$text','$avatar','$title','$color')",$db);//заносим в базу сообщение
 
echo "<html><head><title>Мониторинг игровых серверов</title><meta http-equiv='Refresh' content='0; URL=page.php?id=".$id."'></head>";//перенаправляем пользователя
?>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.07.2010, 00:12
Помогаю со студенческими работами здесь

Ping с Mikrotik не идёт, но с устройств подключённых к нему пинг идёт
Hi 8-), у меня есть Mikrotik RouretBOARD 750, захожу в терминал, пингую mail.ru (или любой другой сайт), но пинга нет. С устройств...

То что нормально идёт на 4.4.2, не идёт на lolipop
Приложение на пятом андройде, в отличие от 4.4.2, html файл отображается с вопросами вместо букв. Загруженные в assets картинки тоже не...

В просмотре видео на основном экране всё идет нормально,а когда включаешь полноэкранный режим то пропадает видео,а звук идёт
В просмотре видео на основном экране всё идет нормально,а когда включаешь полноэкранный режим то пропадает видео,а звук идёт. Расскажите с...

Идёт треск в блоке питания когда кулера снизу и охлаждения идёт снизу
Здравствуйте на днях смазал кулер на блоке питании хорошо работал через неделю идёт очень сильний треск что уши закладивает будто кулер об...

$_SESSION
ребята, помогите разобраться на простом примере, как правильно работать с сессией. допустим имеется две страницы (html_1.php и...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru