Jump to content

[SOLVED] User Profiles, how can i .....


DeanWhitehouse

Recommended Posts

i have a user profile page, this page works by checking the users session_id and then gets this data from the database. Now how can i display this to other users, for example, so other users can view other users profiles(this is a really bad explanation).

 

this is my current page

<?php
require_once 'db_connect.php';
require_once 'nav_bar.php';
require_once 'logged_in.php';

if ($_SESSION['is_valid'] == true){

$user_id = $_SESSION['user_id'];
$sql = "SELECT * FROM $user WHERE `user_id`='{$user_id}' LIMIT 0,1;";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
$username = $row['user_name'];
$email = $row['user_email'];
echo "$username<br>";
$show_email = $row['show_email'];
if ($show_email == 1)
{ 
echo "Username:<a href='mailto:$email'>$email</a>";
}
elseif ($show_email == 0)
{
echo "Email:Hidden";
}
}
else
{
echo "Please login to view this page.";
}
?>

Link to comment
https://forums.phpfreaks.com/topic/102583-solved-user-profiles-how-can-i/
Share on other sites

Make a page named like profile.php and have links like profile.php?id=123.  Then on the page, do:

<?php
if (isset($_GET['id'])) {
//query and stuff with this ID
}
else {
echo "Invalid user ID passed to page!";
}
?>

 

Basically, substitute $_SESSION with $_GET in your code. =P

is this the right thing

 

<?php
if (isset($_GET['id'])) {
$user_id = 'id';
$sql = "SELECT * FROM $user WHERE `user_id`='{$user_id}' LIMIT 0,1;";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
$username = $row['user_name'];
$email = $row['user_email'];
echo "$username<br>";
$show_email = $row['show_email'];
if ($show_email == 1)
{ 
echo "Email:<a href='mailto:$email'>$email</a>";

}
elseif ($show_email == 0)
{
echo "Email:Hidden";
}
}
else {
echo "Invalid user ID passed to page!";
}
?>

<a href="?id=1">Blade</a>

No.

<?php
if (isset($_GET['id'])) {
$user_id = $_GET['id'];
$sql = "SELECT * FROM $user WHERE `user_id`='{$user_id}' LIMIT 0,1;";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
$username = $row['user_name'];
$email = $row['user_email'];
echo "$username<br>";
$show_email = $row['show_email'];
if ($show_email == 1)
{ 
echo "Email:<a href='mailto:$email'>$email</a>";

}
elseif ($show_email == 0)
{
echo "Email:Hidden";
}
}
else {
echo "Invalid user ID passed to page!";
}
?>

 

There.  NOW, to access this page, it'd be:

<a href="profile.php?id=1">Blade</a>

Assuming that the page is named profile.php.  You'd probably make these links on a userlist page and dynamically insert the ID to link to their profile.

i think i might be able to "dynamically create links" but i'm not sure, do i just make an echo for each link and then it will only display them if they are in the database?

 

Here...

<?php
if (isset($_GET['id'])) {
if ((int) $_GET['id'] > 0) {
$user_id = $_GET['id'];
$sql = "SELECT * FROM $user WHERE `user_id`='{$user_id}' LIMIT 0,1;";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
$username = $row['user_name'];
$email = $row['user_email'];
echo "$username<br>";
$show_email = $row['show_email'];
if ($show_email == 1)
{ 
echo "Email:<a href='mailto:$email'>$email</a>";

}
elseif ($show_email == 0)
{
echo "Email:Hidden";
}
exit();
}
else {
echo "Invalid user ID passed to page! <br />";
echo "<a href=\"profile.php\">Return to user list</a>";
exit();
}
}
//No ID passed to page, display user list:
$query = "SELECT user_id, user_name FROM $user";
$result = mysql_query($query) or die("Error:" . mysql_error());
if (mysql_num_rows($result) > 0) {
echo "User List:<br />";
while ($row = mysql_fetch_assoc($result)) {
  echo '<a href="profile.php?id=' . $row['user_id'] . '">' . $row['user_name'] . '</a><br />';
}
}
?>

 

I hate to do it for you, but there you go.  Might be syntax error somewhere, not sure, and you might want to change something at some point, so you can if you want, lol.  It should work like that though.  Save it as profile.php.

 

thanks, i think i was close

mine was

<?php
require_once 'db_connect.php';
if (isset($_GET['id'])) {
$user_id = $_GET['id'];
$sql = "SELECT * FROM $user WHERE `user_id`='{$user_id}' LIMIT 0,1;";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
$username = $row['user_name'];
$email = $row['user_email'];
echo "$username<br>";
$show_email = $row['show_email'];
if ($show_email == 1)
{ 
echo "Email:<a href='mailto:$email'>$email</a>";

}
elseif ($show_email == 0)
{
echo "Email:Hidden";
}
}
?>
Members
<?php 
$sql1 = "SELECT * FROM $user WHERE `user_name` AND `user_id`";
$result1 = mysql_query($sql1);
$row1 = mysql_fetch_assoc($result1);
$username1 = $row1['user_name'];
$userid = $row1['user_id'];
?>
<a href="?id=<?php echo "$userid"; ?>"><?php echo "$username1"; ?></a>

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.