ZsoltiD Posted January 8, 2007 Posted January 8, 2007 Sziasztok! Újabb problémám van . Az a bajom hogy az oldalamon van egy beléptető script (http://www.zsocccer.extra.hu) Ott a visitors-nál ha beléptek (regiztem egy próba jelszót és fh nevet- fh:proba pass:proba), és lépkedtek a menük között, akkor van, mikor csak úgy meggondolja magát, és hopp, újra a belépésnél találod magad. És ebben az az érdekes, hogy csak ritkán csinálja ezt, legtöbbször működik rendesen, de már többször panaszkodtak a beregisztrált tagok, hogy volt náluk ez az eset. (Amúgy van olyan is, hogy kiírja hogy jelentkezz be, de az a hosszú inaktivitás miatt van, szóval nem ez a prob, mert itt nem ír ki semmit csak újra a bejelentkező oldalra tesz) Egyébként msql-t használ a progi. A rendszer 3 fájlt használ: belepo.php, belepo_ellenorzes.php és function.php. A belepo és persze az összes fájl elején van ez a kód: <?php session_start(); if(isset($_SESSION["engedely"]) AND ($_SESSION["engedely"]=="false") ) { print(""); } Aztán még a belepo.php-ben? <form name="form1" id="form1" method="post" action="belepo_ellenorzes.php"> <table width="280" border="0" cellspacing="0" cellpadding="0"> <tr> <td scope="col"> <div align="left"> <b>Felhasználónév:</b></div> </td> <th scope="col"> <div align="left"> <input name="username" type="text" id="username" /></div> </th> </tr> <tr> <td> <div align="left"> <b>Jelszó:</b></div> <td> <div align="left"> <input name="password" type="password" id="password" /></div> </td> </tr> <tr> <td> </td> <td><b><input type="submit" name="Submit" value="Belépés" /></b></td> </tr> </table> </form> A belepo_ellenorzes.php-ben a következok szerepelnek: <?php session_start(); require_once("function.php"); $username=trim($_POST["username"]); $password=md5(trim($_POST["password"])); //Adatb?zis megny?t?sa $myConn=mysql_connect("zsocccer.extra.sql", "ezt nem mondom meg", "ezt sem"); mysql_select_db("adatb_nev", $myConn);//database_name ?ltal?ban az username! //Ellenorizz?k van e m?r ilyen username az adatb?zisban. $ellenorzes=mysql_query("SELECT username FROM regisztracio WHERE username='".tep_db_input($username)."' and password='".tep_db_input($password)."' "); if(mysql_num_rows($ellenorzes)>=1) { $_SESSION["ok"]="true"; header("Location: http://zsocccer.extra.hu/visitor.php"); exit; } else { //Sajnos nincs ilyen az adatb?zisban $_SESSION["engedely"]="false"; header("Location: belepono.php"); exit; } ?> És végül a function.php -ben szereplő adatok: <?php function tep_db_input($string) { if (function_exists('mysql_real_escape_string')) { return mysql_real_escape_string($string); } elseif (function_exists('mysql_escape_string')) { return mysql_escape_string($string); } return addslashes($string); } ?> Szerintetek mi a probléma (azt hozzáteszem hogy csak néha rosszalkodik...!!)? Üdv. ZsoltiD
Greene Posted January 8, 2007 Posted January 8, 2007 A Session-re gyanakszom, mert elég érdekesen van megírva. Például nincs session_destroy(), ha mondjuk nem jó a felhasználónév. Te meg egyszerűen false-ra állítod a sessiont amit aztán mindig megvizsgálsz, hogy létezik-e és ha igen akkor mindemellett false-e az értéke. Miért nem törlöd a sessiont, és akkor csak annyit kell ellenőrizned, hogy van-e session változó, mert ha van akkor sikerült bejelentkeznie. De ehhez nem kell 2 féle session változó, külön "ok" meg "engedély". Engem a letöltés menünél dobott ki (minden almenü), de miután bejelentkeztem megint akkor nem. Azt is megnézhetnéd esetleg.
ZsoltiD Posted January 9, 2007 Author Posted January 9, 2007 Hi! Az a baj, hogy én még nem nagyon vágom a php-t. Le tudnád írni, hogy Te pontosan hogy javítanál rajta? Előre is köszi! ZsoltiD ui.: De kezdem azt hinni, hogy a szerver szaraxik, mert van egy másfajta beléptető is az oldalon és az is ezt csinálja mostanában, és az nem is mysql-es...
Oke Posted February 14, 2007 Posted February 14, 2007 Megírtam a beléptetõ rendszerem (regisztrációt is), de nem tudom, hogy hogyan tudjam a táblából lekérdezni a belépésnél, hogy érvényes-e a felhasználó név és a jelszó. Segítenétek?
level Posted February 16, 2007 Posted February 16, 2007 <?php //belépés, adatok ellenõrzése if (isset ($_REQUEST['nev'])) { $jelszo = md5($_REQUEST['jelszo']); $nev = $_REQUEST['nev']; //kapcsolódunk require_once('../adatbazis.inc'); adatbazis_megnyitasa(); //megkeressük a felhasználót és a jelszót $azonositas = mysql_query("SELECT jelszo FROM regisztracio WHERE nev = '$nev'") or die ("Nem lehet ellenõrizni a regisztrációt."); //összehasonlítjuk az adatbázisban lévõ jelszóval while ($sor = mysql_fetch_array($azonositas)) { if ($sor['jelszo'] === $jelszo) { $i= setcookie ("belepve", $nev, time() + (60*60*24), "/"); header("location: ../atiranyitjuk.php"); break; } } //ha nem egyezik a jelszó, vagy nincs ilyen felhasználó az adatbázisban (nem jött létre a süti) if (!isset ($i)) { print "Hibás felhasználói név vagy jelszó!"; } //töröljük az átmeneti adattárolóból mysql_free_result($azonositas); //bezárjuk mysql_close(); } Biztosan át kell írnod, de talán segít valamit.
ZsoltiD Posted February 27, 2007 Author Posted February 27, 2007 Köszi, megoldódott a probléma... Üdv.: ZsoltiD
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now