ugrás a tartalomhoz

Jelszavas védelem weblapra, adatbázisban tárolt nicknévvel és jelszóval

haho · 2008. Szep. 8. (H), 22.29
Hello! Amint az a kód elején látható, a kód nem saját forrás, de illően feltüntettem és nem töröltem ki a forrást.
Szóval lenne az alább látható kód. Nagyon szuper kis kód, mert ha belépek egy oldalra, ahol ez a kód megtalálható először két szövegdoboz fogad, amibe be kell írni a kódban beállított felhasználónevet és jelszót. Ha ezek helyesek akkor be is léptet az adott oldalra, ha nem lehet újra próbálkozni!

Szép és jó, már csak egy apróságot szeretnék még megvalósítani, ami nekem, magamtól sajnos nem megy. Ez a következő lenne:

Ezt a kódot úgy kellene átrenoválni, illetve ha nem megoldható kellene nekem egy hasonló feladatot ellátó kód, ami MYSQL adatbázisból olvassa be a felhasználónevet és a jelszót.

Van nekem egy "felhasznalok" nevezetű táblám, a következő mezőkkel: "id", "nickname", "pass". Na most csináltam egy on-line űrlapot, amivel új felhasználóneveket és jelszavakat tudok feltölteni ebbe a táblába. És azt szeretném, hogy a jelszavas védelmem (ez a kód vagy egy hasonló funkciókkal bíró kód) is e szerint működjön, azaz adatbázisból egyeztesse a felhasználónevet és a hozzá tartozó jelszót.

Tud nekem ebben valaki segíteni?
Előre is nagyon köszönöm a megoldásokat!
<?php

# Simple password protection
#
# (c) http://www.phpbuddy.com
# Author: Ranjit Kumar
# Feel free to use this script but keep this message intact!
# 
# To protect a page include this file in your PHP pages!

session_start();

$admin_user_name = "JELSZÓ";
$admin_password = "FELHASZNÉV";

if (!isset($HTTP_SESSION_VARS['user'])) {
	
	if(isset($HTTP_POST_VARS['u_name'])) 
		$u_name = $HTTP_POST_VARS['u_name'];
	
	if(isset($HTTP_POST_VARS['u_password'])) 
		$u_password = $HTTP_POST_VARS['u_password'];
	
	if(!isset($u_name)) {
		?>


		<HTML>
		<HEAD>
		<TITLE><?php echo $HTTP_SERVER_VARS['HTTP_HOST']; ?> : Authentication Required</TITLE>
		</HEAD>
		<BODY bgcolor=#ffffff>
		<table border=0 cellspacing=0 cellpadding=0 width=100%>
			 <TR><TD>
			 <font face=verdana size=2><B>(A belépéshez add meg felhasználóneved és jelszavad!)</b> </font></td>
			 </tr></table>
		<P></P>
		<font face=verdana size=2>
		<center>
		<?php
		$form_to = "http://$HTTP_SERVER_VARS[HTTP_HOST]$HTTP_SERVER_VARS[PHP_SELF]";
		
		if(isset($HTTP_SERVER_VARS["QUERY_STRING"]))
		$form_to = $form_to ."?". $HTTP_SERVER_VARS["QUERY_STRING"];
		
		?>
		<form method=post action=<?php echo $form_to; ?>>
		<table border=0 width=350>
		<TR>
		<TD><font face=verdana size=2><B>Felhasználónév</B></font></TD>
		<TD><font face=verdana size=2><input type=text name=u_name size=20></font></TD></TR>
		<TR>
		<TD><font face=verdana size=2><B>Jelszó</B></font></TD>
		<TD><font face=verdana size=2><input type=password name=u_password size=20></font></TD>
		</TR>
		</table>
		<input type=submit value=Login></form>
		</center>
		</font>
		</BODY>
		</HTML>
		

		<?php
		exit;
	}
	else {
		
		function login_error($host,$php_self) {
			echo "<HTML><HEAD>
			<TITLE>$host :  Administration</TITLE>
			</HEAD><BODY bgcolor=#ffffff>
			<table border=0 cellspacing=0 cellpadding=0 width=100%>
				 <TR><TD align=left>
				 <font face=verdana size=2><B>Hibás felhasználónév és/vagy jelszó!</b> </font></td>
				 </tr></table>
			<P></P>
			<font face=verdana size=2>
			<center>";
						
			echo "Nem sikerült belépned a feltöltő felületre!
			<B><a href=$php_self>Próbáld újra!</a></b><P>
			</center>
			</font>
			</BODY>
			</HTML>";
			session_unregister("adb_password");
			session_unregister("user");
			exit;
		}
		
		$user_checked_passed = false;
		
		
		if(isset($HTTP_SESSION_VARS['adb_password'])) {
			
			$adb_session_password = $HTTP_SESSION_VARS['adb_password'];
			
			if($admin_password != $adb_session_password) 
				login_error($HTTP_SERVER_VARS['HTTP_HOST'],$HTTP_SERVER_VARS['PHP_SELF']);
			else {
				$user_checked_passed = true;
			}
		}
		
		
		if($user_checked_passed == false) {
			
			if(strlen($u_name)< 2) 
				login_error($HTTP_SERVER_VARS['HTTP_HOST'],$HTTP_SERVER_VARS['PHP_SELF']);
			
			if($admin_user_name != $u_name) //if username not correct
				login_error($HTTP_SERVER_VARS['HTTP_HOST'],$HTTP_SERVER_VARS['PHP_SELF']);		
			
			if(isset($admin_password)) {
				
				if($admin_password == $u_password) {
					
					session_register("adb_password");
					session_register("user");
					
					$adb_password = $admin_password;
					$user = $u_name;
				}
				else { //password in-correct
					login_error($HTTP_SERVER_VARS['HTTP_HOST'],$HTTP_SERVER_VARS['PHP_SELF']);
				}
			}
			else {
				login_error($HTTP_SERVER_VARS['HTTP_HOST'],$HTTP_SERVER_VARS['PHP_SELF']);
			}
				
			$page_location = $HTTP_SERVER_VARS['PHP_SELF'];
			if(isset($HTTP_SERVER_VARS["QUERY_STRING"]))
			$page_location = $page_location ."?". $HTTP_SERVER_VARS["QUERY_STRING"];
			
			header ("Location: ". $page_location);
		}
	}
}
?>
 
1

Mi a kérédés?

vbence · 2008. Szep. 8. (H), 23.03
Abból, hogy van egy űrlapod, amivel felveszel új felhasználókat úgy értelmezem, valamilyen szinten tudsz bánni az SQL-lel, és ezt képes vagy PHP-ból tenni. Ezek után mi az az akadály, amit egyedül nem sikerül leküzdened?
2

A problémám pedig, hogy:

haho · 2008. Szep. 8. (H), 23.46
Teljesen igazad van! A problémám ugyanis az, hogy csak valamilyen szinten tudok bánni az SQL-el. : )

Továbbra sem értem, hogyan lehet a jelenleg a kódban található felhasznév és jelszó helyett az SQL-ben tároltak segítségével beléptetni. : (
3

95-104. sor

Szekeres Gergő · 2008. Szep. 9. (K), 08.36
itt történik a hitelesítés, azonban itt nem sql táblából tőrténik. ide kell írni egy queryt, ami lekérdez egy adott táblából.

Amúgy szerintem ennél jobb megoldásokat is találsz, a kódolási stílus nagyon zavaros, a megjelenés bele van kódolva a html kódba, a session_register függvényt már nem használjuk stb.
4

Query

haho · 2008. Szep. 9. (K), 09.45
Igen értem. Egy másik kódban találkoztam tényleg a query-vel, de az a kód meg nem működött ezért otthagytam, pedig rendesen átírtam benne mindent a saját adatbázisom adataira.
Mindenesetre akkor query a megoldást, ez alapján próbálok egy újabb kódot keresni.
Köszi
5

auth class

Szekeres Gergő · 2008. Szep. 9. (K), 10.02
valami ilyesmiket keress.