Inlogging/mysql = fel :(

PHP

3 svar · 180 visningar · startad av toja

Medlem sedan mars 2001218 inlägg
Trådstart#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!

Medlem sedan mars 20007 896 inlägg
#2

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

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

259 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)