Ik probeer een inlogsysteem te bouwen waarin ook de controle zit om te kijken of de gebruikersnaam al bestaat.

Dit doen we met


function geregistreerd($var,$methode) {
	$check1 = mysql_result(mysql_query("SELECT COUNT(gebruikersnaam) FROM leden WHERE ".$methode."='".$var."'"),0);
	if($check == 0) {
		return FALSE; // nog niet geregistreerd
	} else {
		return TRUE; // reeds geregistreerd
	}


In de registratiepagina roep ik via deze code de functie aan om dit te controleren


		if (geregistreerd($_POST['naam'],gebruikersnaam)) {
		echo "Deze gebruikersnaam is al in gebruik";
		}


Maar het werkt niet. Het script denkt dat de naam nog steeds niet is geregistreerd.

Iemand ideeën ?
Breng een UNIQUE constraint aan op de gebruikersnaam in de database, als je dan eenzelfde naam probeert in te voeren krijg je daar vanzelf een foutmelding op.

MySQL zal in dat geval foutnummer 1062 teruggeven (mysql_errno()), waardoor jij weet dat de gebruikersnaam al bestaat.
Duplicate entry 'vvvvvv' for key 2

Krijg ik terug. Dat even veranderen in een mooie error en het is gefixed :)

<?php
    if (mysql_errno () == 1062) {
        echo 'Deze record bestaat al';
    }
?>
if (geregistreerd($_POST['naam'],gebruikersnaam)) {
        echo "Deze gebruikersnaam is al in gebruik";
        }


Moet sowieso bij 'gebruikersnaam' nog haakjes krijg.
Dus dit:

if (geregistreerd($_POST['naam'], "gebruikersnaam")) {
        echo "Deze gebruikersnaam is al in gebruik";
        }


Toch?
Immers het is geen constante of variable.

Reageren