Извеждане на username от сесия?

Moonshine_

Registered
Код:
if($_SESSION['logged'] != '73de8dhas7')
{ 
	echo $f1;
} 

if($_POST['action']=='1')
{ 
$data = mysql_query("SELECT * FROM BNET WHERE username LIKE '$username'"); 
while($row = mysql_fetch_array($data))
{ 
$row_username = $row['acct_username']; 
$row_password = $row['acct_passhash1'];
}
$crypted = md5(trim($password1));

if($username == $row_username)
{
	if($row_password == $crypted)
	{
		$_SESSION['logged'] = '73de8dhas7'; 
		$_SESSION['username'] = $row_username; 
		if ($admin == '1')
		{ 
		$_SESSION['admin'] = 'df83hfg7ds';
		}
	}

Как мога след успешен логин да извеждам съобщение тип "Здравей username"? :)
 
Ако съм те разбрал правилно е така:
Код:
if ($_SESSION['username']) echo "Здравей " .  $_SESSION['username'];
?
една препоръка :)
това
Код:
$data = mysql_query("SELECT * FROM BNET WHERE username LIKE '$username'");
го промени на
Код:
$data = mysql_query("SELECT * FROM BNET WHERE username = '$username'");
 
Не става така.. При логин задава на $_SESSION['username'] за стойност потребителското име, с което се логва юзъра, след което го препраща към index.php. Аз искам да направя в index.php да извежда

"Здравей username,
Имате еди колко си лични съобщение
Последното Ви посещение беше еди кога си.."

Нещо такова, но не мога да измисля как да изведа "username", за да мога вече да си напиша заявката към mysql за извеждането на останалите неща за съответния профил..
 
$username ти е сащата като $_SESSION['username']
нещо не мога да загрея :D
echo "Здравей " . $username;
 
В index.php няма променлива $username, тя е само в login.php

Не се сетих за начин, по който мога да взема стойността от login-а, за да я използвам в другите файлове, затова търся начин от сесията евентуално.
 
Ами след като се логне потребителя се създава сесия с име username и името на потребителя.
Това ти трябва.
Код:
echo "Здравей " .  $_SESSION['username'];
Просто трябва да имаш
Код:
session_start();
във файла в който искаш да изкараш името на потребителя.
 
Moonshine_ каза:
Не става.. Изкарва само "Здравей" :(

Странно при мен става.
Сложи това най отгоре.
ob_start();
session_start();

Сигорен ли си че го правиш както трябва.
 
Ами, така мисля..

<?php
ob_start();
session_start();

require_once ('conf_global.php');

$f1 = "<table width='100%' cellpadding='0' cellspacing='0' class='spacer'>
<tr>
<td class='capmain-left'></td>
<td class='capmain'>Вход</td>
<td class='capmain-right'></td>
</tr>
</table>

<table cellpadding='0' cellspacing='0' width='100%' class='spacer'>
<tr>
<td class='main-body'>

<form method='post' action='".$_SERVER['PHP_SELF']."'>
<table cellpadding='0' cellspacing='0' class='center'>
<tr>
<td class='tbl'>Потребителско име</td>
<td class='tbl'><input type='text' name='username' maxlength='12' class='textbox' style='width:200px;' /></td>
</tr>

<tr>
<td class='tbl'>Парола</td>
<td class='tbl'><input type='password' name='password1' maxlength='12' class='textbox' style='width:200px;' /></td>
</tr>

<tr>
<td align='center' colspan='2'><br />
<input type='hidden' name='action' value='1'>
<input type='submit' name='submit' value='Вход в системата' class='button' />
</td>
</tr>
</table>
</table>";
$session_name = $_SESSION['username'];
echo "test - $session_name";


if($_SESSION['logged'] != '73de8dhas7')
{
echo $f1;
}

if($_POST['action']=='1')
{
$data = mysql_query("SELECT * FROM BNET WHERE username = '$username'");
while($row = mysql_fetch_array($data))
{
$row_username = $row['acct_username'];
$row_password = $row['acct_passhash1'];
}
$crypted = pvpgn_hash(trim($password1));

if($username == $row_username)
{
if($row_password == $crypted)
{
$_SESSION['logged'] = '73de8dhas7';
$_SESSION['username'] = $row_username;
if ($admin == '1')
{
$_SESSION['admin'] = 'df83hfg7ds';
}

// echo "<meta HTTP-EQUIV='REFRESH' content='0; url=index.php'>";
$session_name = $_SESSION['username'];
echo "test - $session_name";

}
else
{
echo "<center>Incorrect Password</center>";
die ("");
}
}
}
?>

Кода в синия цвят не иска да изкара user-а, този в червения го изкарва..
 
По тоя начин, със синия код искаш да покажеш сесия, която още не е създадена :idea:
 
vesku каза:
Ако съм те разбрал правилно е така:
Код:
if ($_SESSION['username']) echo "Здравей " .  $_SESSION['username'];
?
една препоръка :)
това
Код:
$data = mysql_query("SELECT * FROM BNET WHERE username LIKE '$username'");
го промени на
Код:
$data = mysql_query("SELECT * FROM BNET WHERE username = '$username'");

Едни казват, че потр. имена е по-добре да се проверяват с LIKE други с =
Кое е по-добре? :idea: :idea:
Почвате да ме обърквате

Извинявам се за офтопика :wink:
 
vivaaa каза:
По тоя начин, със синия код искаш да покажеш сесия, която още не е създадена :idea:

Обаче синия код, ако се промени на
Код:
		$session_name = $_SESSION['logged'];
		echo "test - $session_name";
Работи, а по пътя на логиката и той не трябва, защото и тази сесия се създава в последствие.
 

Back
Горе