ugrás a tartalomhoz

adatok ellenörzésénél hiba

MSzilveszter · 2005. Május. 23. (H), 14.15
Sziasztok! Ismét gyerekes gondjaim vannak. Íme a kód, amivel a gond van:

<?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>');
}

?>


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
 
1

...

PiG · 2005. Május. 23. (H), 14.33
mysql_query("SELECT fnev FROM adminfelhasznalo where (fjelszo=.$fjelszo.)");

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
2

felhasznalobaratsag

Jano · 2005. Május. 23. (H), 15.31
Hello!

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.
3

tényleg rossz volt teljesen a "rendszerke+

MSzilveszter · 2005. Május. 23. (H), 16.01
Sziasztok ismét én vagyok. Kipróbáltam valami mást, bár itt meg még a jelszó ellenörzés nincs bele iktatva, még.
<?php
//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
4

Hát ez nem ennyire egyszerű

PiG · 2005. Május. 23. (H), 18.25
$jogok = mysql_query("SELECT fjog FROM adminfelhaszn WHERE fjog="$fjog);
// 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:
msql_query -- Send mSQL query
...
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