Bejelentkezés és A felhasználó adatainak kiírása
Ü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!
■ 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!
Felhasználók elmentése
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.
Szóval...
ahogy nézem, már eltároltad
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!)
Részletesen
Nem értettem egészen pontosan, mit szeretnél. Szal ha csak a jelenleg bejelentkezett júzert akarod kiiratni, akkor
Műxik!