Hogyan lehet megoldani azt, hogy a valós adatokat írja ki a weblap?
Sessionnal már meglett oldva, hogy bejelentkezve maradjunk, de hogy lehetne megoldani azt, hogy pl a rangot azt tényleg ahhoz a felhasználóhoz mutassa? mert most az elsőnek regisztrált tagnak mutatja a rangját az összes felhasználónak.
<?php
session_start();
?>
<?php
include ('config.php');
include ('felso.php');
?>
<?php
if ( $_GET['page'] == "kilepes" )
{
header("Location: belepes.php");
session_destroy();
}
$lekerdezes = mysql_fetch_assoc(mysql_query("SELECT * FROM userek"));
if ( isset($_SESSION['felhasznalo']) )
{
echo "<b>Üdvözlünk:</b> " .$_SESSION['felhasznalo']."<br />";
echo "<b>Rangod:</b> " .$lekerdezes['rang']."<br />";
echo "<b>Regisztrációd ideje:</b> ".$lekerdezes['regdatum']."<br />";
echo "<a href='?page=kilepes'>Kijelentkezés</a> <br />";
}
else
{
header('Location: belepes.php');
}
include ('also.php');
?>
Márpedig ha a rangot és a reg időt jól írja ki akkor ezt is jól kellene.
Valami elírás lesz ott.
Pl hiányzik a ; vagy az id nem az id nevű oszlopban van, vagy bármi más.
Biztos, hogy van érték az id mezőben?
Most már kiírja nem tudom mi lehetett a gond :S
Annyit csináltam hogy á írtam a * userekre : $lekerdezes = mysql_fetch_assoc(mysql_query("SELECT userek FROM userek WHERE felhasznalo='".$_SESSION['felhasznalo']."'"));
majd hibát jelzett és vissza ezt :)
$lekerdezes = mysql_fetch_assoc(mysql_query("SELECT * FROM userek WHERE felhasznalo='".$_SESSION['felhasznalo']."'"));
<?php
session_start();
?>
<?php
include ('config.php');
include ('felso.php');
?>
<?php
if ( $_GET['page'] == "kilepes" )
{
header("Location: belepes.php");
session_destroy();
}
$lekerdezes = mysql_fetch_assoc(mysql_query("SELECT * FROM userek WHERE felhasznalo='".$_SESSION['felhasznalo']."'"));
if ( isset($_SESSION['felhasznalo']) )
{
echo "<b>Üdvözlünk:</b> " .$_SESSION['felhasznalo']."<br />";
echo "<b>Rangod:</b> " .$lekerdezes['rang']."<br />";
echo "<b>id:</b>" .$lekerdezes['id']."<br />";
echo "<b>Regisztrációd ideje:</b> ".$lekerdezes['regdatum']."<br />";
if ( $lekerdezes['rang'] == "Admin" )
{
echo "<fonr color='red'><a href=''>Adminisztráció</a></font> <br />";
}
echo "<a href='?page=kilepes'>Kijelentkezés</a> <br />";
}
else
{
header('Location: belepes.php');
}
include ('also.php');
?>
Ja hát nem csoda, hogy hibát jelzett.
Az userek táblában van egyáltalán userek oszlop?
Amúgy is ha több adatot olvasol ki akkor inkább jobb a *, azaz az össze mező lekérdezése.
Áh megvan :)
Most minden okés :)
Az volt a baj, hogy ha a bejelentkezés résznél ezt akartam használni:
$bejelentkezes = mysql_query("SELECT * FROM userek WHERE felhasznalo='$felhasznalo' AND jelszo='$jelszo'");
Tehát nem raktam mysql_fetch_assoc-ba
így már jó:
$bejelentkezes = mysql_query("SELECT * FROM userek WHERE felhasznalo='$felhasznalo' AND jelszo='$jelszo'");
if ( mysql_num_rows($bejelentkezes) != 0 )
{
$lekerdezes = mysql_fetch_assoc($bejelentkezes);
$_SESSION['felhasznalo'] = $bejelentkezes['felhasznalo'];
$_SESSION['user_id'] = $lekerdezes['id'];
header("Location: belepes2.php");
}
Este van már azért is tévedhetek :)
Már csak a jelszó kódolását kellene majd megcsinálni én nem értek hozzá majd tudnál abban segíteni?
Most megyek pihenni jó éjszakát :)
Ha egy másik táblában kell a felhasználóra utalni akkor is érdemes az id-vel tenni, optimálisabb a rendszernek.
Milyen weboldalt csinálsz ha nem titok?
Hát végól is nem csinálok weblapot :)
Vagy is szeretnék majd egy közösségi oldalt volt egy filmes oldalam meg lesz is egy a közeljövőben, régebben php fusion-t használtam, de szeretnék saját kézzel írt weblapot egyenlőre ez csak gyakorlás céljából csinálom :)
Itt megtekinthető: [link]
Tudom, hogy nem valami jó de valahol el kell kezdeni ;)
Kódolás módosítása az update paranccsal történik:
$kodolas = "UPDATE userek SET jelszo = SHA(jelszo)";
mysqli_query($dbc, $kodolas);
A $dbc az adatbézis adatok (név, user, jelszó, adatbázis név)
FONTOS!
1, elötte a jelszó mezőt 40 karakteres varchar mezővé kell alakítani.
2, A fenti kódot csak egyszer futtasd le (sikeresen), mert ha a kódolást is átkódolja akkor kuka az egész.
Jobb ha csinálsz egy tábla mentést előtte.
3, Ha sikerült az átkódolás, akkor onnantól a WHERE záradék már nem jelszo = '$jelszo' lesz hanem jelszo = SHA('$jelszo') lesz különben hibás lesz az eredmény
+1
Ja igen és innentől kezdve nem jelszó emlékeztető van, hanem új jelszó kérése, de nagyjából ez a biztos jele, hogy egy rendszer biztonságos-e.
Ahol van jelszó emlékeztető az problémás.
Na ez is egy külön mutatvány. :)
Jó gyakorlást, megyek már én is.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!