Query via PHP werkt niet

Status
Niet open voor verdere reacties.

falcojugger

Gebruiker
Lid geworden
29 dec 2008
Berichten
279
PHP:
<?php
session_start();
require_once "config.php";

// Als er werkelijk vanuit een activatiemail gelinkt wordt -> activeren
if(isset($_GET['link']))
{
	$activatiecode = $_GET['link'];
	$activatiecode = substr($activatiecode, 16, 32);
	$gegevens = mysql_query("SELECT id, user, level FROM users WHERE password = '".$activatiecode."'") or die ("Error connecting to database");
	
	// Controle of het bestaat in de database
	if(mysql_num_rows($gegevens) > 0) {
		$row = mysql_fetch_assoc($gegevens);
			
		// Gebruiker is al geactiveerd
		if($row['level'] != 0){
			echo "Account is al geactiveerd.";
			header('refresh:3 url=login.php');
		}
		// Activeren
		else{
			$activeer = mysql_query("UPDATE users SET level = '1' WHERE ".$row['password']." = ".$activatiecode."") or die ("Error connecting to database");
			echo "Account is geactiveerd.";
			header('refresh:3 url=index.php');
		}
	}
	
	else
	{echo "FOUT!";}
}

// Hacker poging? gewoon doorsturen
else
{
	header('Location: index.php');
}
?>

Mijn resultaat van wat ik krijg te zien: FOUT!
Anders gezegd: hij vindt in mijn database niks van wat ik wil selecteren: een gebruiker met bepaalde overeenkomst, namelijk het wachtwoord.

Wat doe ik hier fout??
Ps: het moet de query zijn want ik heb het getest door $row['password'] letterlijk te kopieren vanuit mijn database...
 
Beetje debuggen he...

PHP:
else
	{echo "FOUT!";}
vervangen door
PHP:
else
	{echo 'Er is een fout opgetreden! MySQL zegt:'. mysql_error();}
Zo krijg je tenminste een fatsoenlijke melding ;)
 
nou dat is het probleem zo'n beetje: ik krijg geen foutmelding.
er zit geen fout in de query in de zin van een spellingsfout of verkeerde structuur, maar hij slaat de if over. Dit zou betekenen dat hij dus geen resultaat heeft gevonden.
maar het opgegeven wachtwoord uit de database kopieer ik letterlijk
 
Doe eens echo voor je de query uitvoert met de inhoud van de query:
Code:
SELECT id, user, level FROM users WHERE password = '".$activatiecode."'

En voer die eens in op phpMyAdmin? Dan weet je zeker dat je de query uitvoert die je uit denkt te voeren.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan