[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: помогите начинающему
Sage
народ помогите мне разобраться
у меня имеется регистрация и авторизация
авторизация на сессиях... сессию авторизованного я ношу по сайту так

session_start();
if (empty($_SESSION['login']) or empty($_SESSION['id']))
{
echo 'ты не вошёл!'; exit;
}
else{
echo 'ты вошёл';
}

Я создал для пользователя свою анкету, примерного вида ссылка
http://site.ru/user/anketa.php?id=' .$_SESSION['id']. '
всё нормально, он по ней переходит и может её та отридачить...

============

тут вопрос: Как мне сделать так, что бы следующий пользователь который зарегистрируется мог смотреть анкеты других, а то когда у меня регистрируется ещё один, он видит вместо например id=2 видит свой id=13



Спустя 9 минут, 49 секунд (13.01.2010 - 12:53) VolCh написал(а):
for ($i=1; $i<$_SESSION['id']; $i++)
echo "http://site.ru/user/anketa.php?id=$i";

как-то так, если я правильно задачу понял

Спустя 1 минута, 3 секунды (13.01.2010 - 12:54) Sage написал(а):
вот эти коды
#############index.php###########

session_start();
include ("db.php");
include "inc/head.php";
if (empty($_SESSION['login']) or empty($_SESSION['id']))
{
echo '<div class="razd">Вы вошли на сайт, как гость<br></div>';
echo '<div class="razd"> » <a href="auth.php">Авторизация</a><br/>';
echo ' » <a href="rega.php">Регистрация</a></div>';
}
else
{
echo '<div class="razd"><b>' .$_SESSION['login']. '</b> привет</div>';
echo '<div class="razd"><a href="user/anketa.php?id=' .$id. '">профиль</a> | ';
echo '<a href="exit.php">выход</a></div>';
}
echo '» <a href="/news/index.php">новости</a>[' . mysql_num_rows( mysql_query( "select (`id`) from `news`") ). ']<br/>';
$res = mysql_query("SELECT * FROM news");
if(mysql_num_rows($res)!=0)
{
$news = mysql_fetch_array($res);
echo '<b>[' .date('G:i d.m.Y',$news['date']). ']</b><br/>
'
.$news['msg']. '<br />
Добавил : <a href="user/anketa.php?id=1">Sage</a><br/>'
;
}
echo '<hr>';
echo 'Заказ дизайнов доступен только черз web <a href="http://www.free-lance.ru/users/Sage_Dizeg">сайт</a>';
echo '<hr>';
echo 'регистраций: ' . mysql_num_rows( mysql_query( "select (`id`) from `users`") );
echo '</div>';
include "inc/foot.php";

############user/anketa.php?id=###############

session_start();
include '../inc/head.php';
include '../db.php';
if (empty($_SESSION['login']) or empty($_SESSION['id']));
$res = mysql_query("SELECT id, login, email, name, city, about FROM users WHERE id=" .$_SESSION['id']. "");
if(mysql_num_rows($res)!=0)
{
$anceta_user = mysql_fetch_array($res);
echo '<div class="razd">Ваш ID: '.$anceta_user['id'].'</div>';
echo '<div class="razd">Ник: ' .$anceta_user['login']. '<br/>';
echo 'Имя: ' .$anceta_user['name']. '<br/>';
echo 'Город: ' .$anceta_user['city']. '<br/>';
echo 'email: ' .$anceta_user['email']. '<br/>';
echo 'О себе: ' .$anceta_user['about']. '</div>';
echo '<div class="razd"> » <a href="/user/edit.php?id=' .$id. '">изменить</a></div>';
}
else
{
echo 'Ползователь не существует!<br />';
}
echo '<div class="razd"> » <a href="../../index.php">главная</a></div>';
include '../inc/foot.php';


Спустя 8 минут, 31 секунда (13.01.2010 - 13:03) Sage написал(а):
Цитата (VolCh @ 13.01.2010 - 09:53)
for ($i=1; $i<$_SESSION['id']; $i++)
echo "http://site.ru/user/anketa.php?id=$i";

как-то так, если я правильно задачу понял

я так понял этот код выдаст всех присутствующих id пользователей?

Спустя 1 минута, 35 секунд (13.01.2010 - 13:04) VolCh написал(а):
всех, кто зарегался до текущего польователя

Спустя 5 минут, 25 секунд (13.01.2010 - 13:10) VolCh написал(а):
Замени
$res = mysql_query("SELECT id, login, email, name, city, about FROM users WHERE id=" .$_SESSION['id']. ""); 

на
$res = mysql_query("SELECT id, login, email, name, city, about FROM users WHERE id=" .mysql_real_escape_string($_GET['id']). ""); 
и сможешь нормально работать с user/anketa.php?id=### Сейчас у тебя id в URI никак не обрабатывается

Спустя 16 минут, 34 секунды (13.01.2010 - 13:26) Sage написал(а):
вот пример, я под ником Hammer и имею свой id=2
чуть ниже новость и кто её добавил в даном случае Sage
Я перехожу на ссылку Sage с id=1
а он переходит в анкету Hammer только ссылко становится не как должно быть http://site.ru/user/anketa.php?id=2
f http://site.ru/user/anketa.php?id=1

Спустя 3 минуты, 27 секунд (13.01.2010 - 13:30) VolCh написал(а):
Ты заменил, что я сказал? если нет то так по твоему коду и должно быть. если заменишь, то переход на http://site.ru/user/anketa.php?id=1 хоть кем покажет анкету Sage

Спустя 4 минуты, 8 секунд (13.01.2010 - 13:34) Sage написал(а):
VolCh я сейчас попробую

Спустя 8 минут, 54 секунды (13.01.2010 - 13:43) Sage написал(а):
user posted image

Спустя 30 секунд (13.01.2010 - 13:43) Sage написал(а):
VolCh всё получилось))))

Спустя 5 минут, 24 секунды (13.01.2010 - 13:48) Sage написал(а):
теперь появилась новая запарка я теперь могу изменить чужой профиль
user posted image
как спрятать не подскажите?

Спустя 35 минут, 39 секунд (13.01.2010 - 14:24) VolCh написал(а):
Что-то типа
if ($_SESSION['id'] == $_GET['id'])
echo '<div class="razd"> » <a href="/user/edit.php?id=' .$id. '">изменить</a></div>';


и user/edit.php не забудь проверить аналогично

Спустя 1 час, 9 минут, 6 секунд (13.01.2010 - 15:33) Sage написал(а):

session_start();
include '../inc/head.php';
include '../db.php';
if (empty($_SESSION['login']) or empty($_SESSION['id']));
$id = $_SESSION['id'];
echo '<div class="razd"><b>' .$_SESSION['login']. '</b> ваша анкета</div>';
$act = $_GET['act'];
if (!empty($act))
{
if ($act == 'save')
{
$name = stripslashes($_POST['name']);
$name = htmlspecialchars($_POST['name']);
$about = htmlspecialchars($_POST['about']);
$about = stripslashes($_POST['about']);
$city = stripslashes($_POST['city']);
$city = htmlspecialchars($_POST['city']);
$q = mysql_query("UPDATE users SET name='$_POST[name]', city='$_POST[city]', about='$_POST[about]' WHERE id=" .$id. "");
{
echo '<center> данные успешно изменены!</center>';
}
}
}

else
{
echo '<div class="razd">';
echo '<form action="edit.php?act=save" method="post">
Имя:<br />
<input name="name" type="text" size="15" maxlength="20"><br/>
Город:<br/>
<input name="city" type="text" size="15" maxlength="20"><br/>
О себе:<br />
<textarea name="about" rows="2" cols="16" value="">
</textarea><br/>
<input value="изменить" name="do" type="submit" />
</form></div>'
;

}
echo '<div class="razd"> » <a href="/user/anketa.php?id=' .$id. '">анкета</a></div>';
echo '<div class="razd"> » <a href="../../index.php">главная</a></div>';
include '../inc/foot.php';

#############user/edit.php######################

Спустя 4 минуты, 8 секунд (13.01.2010 - 15:37) Sage написал(а):
ещё вопрос: Как в формах вбить введёный текст?

Спустя 11 минут, 56 секунд (13.01.2010 - 15:49) VolCh написал(а):
в смысле?

Спустя 7 минут, 19 секунд (13.01.2010 - 15:57) Sage написал(а):
ну предположим я только что зарегистрировался, зашёл в анкети, перешол по ссылке user/edit.php?id=' .$id. ' поля пустые. Я их заполнил и перешёл в анкету у меня там появилась инфа которую я вбил.
Затем я переехал и решил изменить адрес, пререхожу по той ссылке а, мне всю инфу снова забивать надо... я имею ввиду из <input> форм не терялась инфа

Спустя 7 минут, 31 секунда (13.01.2010 - 16:04) Sage написал(а):
что то на подобии

<input name="city" type="text" size="15" maxlength="20" value="' .$city. '">

Спустя 11 минут, 31 секунда (13.01.2010 - 16:16) VolCh написал(а):
Так в чем проблемы? в anketa.php ты же выводишь данные, так же выводи их в edit.php

Спустя 3 минуты, 34 секунды (13.01.2010 - 16:19) Sage написал(а):
но у меня в edit.php выдодится только в <textarea...

$res = mysql_query("SELECT name, city, about FROM users WHERE id=" .mysql_real_escape_string($_GET['id']). "");
if(mysql_num_rows($res)!=0)
{
$anceta_user = mysql_fetch_array($res);
{
echo '<div class="razd">';
echo '<form action="edit.php?act=save" method="post">
Имя:<br />
<input name="name" type="text" size="15" value"'
.$anceta_user['name']. '" maxlength="20"><br/>
Город:<br/>
<input name="city" type="text" size="15" maxlength="20" value"'
.$anceta_user['city']. '"><br/>
О себе:<br />
<textarea name="about" rows="2" cols="16" value="">'
.$anceta_user['about']. '
</textarea><br/>
<input value="изменить" name="do" type="submit" />
</form></div>'
;
}
}

Спустя 40 секунд (13.01.2010 - 16:20) sergeiss написал(а):
Если ты переходишь со страницы, где только что составлял анкету, и она передается через $_POST, то получаем следующее:
<input name="city" type="text" size="15" maxlength="20" value=" <?php if( isset( $_POST['city'] ) ) echo $_POST['city'] ?>">

Спустя 15 минут, 15 секунд (13.01.2010 - 16:35) Sage написал(а):
Цитата (sergeiss @ 13.01.2010 - 13:20)
Если ты переходишь со страницы, где только что составлял анкету, и она передается через $_POST, то получаем следующее:
<input name="city" type="text" size="15" maxlength="20" value=" <?php if( isset( $_POST['city'] ) ) echo $_POST['city'] ?>">

а если начать с этого

<?php
echo '<input name="city" type="text" size="15" maxlength="20" value=" <?php if( isset( $_POST['city'] ) ) echo $_POST['city'] ?>">';
?>

как в таком условии вписать?

Спустя 25 минут, 15 секунд (13.01.2010 - 17:00) sergeiss написал(а):
Цитата (Sage @ 13.01.2010 - 17:35)
echo '<input name="city" type="text" size="15" maxlength="20" value=" <?php if( isset( $_POST['city'] ) ) echo $_POST['city'] ?>">';

Ну, ёпрст... А подумать нельзя самому было? Какие вставки ПХП внутри ПХП????

echo '<input name="city" type="text" size="15" maxlength="20" value="';
if( isset( $_POST['city'] ) ) echo $_POST['city'];
echo '">';

В итоге: если что-то было передано, то это "что-то" будет записано в value; иначе - будет пустое value;

Спустя 17 часов, 22 минуты, 50 секунд (14.01.2010 - 10:23) Sage написал(а):
sergeiss не выходит(

Спустя 2 часа, 3 минуты, 33 секунды (14.01.2010 - 12:27) Gradus написал(а):
Настало время php'шникам включать телепатические возможности, а то юзеры страдают smile.gif

Спустя 9 минут, 22 секунды (14.01.2010 - 12:36) sergeiss написал(а):
Цитата (Sage @ 14.01.2010 - 11:23)
sergeiss не выходит(

Интересно, куда это я не выхожу... Вот на обед как раз собрался выходить - а ты утверждаешь, что не выхожу smile.gif Значит, ты не прав smile.gif

А если серьёзно - ты думаешь, тут телепаты сидят, и должны догадаться, что именно у тебя не получилось? То ли комп не позволил файл сохранить, то ли ты чего-то написал и не заработало, то ли ты не смог нужную кнопку нажать... То ли у тебя просто пропало желание доделывать начатое?

Спустя 14 дней, 7 часов, 26 минут, 59 секунд (28.01.2010 - 20:03) Sage написал(а):

$user = mysql_query("SELECT login, name, city, about FROM users WHERE id='$id'");
if(mysql_num_rows($user)!=0)
{
$anceta_user = mysql_fetch_array($user);

if ($anceta_user['login'] == $login)
{
echo '<div class="razd">';
echo '<form action="edit.php?act=save" method="post">
Имя:<br />
<input name="name" type="text" value="'
.$anceta_user['name'].'" maxlength="20"><br/>
Город:<br/>
<input name="city" type="text" value="'
.$anceta_user['city'].'" maxlength="20"><br/>
О себе:<br />
<textarea name="about" rows="2" cols="16" value="">'
.$anceta_user['about']. '
</textarea><br/>
<input value="изменить" name="do" type="submit" />
</form></div>'
;
}
else
{
echo 'Ты не можешь менять чужую анкету!';
}
}


Вот как у меня вышло)))

Спустя 1 час, 6 минут, 48 секунд (28.01.2010 - 21:10) Ice написал(а):
Цитата (Sage @ 13.01.2010 - 12:33)
 

$name = stripslashes($_POST['name']);
$name = htmlspecialchars($_POST['name']);
$about = htmlspecialchars($_POST['about']);
$about = stripslashes($_POST['about']);
$city = stripslashes($_POST['city']);
$city = htmlspecialchars($_POST['city']);
$q = mysql_query("UPDATE users SET name='$_POST[name]', city='$_POST[city]', about='$_POST[about]' WHERE id=" .$id. "");


А вот это что за кусок? Ничего в нём не настораживает?
Поскольку ты, как ты говоришь, начинающий, я подскажу: при данном раскладе часть кода до запроса можно просто выкинуть.
Быстрый ответ:

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