adatok ellenörzésénél hiba
Sziasztok! Ismét gyerekes gondjaim vannak. Íme a kód, amivel a gond van:
Ami a gond, hogy semmi nem jelenik meg, mikor ide lép az oldal (http://www.netnap.hu/htmls/index.php?page=admin.php - ezen meg nézhetitek az eredményt.)
Amúgy ez egy olyan beléptető rendszer lenne, ami adatbázisból szedi ki a felhasználót, és ellenörzi hogy létezik e.
Előre is köszi a segítséget.
www.netnap.hu
■ <?php
require_once(connect.php);
//kerkateg = mysql_query("SELECT * FROM kategoria where fokateg = " . $fokateg[0]);
$keres = mysql_query("SELECT fnev FROM adminfelhasznalo where (fjelszo=.$fjelszo.)");
//$ellenorzo = mysql_fetch_array($keres);
if($keres!=$fnev)
{
print('
<script language="JavaScript" type="text/JavaScript">
alert("Nincs ilyen jelszó és/vagy felhasználói név.");
history.back(1);
</script>
');
}
else
{
$keres2 = mysql_query("SELECT fjog FROM adminfelhasznalo where (fjelszo=. $fjelszo.)");
$ellenorzes2 = mysql_fetch_row($keres2);
if($tipus=$ellenorzes2)
{
if($tipus="fc")
{
$page="uj_cikk.php&fnev=".$fnev."&fjelszo=".$fjelszo;
}
if($tipus="fg")
{
$page="uj_galeria.php&fnev=".$fnev."&fjelszo=".$fjelszo;
}
if($tipus="fa")
{
$page="mod_adatb.php&fnev=".$fnev."&fjelszo=".$fjelszo;
}
if($tipus="ff")
{
$page="mod_felhaszn.php&fnev=".$fnev."&fjelszo=".$fjelszo;
}
}
else
{
print('
<script language="JavaScript" type="text/JavaScript">
alert("Nincs jogosultságod a belépéshez. Próbálkozz újra vagy keresdd meg az illetékest!");
history.back(1);
</script>
');
}
print('<a href="index.php?page='.$page.'>Adatok megfeleltek. Kattints ide a belépéshez!</a>');
}
?>
require_once(connect.php);
//kerkateg = mysql_query("SELECT * FROM kategoria where fokateg = " . $fokateg[0]);
$keres = mysql_query("SELECT fnev FROM adminfelhasznalo where (fjelszo=.$fjelszo.)");
//$ellenorzo = mysql_fetch_array($keres);
if($keres!=$fnev)
{
print('
<script language="JavaScript" type="text/JavaScript">
alert("Nincs ilyen jelszó és/vagy felhasználói név.");
history.back(1);
</script>
');
}
else
{
$keres2 = mysql_query("SELECT fjog FROM adminfelhasznalo where (fjelszo=. $fjelszo.)");
$ellenorzes2 = mysql_fetch_row($keres2);
if($tipus=$ellenorzes2)
{
if($tipus="fc")
{
$page="uj_cikk.php&fnev=".$fnev."&fjelszo=".$fjelszo;
}
if($tipus="fg")
{
$page="uj_galeria.php&fnev=".$fnev."&fjelszo=".$fjelszo;
}
if($tipus="fa")
{
$page="mod_adatb.php&fnev=".$fnev."&fjelszo=".$fjelszo;
}
if($tipus="ff")
{
$page="mod_felhaszn.php&fnev=".$fnev."&fjelszo=".$fjelszo;
}
}
else
{
print('
<script language="JavaScript" type="text/JavaScript">
alert("Nincs jogosultságod a belépéshez. Próbálkozz újra vagy keresdd meg az illetékest!");
history.back(1);
</script>
');
}
print('<a href="index.php?page='.$page.'>Adatok megfeleltek. Kattints ide a belépéshez!</a>');
}
?>
Ami a gond, hogy semmi nem jelenik meg, mikor ide lép az oldal (http://www.netnap.hu/htmls/index.php?page=admin.php - ezen meg nézhetitek az eredményt.)
Amúgy ez egy olyan beléptető rendszer lenne, ami adatbázisból szedi ki a felhasználót, és ellenörzi hogy létezik e.
Előre is köszi a segítséget.
www.netnap.hu
...
sztem ez vagy ebben a formában jó:
mysql_query("SELECT fnev FROM adminfelhasznalo where (fjelszo=$fjelszo)");
vagy ebben a formában:
mysql_query("SELECT fnev FROM adminfelhasznalo where (fjelszo=".$fjelszo.")");
Szóval az idézőjelek körül van a baj, így elsőre...
Egyébként a where-nél jelen esetben felesleges a zárójelezés
P][G
felhasznalobaratsag
Nekem ezen a scriptes figyelmezteto megoldason akadt meg a szemem! Ez nem tul felhasznalobarat ebben a formaban, es elkepzelheto, hogy javascriptet letiltott emberke nem fogja megkapni az uzenetet. Tudom hogy admin felulet, igy keves embert erint es elo lehet irni dolgokat de ennek van sokkal egyszerubb es szebb megoldas is.
A PHP fajlt kell ugy szervezni, hogy a belepo formot kirakja ugyanugy egy hibajelzes uzenettel az elejen, hogy nem sikerult a beleptetes es probalja meg ujra.
A jelszavakat mindig kodolva (egyiranyu kodolassal) taroljuk!
A beleptetes egyebkent logikai hibas is ha jol ertlemezem. Ha ugyanis 2 adminnak veletlenul ugyanaz a jelszava akkor a select-nek 2 mezot kell visszaadni. Ha eppen a masik ember nevet adja vissza akkor a beleptetes ugyanugy hibat jelez. (Bar igazabol mintha nem jol kezelned le a visszaadott erteket sem!)
A végén: ha a user sikeresen azonositva lett akkor be kell leptetni es nem egy linket kell adni neki, hogy oda kattintva belephet. Ez plussz felesleges lepes.
tényleg rossz volt teljesen a "rendszerke+
//adatbázishoz csatlakozás
require_once("connect.php");
//adatok keresése a megadott jognak megfelelően
$keres = mysql_query("SELECT * from adminsite WHERE fjog=".$fjog);
//jogok ellenörzése
$jogok = mysql_query("SELECT fjog FROM adminfelhaszn WHERE fjog="$fjog);
// nem létező jog esetén
if($fjog!==$jogok)
{
print('
<script language="JavaScript" type="text/JavaScript">
alert("Hibás jelszó (esetleg felhasználói név is rossz).");
history.back(1);
</script>
');
}
// ha megfelelő a jog
else
{
// a html kod a dbben van tárolva, ezt listázza ki
$keres2 = mysql_query("SELECT htmlkod FROM adminsite WHERE fjog=".$fjog);
while($eredmeny = mysql_fetch_row($keres2))
{
//majd nyomtatja
print($eredmeny[2]);
}
}
?>
MSzilveszter - http://www.netnap.hu
Hát ez nem ennyire egyszerű
// nem létező jog esetén
if($fjog!==$jogok)
egyrészt megint nem jó egy idézőjelezés, vagy a '.' (pont) hiányzik.
Másrészt a mysql_query leírását, ha megnézed, akkor látod, hogy:
...
Returns a positive mSQL query identifier on success, or FALSE on error.
Szóval ezt nem tudod csak úgy összehasonlítani egy szöveges vagy numerikus változóval.
Nézz körül valamilyen mysql_fetch_ kezdetű függvények táján!
P][G