webForumDet fria alternativet

Inlogging/mysql = fel :(

PHPur PHP

3 svar · 175 visningar · startad av toja

Medlem sedan mars 2001218 inlägg
Frågan#1

Va fan är det för fel på min kod. Jag har kollat tusen gånger, det borde stämma!!!! Det är ett loginscript som ska hämta användare ur en databas, det är där det skiter sig!

<?php
	
	include "common_db.php";
	error_reporting(0);
	
	$link_id = db_connect();
	if(!$link_id) die(sql_error());
	
	include "admin_functions.php";
	
	if(!isset($userid)) {
		login_form(0);
		exit;
	}
	else {
		$username = auth_user($userid, $userpassword);
		if(!$username) {
			session_destroy();
			login_form(1); <- Det är här det skiter sig!!!
			exit;
		}
		else {
			session_start();
			$ActiveAt=time();
			session_register("userid");
			session_register("userpassword");
			session_register("ActiveAt");
	
?>

<html> ... bla,bla,bla...

Det finns en function som lyder auth_user($userid, $userpassword); den ser ut så här:

function auth_user($id, $pass) {
		global $link_id;
			
		$result = mysql_query("SELECT name FROM admin_users WHERE userid = '$id' AND password = password('$pass')", $link_id);
		
		if(!mysql_num_rows($result)) return 0;
		else {
			$query_data = mysql_fetch_row($result);
			return $query_data[0];
		}
	}

Sedan har jag en tredje common_db.php som lyder:

	$dbhost = 'localhost';
	$dbusername = 'tommie';
	$dbuserpassword = 'tommiepass';
	$default_dbname = 'hb';
	
	$MYSQL_ERRNO = '';
	$MYSQL_ERROR = '';
	
	function db_connect() {
		global $dbhost, $dbusername, $dbuserpassword, $default_dbname;
		global $MYSQL_ERRNO, $MYSQL_ERROR;
		
		$link_id = mysql_connect($dbhost, $dbusername, $dbuserpassword);
		if(!$link_id) {
			$MYSQL_ERRNO = 0;
			$MYSQL_ERROR = "Anslutningen till databasen på $dbhost misslyckades!";
			return 0;
		}
		else if(empty($dbname) && !mysql_select_db($default_dbname)) {
			$MYSQL_ERRNO = mysql_errno();
			$MYSQL_ERROR = mysql_error();
			return 0;
		}
		else return $link_id;
	}
	
	function sql_error() {
		global $MYSQL_ERRNO, $MYSQL_ERROR;
		
		if(empty($MYSQL_ERROR)) {
			$MYSQL_ERRNO = mysql_errno();
			$MYSQL_ERROR = mysql_error();
		}
		return "$MYSQL_ERRNO: $MYSQL_ERROR";
	}

Alla lösenord, passwords och variabler stämmer, det har jag kollat!

------------------
/Toja phpProgrammer

[Redigerat av toja den 10 maj 2001]

Medlem sedan mars 20007 896 inlägg
#2

Vad får du för felmeddelelande och vad är det exakt som inte fungerar?

------------------
SPiN, bjorne.w@telia.com

-- Fame is a bitch, man [Brad Pitt - Fight Club] --

Medlem sedan sep. 2000438 inlägg
#3

varför ha sådan kod i en databas??

Medlem sedan mars 2001218 inlägg
#4

Hej igen... har suttit och testat lite... ända felet är att crypteringen när den hämtar lösenorrdet i databasen inte fungerar... återkommer om det inte fungerar sen...

------------------
/Toja phpProgrammer

135 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)