Posting this for a friend here is his question...

Thanks in Advance.


hey, this is my first post on these forums, i have just started learning php after doing no coding whatsoever for a while. i have to successfully get past this first, so here goes.

i have a site, where you login in, and then i want to show stats (name, favourite football club, games played, goals scored etc)

i have this file called view_profile.php that then links to view_profile.tpl.php.

the error im getting is 'There was no username entered in the URL.'

I think all that need to happen is for it to get the right username that your logged in under, but this is not showing it, can someone tell me what is missing?

Also, if you fancy helping to complete this website, and play fifa 08/09, please give me a shout

<?php

require "global.php";
$body = new template(TPL_ROOT);
check_login();

if(!$_GET['get_username'])
{
full_error("Error", "There was no username entered in the URL.");
exit;
}
$get_username = secure_input($_GET['get_username']);
$get_username = str_replace("_", " ", $get_username);
$user_query = $mysql->query("SELECT username, user_level, real_name, favourite_clubs, age, short_bio, nationality, second_nationality, positions, register_timestamp, lastlogin_timestamp FROM users WHERE username='".$get_username."'");
if($mysql->num_rows($user_query) < 1)
{
full_error("Error", "There is no user with the name of, <strong>".$get_username."</strong>.");
exit;
}
$user_results = $mysql->fetch_array($user_query);
$title = $user_results['username'];

$body->set('user_results', $user_results);

$tpl->set('title', $title);
$body->set('error', null);
$tpl->set('body', $body->fetch("view_profile.tpl.php"));

echo $tpl->fetch('template.tpl.php');

$mysql->close();

?>
Attachments
<?php

require "global.php";
$body = new template(TPL_ROOT);

if(!$_GET['username'])
{
	full_error("Error", "There was no username entered in the URL.");
	exit;
}
$get_username = secure_input($_GET['username']);
$get_username = str_replace("_", " ", $get_username);
$user_query = $mysql->query("SELECT username, user_level, real_name, favourite_clubs, age, short_bio, nationality, second_nationality, positions, register_timestamp, lastlogin_timestamp  FROM users WHERE username='".$username."'");
if($mysql->num_rows($user_query) < 1)
{
	full_error("Error", "There is no user with the name of, <strong>".$username."</strong>.");
	exit;
}
$user_results = $mysql->fetch_array($user_query);
$title = $user_results['username'];

$body->set('user_results', $user_results);

$tpl->set('title', $title);
$body->set('error', null);
$tpl->set('body', $body->fetch("view_profile.tpl.php"));

echo $tpl->fetch('template.tpl.php');

$mysql->close();

?>
<?
				if($user_results['user_level'] == USER_LEVEL)
				{
					$user_level = "Member";
				}
				elseif($user_results['user_level'] == MODERATOR_LEVEL)
				{
					$user_level = "Moderator";
				}
				else
				{
					$user_level = "Administrator";
				}

				if($user_results['reputation'] < 2)
				{
					$reputation = "Never going to be a fisherman";
				}
				elseif($user_results['reputation'] < 3)
				{
					$reputation = "Need to work on my manners";
				}
				elseif($user_results['reputation'] < 4)
				{
					$reputation = "I'm alreet me!";
				}
				elseif($user_results['reputation'] < 5)
				{
					$reputation = "I'm a good boy now mummy";
				}
				elseif($user_results['reputation'] < 6)
				{
					$reputation = "You love me, where do I sign...?";
				}

				$club = "Free Agent";
			?>
			<div id="profile">
				<table width="100%">
					<tr>
						<td>Favourite Club(s)</td>
						<td><?=$user_results['favourite_clubs']?></td>
						<td>Your Reputation Is: (<?=$reputation?>)</td>
					</tr>
					<tr>
						<td>Club</td>
						<td><?=$club?></td>
				</table>
			</div>

Hi there,

I believe the problem here is this may not be entirely your system (correct me if i'm wrong here). If you've just started coding PHP, as you've stated, I doubt you'll have reached templating or advanced security coding like this.

However, the problem lies in the following statement:

if(!$_GET['get_username'])
{
full_error("Error", "There was no username entered in the URL.");
exit;
}

The page is expecting a GET parameter named "get_username", which means your url should look like this:

view_profile.php?get_username=heenix

As a side note, .tpl.php or .tpl files are usually Smarty Template files so I'm not sure as to why you would want to link to them?

Christopher Lord.

The above posters are correct, it's looking for a variable passed to it through the address bar. If this is user data make sure you that the function "secure_input()" is properly sanitizing the information. What php functions is this function using?

This article has been dead for over six months. Start a new discussion instead.