[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вывод формы на страницу
юрьич
День добрый.Имею скрипт,который выводит определённые данные из БД на страницу пользователя.Т.е. вывод привязан к ID. Ссылка расположена на странице пользователя.И к кому бы я не зашёл я вижу по этой ссылке свою информацию.Как прописать,что бы отображалась информация того,чья страница.



Спустя 36 минут, 46 секунд (10.09.2012 - 09:42) Игорь_Vasinsky написал(а):
1. сформировать список пользователей из БД, используя ссылки передать в url уникальный параметр (id - если он уникален)
2. при переходе на страницу считать из GET этот id - сделать запрос в БД с условием WHERE `id` = (int)$_GET['id'];
3. вывести данные

Спустя 28 минут, 48 секунд (10.09.2012 - 10:10) юрьич написал(а):
Давайте помедленнее,а то я не поспеваю за Вами.Вот страница со списком:

<?php
// вся процедура работает на сессиях. Именно в ней хранятся данные пользователя, пока он находится на сайте. Очень важно запустить их в самом начале странички!!!
session_start();

include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь

if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
//если существует логин и пароль в сессиях, то проверяем, действительны ли они
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result2 = mysql_query("SELECT id FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db);
$myrow2 = mysql_fetch_array($result2);
if (empty($myrow2['id']))
{
//если данные пользователя не верны
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!");
}
}

else {
//Проверяем, зарегистрирован ли вошедший
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!"); }
?>
<html>
<
head>
<
title>Список пользователей</title>
</
head>
<
body>
<
h2>Список пользователей</h2>


<?php
//выводим меню
print <<<HERE
|<a href='page.php?id=$_SESSION[id]'>Моя страница</a>|<a href='index.php'>Главная страница</a>|<a href='all_users.php'>Список пользователей</a>|<a href='exit.php'>Выход</a><br><br>
HERE;

$result = mysql_query("SELECT login,id FROM users ORDER BY login",$db); //извлекаем логин и идентификатор пользователей
$myrow = mysql_fetch_array($result);
do
{
//выводим их в цикле
printf("<a href='page.php?id=%s'>%s</a><br>",$myrow['id'],$myrow['login']);
}
while($myrow = mysql_fetch_array($result));

?>
</body>
</
html>


Вот страница пользователя:

<?php
// вся процедура работает на сессиях. Именно в ней хранятся данные пользователя, пока он находится на сайте. Очень важно запустить их в самом начале странички!!!
session_start();

include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь
if (isset($_GET['id'])) {$id =$_GET['id']; } //id "хозяина" странички
else
{ exit("Вы зашил на страницу без параметра!");} //если не указали id, то выдаем ошибку
if (!preg_match("|^[\d]+$|", $id)) {
exit("<p>Неверный формат запроса! Проверьте URL</p>");//если id не число, то выдаем ошибку
}

if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
//если существует логин и пароль в сессиях, то проверяем, действительны ли они
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result2 = mysql_query("SELECT id FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db);
$myrow2 = mysql_fetch_array($result2);
if (empty($myrow2['id']))
{
//Если не действительны (может мы удалили этого пользователя из базы за плохое поведение)
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!");
}
}

else {
//Проверяем, зарегистрирован ли вошедший
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!"); }
$result = mysql_query("SELECT * FROM users WHERE id='$id'",$db);
$myrow = mysql_fetch_array($result);//Извлекаем все данные пользователя с данным id

if (empty($myrow['login'])) { exit("Пользователя не существует! Возможно он был удален.");} //если такого не существует

?>
<?php
include"p_us.html"?>

<?php

print <<<HERE
<script language="JavaScript1.2">
function openwindow()
{
window.open("http://nikita/reg/conf_pc.php","mywindow","menubar=1 ,resizable=1,width=350,height=250");
}
</SCRIPT>
<A href="javascript: openwindow()">'login'</A>
||
<a href='all_users.php'>Список пользователей</a>|<a href='exit.php'>Выход</a><br><br>


HERE;
//выше вывели меню

if ($myrow['login'] == $login) {
//Если страничка принадлежит вошедшему, то предлагаем изменить данные и выводим личные сообщения

print <<<HERE

<form action='update_user.php' method='post'>
Ваш логин <strong>
$myrow[login]</strong>. Изменить логин:<br>
<input name='login' type='text'>
<input type='submit' name='submit' value='изменить'>
</form>
<br>

<form action='update_user.php' method='post'>
Изменить пароль:<br>
<input name='password' type='password'>
<input type='submit' name='submit' value='изменить'>
</form>
<br>

<form action='update_user.php' method='post' enctype='multipart/form-data'>
Ваш аватар:<br>
<img alt='аватар' src='
$myrow[avatar]'><br>
Изображение должно быть формата jpg, gif или png. Изменить аватар:<br>
<input type="FILE" name="fupload">
<input type='submit' name='submit' value='изменить'>
</form>
<br>

<h2>Личные сообщения:</h2>


HERE;

$tmp = mysql_query("SELECT * FROM messages WHERE poluchatel='$login' ORDER BY id DESC");
$messages = mysql_fetch_array($tmp);//извлекаем сообщения пользователя, сортируем по идентификатору в обратном порядке, т.е. самые новые сообщения будут вверху

if (!empty($messages['id'])) {
do //выводим все сообщения в цикле
{
$author = $messages['author'];
$result4 = mysql_query("SELECT avatar,id FROM users WHERE login='$author'",$db); //извлекаем аватар автора
$myrow4 = mysql_fetch_array($result4);

if (!empty($myrow4['avatar'])) {//если такового нет, то выводим стандартный(может этого пользователя уже давно удалили)
$avatar = $myrow4['avatar'];
}
else {$avatar = "avatars/net-avatara.jpg";}

printf("
<table>
<tr>
<td><a href='page.php?id=%s'><img alt='аватар' src='%s'></a></td>

<td>Автор: <a href='page.php?id=%s'>%s</a><br>
Дата: %s<br>
Сообщение:<br>
%s<br>
<a href='drop_post.php?id=%s'>Удалить</a>

</td>
</tr>
</table><br>
"
,$myrow4['id'],$avatar,$myrow4['id'],$author,$messages['date'],$messages['text'],$messages['id']);
//выводим само сообщение
}
while($messages = mysql_fetch_array($tmp));

}
else {
//если сообщений не найдено
echo "Сообщений нет";
}

}


else
{
//если страничка чужая, то выводим только некторые данные и форму для отправки личных сообщений

print <<<HERE
<img alt='аватар' src='$myrow[avatar]'><br>
<form action='post.php' method='post'>
<br>
<h2>Отправить Ваше сообщение:</h2>
<textarea cols='43' rows='4' name='text'></textarea><br>
<input type='hidden' name='poluchatel' value='
$myrow[login]'>
<input type='hidden' name='id' value='
$myrow[id]'>
<input type='submit' name='submit' value='Отправить'>
</form>

HERE;
}
?>
</td></tr></table>
</
body>
</
html>


Разговор о первой в PRINT ссылке.Что мне надо дописать?
Сильно не ругайтесь я учусь.

Спустя 9 минут, 17 секунд (10.09.2012 - 10:20) Игорь_Vasinsky написал(а):
вот ты сформировал список имён в виде ссылок

printf("<a href='page.php?id=%s'>%s</a><br>",$myrow['id'],$myrow['login']);


далее

$result = mysql_query("SELECT * FROM users WHERE id='$id'",$db); 



как бы всё верно.

я канешь извеняюсь. но от таких листингов - аля Попов, меня воротит.

если вы уж хотите учиться - то рекомендую http://phpforum.ru/index.php?showtopic=32799 + http://irbis-team.com, http://irbis-school.com

Спустя 14 минут, 33 секунды (10.09.2012 - 10:34) юрьич написал(а):
Но ведь переменная $result уже существует.Если её меняю на Ваш пример,не работает

Спасибо за ссылку обязательно посмотрю.У Попова не учусь,просто такой скрипт нашёл и разбираю.

Спустя 3 минуты, 21 секунда (10.09.2012 - 10:38) Игорь_Vasinsky написал(а):
это и есть по Поповски. мой пример был наглядным - у тя уже есть реализация.

поменяй в url id (существующего пользователя) - и увидишь другие данные

Спустя 6 минут, 32 секунды (10.09.2012 - 10:44) юрьич написал(а):
Цитата

поменяй в url id (существующего пользователя) - и увидишь другие данные

Нет, так не пойдёт.Мне надо что бы любой пользователь под своим id видел данные (по этой ссылки)любого другого пользователя на его странице.
Или я что то не понял?

Спустя 11 минут, 57 секунд (10.09.2012 - 10:56) Игорь_Vasinsky написал(а):
я тебе для проверки сказал так сделать

Спустя 6 минут, 25 секунд (10.09.2012 - 11:02) юрьич написал(а):
Смешно.Ну,и...

Спустя 15 минут, 20 секунд (10.09.2012 - 11:18) Игорь_Vasinsky написал(а):
что и???
ты введи другой id в урл - есть данные другого пользователя?

Спустя 4 минуты, 26 секунд (10.09.2012 - 11:22) юрьич написал(а):
Конечно есть.

Спустя 10 минут, 23 секунды (10.09.2012 - 11:33) Игорь_Vasinsky написал(а):
посомтри - ссылки правильно формируются?

Спустя 10 минут, 16 секунд (10.09.2012 - 11:43) юрьич написал(а):
Да,каждая страница под своим id.Если это имеете ввиду.

Спустя 6 минут, 53 секунды (10.09.2012 - 11:50) юрьич написал(а):
Всё вопрос решён.$_sesion['id'] поменял на $GET['id']
Спасибо за помощь.
P.S. ★ЛжеЭксперт★Лже-это абривиатура,сокращение или юмор админа?

Спустя 16 минут, 49 секунд (10.09.2012 - 12:07) Игорь_Vasinsky написал(а):
Цитата
Всё вопрос решён.$_sesion['id'] поменял на $GET['id']

так чё ты её в сессии ловил - когда он в url был?

Цитата
P.S. ★ЛжеЭксперт★Лже-это абривиатура,сокращение или юмор админа?

это группа.

Спустя 3 минуты, 15 секунд (10.09.2012 - 12:10) юрьич написал(а):
Ладно,приятно было пообщаться.Если люди реально прощаются говорят-"увидимся",а в инете как?-"почитаемся"

Спустя 2 минуты (10.09.2012 - 12:12) Игорь_Vasinsky написал(а):
))) не важно.

Спустя 11 минут, 32 секунды (10.09.2012 - 12:23) юрьич написал(а):
Рано попрощался.Теперь такая проблема.Раньше данные выводились в сполере:
<html>
<title><?php echo $myrow['login'];?></title>
<body>

<table width="900" align="center" style=" height:auto; border:5px #000000 ridge;
background-color:rgba(112,128,144,0.7); padding:5px;margin-top:50px;"> <tr><td>
<h3>Пользователь"<?php echo $myrow['login'];?>"</h3>

<div class="spoil">
<div class="smallfont"><input type="button" value="Мой ПК" class="input-button"
onclick="if (this.parentNode.parentNode.getElementsByTagName('div')
[1].getElementsByTagName('div')[0].style.display != '')
{ this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')
[0].style.display = ''; this.innerText = ''; this.value = 'Свернуть'; } else
{ this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')
[0].style.display = 'none'; this.innerText = ''; this.value = 'Мой ПК'; }"/>
</div>
<div class="alt2">
<div style="display: none;">
<table width="200" height="200" border="1">
<tr>
<td>
<?php include"conf_pc.php"?>
</td>
</tr>
</table>
</div>
</div>
</div>

Я решил перенести их в отдельно открывающее окно по ссылки:
print <<<HERE
<script language="JavaScript1.2">
function openwindow()
{
window.open("http://nikita/reg/conf_pc.php","mywindow","menubar=1 ,resizable=1,width=350,height=250");
}
</SCRIPT>
<A
href="javascript: openwindow()">'login'</A>


Когда было в сесиях информация выводилась,а сечас открывается лишь таблица без данных.

<?
session_start();
?>

<html><head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Регистрация</title>
<
style type="text/css" >
.
tb3{border:0px #2f4f4f ridge;width:40%;height:220px;
background:transparent;float:left;
}
.tb1{border:3px #104E8B ridge; position:relative;padding:0px;
color:#000080;font-size:14px; width:200px;background:#FAF0E6;}
</style>
</
head>
<
body style="background:url(/publ/snimok/fon.jpg);background-attachment:fixed; width:100%" >
<?php

$db_name="mysql"; //база данных
$table="users"; //таблица
$host="localhost"; //хост
$user="root"; //логин
$password=""; //password
//законнектимся - получаем link-идентификатор или вывод номера и текста ошибки
//с последующим прерыванием работы скрипта (die())

$link=mysql_connect($host,$user,$password) or die(mysql_errno($link).mysql_error($link));
//выбираем базу данных BOOKS, созданную нами ранее
$db=mysql_select_db($db_name,$link) or die(mysql_errno($link).mysql_error($link));
//выберем данные
$id = $_GET['id'];
$result=mysql_query("SELECT login,id,sees,teep_pc,mather,hd,member,block,disp FROM users WHERE id='$id'") or die(mysql_errno($link).mysql_error($link));
$array = mysql_fetch_array($result);
if ($array['id'] == $id){
Print "<table class=tb3>";

print "<tr>";
print "<td class=tb1 align=center >Пользователь:</td><td class=tb1> ".$array['login'] . "</td></tr><tr> ";
print "<th class=tb1>Операц.система:</th> <td class=tb1> ".$array['sees'] . "</td></tr><tr> ";
print "<th class=tb1>Тип ПК:</th> <td class=tb1> ".$array['teep_pc'] . "</td></tr> ";
print "<th class=tb1>Систем.плата:</th> <td class=tb1> ".$array['mather'] . "</td> </tr> ";
print "<th class=tb1>Жёсткий диск:</th> <td class=tb1> ".$array['hd'] . "</td> </tr> ";
print "<th class=tb1>Опер.память:</th> <td class=tb1> ".$array['member'] . "</td></tr> ";
print "<th class=tb1>Блок питания:</th> <td class=tb1> ".$array['block'] . "</td></tr> ";
print "<th class=tb1>Монитор:</th> <td class=tb1> ".$array['disp'] . "</td> </tr> ";
print "</table>";
}
?>

</body></html>

Спустя 1 минута, 59 секунд (10.09.2012 - 12:25) юрьич написал(а):
P.S. Хотя в сполере всё работает.

Спустя 2 минуты, 53 секунды (10.09.2012 - 12:28) Игорь_Vasinsky написал(а):
http://nikita/reg/conf_pc.php - тут что вообще? подписывай листинги - что понятно было что за файл

Спустя 4 минуты, 42 секунды (10.09.2012 - 12:33) юрьич написал(а):
<?
session_start();
?>

<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Регистрация</title>
<style type="text/css" >
.tb3{border:0px #2f4f4f ridge;width:40%;height:220px;
background:transparent;float:left;
}
.tb1{border:3px #104E8B ridge; position:relative;padding:0px;
color:#000080;font-size:14px; width:200px;background:#FAF0E6;}
</style>
</head>
<body style="background:url(/publ/snimok/fon.jpg);background-attachment:fixed; width:100%" >
<?php

$db_name="mysql"; //база данных
$table="users"; //таблица
$host="localhost"; //хост
$user="root"; //логин
$password=""; //password
//законнектимся - получаем link-идентификатор или вывод номера и текста ошибки
//с последующим прерыванием работы скрипта (die())
$link=mysql_connect($host,$user,$password) or die(mysql_errno($link).mysql_error($link));
//выбираем базу данных BOOKS, созданную нами ранее
$db=mysql_select_db($db_name,$link) or die(mysql_errno($link).mysql_error($link));
//выберем данные
$id = $_GET['id'];
$result=mysql_query("SELECT login,id,sees,teep_pc,mather,hd,member,block,disp FROM users WHERE id='$id'") or die(mysql_errno($link).mysql_error($link));
$array = mysql_fetch_array($result);
if ($array['id'] == $id){
Print "<table class=tb3>";

print "<tr>";
print "<td class=tb1 align=center >Пользователь:</td><td class=tb1> ".$array['login'] . "</td></tr><tr> ";
print "<th class=tb1>Операц.система:</th> <td class=tb1> ".$array['sees'] . "</td></tr><tr> ";
print "<th class=tb1>Тип ПК:</th> <td class=tb1> ".$array['teep_pc'] . "</td></tr> ";
print "<th class=tb1>Систем.плата:</th> <td class=tb1> ".$array['mather'] . "</td> </tr> ";
print "<th class=tb1>Жёсткий диск:</th> <td class=tb1> ".$array['hd'] . "</td> </tr> ";
print "<th class=tb1>Опер.память:</th> <td class=tb1> ".$array['member'] . "</td></tr> ";
print "<th class=tb1>Блок питания:</th> <td class=tb1> ".$array['block'] . "</td></tr> ";
print "<th class=tb1>Монитор:</th> <td class=tb1> ".$array['disp'] . "</td> </tr> ";
print "</table>";
}
?>

</body></html>

Спустя 5 минут, 25 секунд (10.09.2012 - 12:38) Игорь_Vasinsky написал(а):
Цитата
window.open("http://nikita/reg/conf_pc.php","mywindow","menubar=1 ,resizable=1,width=350,height=250");


сюда то в url GET['id'] - передавай.

Спустя 15 минут, 25 секунд (10.09.2012 - 12:54) юрьич написал(а):
Сюда,это куда?В файл "conf_pc.php"или в ссылку?Если в файл,то он там вроде есть
$id = $_GET['id'];
$result=mysql_query("SELECT login,id,sees,teep_pc,mather,hd,member,block,disp FROM users WHERE id='$id'") or die(mysql_errno($link).mysql_error($link));
а если в ссылку,то это как?

Спустя 1 минута, 33 секунды (10.09.2012 - 12:55) Игорь_Vasinsky написал(а):
в ссылку канешь

Спустя 20 минут, 6 секунд (10.09.2012 - 13:15) юрьич написал(а):
Всё получилось.Спасибо.Надеюсь на этом пока всё.

Спустя 5 минут, 8 секунд (10.09.2012 - 13:21) Игорь_Vasinsky написал(а):
smile.gif
Быстрый ответ:

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