webForumDet fria alternativet

Inlogging/mysql = fel :(

3 svar · 175 visningar · startad av toja

tojaMedlem sedan mars 2001218 inlägg
#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]

SPiNMedlem 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] --

QonosMedlem sedan sep. 2000438 inlägg
#3

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

tojaMedlem 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

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