ugrás a tartalomhoz

Bejelentkezés és A felhasználó adatainak kiírása

mrjoel · 2007. Jún. 20. (Sze), 20.47
Üdv!
Lenne egy olyan problémám, hogy van egy bejelentkező oldalam ahol a felhasználó be tud jelentkezni ami így néz ki:
<?php
include "config.php";

mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);

/**************************************************
* Ha még nem lépett be
***************************************************/

if ($_SESSION['belepett']!== true)
{
if (isset($_POST['login']))
{ //Ha postolt adatokat
$nick = addslashes($_POST['nev']);
$pass = ($_POST['jelszo']);

$sql = "SELECT * FROM users ";
$sql.= "WHERE (nick='".$nick."'";
$sql.= " AND jelszo='".$pass."')";

$query = mysql_query($sql);

if (mysql_num_rows($query) !== 0)
{ //Helyes nick+pass
$_SESSION['nick'] = addslashes($_POST['nev']);
$_SESSION['belepett'] = true;

header("Location: ".$_SERVER['PHP_SELF']);
}

else
{//Hibás nick+pass
print "Hibás Azonosító vagy jelszó!<br>Amennyiben elfelejtette jelszavát, vegye fel velünk a kapcsolatot.";
}
}
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<table>
<tr>
<td>Azonosító:</td>
<td><input type="text" name="nev" /></td>
<td>Jelszó:</td>
<td><input type="password" name="jelszo" /></td>
<td><input type="submit" name="login" value="Belépés" /></td></tr>
<tr><td colspan="5" align="center"><a href="register.php">Regisztráció</a></td>
</tr>
</table>
</form>
<?php
}//Nem lépett be

/********************************
* Ha már belépett
*******************************/
else
{//Be van lépve

print "Bejelentkezve: ".$_SESSION['nick'];
Print "<br><br><font size=2><strong><a href=\"adat.php\">Adatok megtekintése</strong></font></a>";
print " <br><br><a href=\"logout.php\">Kijelentkezés</a><br />";

}
?>

Ehhez van egy users tábla amiben van id, nick, jelszo, email. Ez tökéletesen működik is, be tud lépni a felhasználó. Ha belépett akkor megjelenik hogy ki lépett be alatta egy link (Adatok megtekintése) és a kijelentkezés. Szóval azt szeretném elérni ha az adatok megtekintésére megy akkor kilistázódjon a felhasználó adatai az adat.php oldalra. Az adat.php scriptje így néz ki:
<?php
session_start();

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

//Ide jöne a bejelentkezett felhasználó adatai amihez egyenlőre ennyi a scriptem/
$ossz = mysql_connect("...........extra.sql", "........", "karen");

mysql_select_db("..........",$ossz);

$sql = "SELECT * FROM proba";

$eredmeny = mysql_query($sql, $ossz) or die(mysql_error());

while ($ujTomb = mysql_fetch_array($eredmeny)) {

$adat = $ujTomb['adat'];

echo "<table border=1><tr><td>Adat: $adat</td></tr></table><br>";
}


}

}
else
{
print "Kérjük jelentkezzen be!";
}

?>

Az adatok táblája a proba tábla ami áll id, nick, adat-ból.

Tehát az a kérdés, hogy hogy lehetne megoldani azt hogy a users tábla nick sora és a proba tábla nick sora alapján az adat.php-ben a loginben bejelntkezett felhasználó adatai jelennének meg a proba táblából.

Előre is köszi a segítségeteket!
 
1

Felhasználók elmentése

janoszen · 2007. Jún. 20. (Sze), 21.32
Eszem ágában sem volt végigolvasni a kódszinező nélkül bevágott egy kilométer kódot (lásd http://weblabor.hu/forumok/temak/18113 ), de nyilván el kell tárolnod azt, hogy ki van belépve és ez alapján csinálsz egy két táblás selectet. Az adatbázis kezelő doksijában nézd meg, hogy kell joint csinálni és pontosan azt csinálj a két táblára.

A gyakorlatban azt is meg kell nézned, hogy mikor volt a legutolsó aktivitása, mert sok felhasználó egyszerűen becsukja az ablakot kilépés nélkül. Hogy mennyi idő után lépteted ki a júzert, az a Te dolgod.
2

Szóval...

mrjoel · 2007. Jún. 21. (Cs), 11.52
Tőled már megszoktam hogy elég szúrkálódós vagy, de mindegy. Azt hogy kivel vagyok belépve milyen kóddal tudom eltárolni és ezt a login.php-ben tegyem? A join az már fog menni. Azért köszi a választ!
3

ahogy nézem, már eltároltad

Táskai Zsolt · 2007. Jún. 21. (Cs), 13.52
ez a sor legalábbis ezt célozza:
$_SESSION['nick'] = addslashes($_POST['nev']);
szóval csak a sessionből kell kivenned a nevet, és azt tenni a joinos lekérdezésbe.

amúgy az SQL injection ellen - tudtommal - nem elég az addslashes, erre figyelj.

jó munkát,
T
(a kódszínező használata tényleg segítene a válaszadásban!)
4

Részletesen

janoszen · 2007. Jún. 21. (Cs), 15.56
Valóban. Főleg ha valaki nem veszi a fáradtságot, hogy a szurkálódásra használható energiámat a problémamegoldásra használjam. :D

Nem értettem egészen pontosan, mit szeretnél. Szal ha csak a jelenleg bejelentkezett júzert akarod kiiratni, akkor
<?php mysql_query("SELECT * FROM users WHERE username=\"" . mysql_real_escape_string($_SESSION['user']) . "\""); ?>
ezt bővítsd ki.
5

Műxik!

mrjoel · 2007. Jún. 21. (Cs), 16.14
Nagyon szépen köszi a segítségeket! Minden rendben működik!