mysql_num_rows andere functie?

Status
Niet open voor verdere reacties.
Lees de quote nog eens door en dan had je gezien dat ik aan het aanpassen was... Zie vorige bericht dus...

Het mag dan wel niet de oplossing zijn, maar dat betekent nog niet dat het goed is...

Je stuurt de query al door naar de database bij $res_1 en $res_2 dus bij mysql_num_rows hoef je alleen maar $res_1 of $res_2 aan te roepen.
 
Dat is haast zeker de fout geweest... Het was mij nog niet eens opgevallen. :(

Inderdaad, alleen de queries in dat bestand...
PHP:
//Hele database connectie nog wel even invoeren...

$slashed_username = " "; //Zelf wat invullen
$slashed_email = " "; //Idem dito

$res_1 = mysql_query("SELECT * FROM gebruikers WHERE username='$slashed_username'") or die(mysql_error()); 
$res_2 = mysql_query("SELECT * FROM gebruikers WHERE email='$slashed_email'") or die(mysql_error());  

if(mysql_num_rows($res_1) !=0)
{
  echo "Er zijn gebruikers met de naam $slashed_username";
}
if(mysql_num_rows($res_2) !=0)
{
  echo "<br /> Er zijn gebruikers met het e-mailadres $slashed_email";
}
OK bedankt! Ik zou het vanmiddag proberen.
 
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/robin/pslogon/new/registreer.php on line 76

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/robin/pslogon/new/registreer.php on line 80

Zo als je kan zien nog steeds dezelfde foutmelding.

De code die ik nu gebruik:
PHP:
<?
    include("config.php");
?>
<html>

<head>
    <title>Registreer</title>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<?
     function makekey($num)
    {
        // genereer het random paswoord
        mt_srand((double)microtime()*1000000);

        // loop totdat het $pass(woord) dezelfde lengte heeft als $num
        while (strlen($pass) <= $num)
        {
            $i = chr(mt_rand (0,255));
            if (eregi("^[a-z0-9]$", $i))
            {
				$pass = $pass.$i;	
			}         
        }

        // return het random paswoord
        return ($pass);
        }
   	$activatie_url= "http://ltech001.speed.planet.nl/robin/pslogon";
	$key = makekey(5);

$slashed_username = addslashes($_POST['username']);
$slashed_email = addslashes($_POST['email']);

if($_POST['registreer'])
{
	$res_1 = mysql_query("SELECT * FROM gebruikers WHERE username='$slashed_username'") or die(mysql_error()); 
	$res_2 = mysql_query("SELECT * FROM gebruikers WHERE email='$slashed_email'") or die(mysql_error());  
    $check_email = check_mail($_POST['email']);
    $res = mysql_query("SELECT * FROM users WHERE name='".$naam."'") or die(mysql_error());
}
    if($_POST['username'] == "" || $_POST['password'] == "" || $_POST['password2'] == "" || $_POST['recv'] == "" || $_POST['reca'] == "" || $_POST['email'] == "" || $_POST['password'] !== $_POST['password2'] || mysql_num_rows($username_query) >= 1 || mysql_num_rows($email_query) >= 1 || strlen($_POST['password']) < 6 || strlen($_POST['username']) < 6 || strlen($_POST['password']) > 40 || strlen($_POST['username']) > 40)
	{
        echo "<a href=\"javascript:history.back(-1)\">Terug</a><br><br>";

        echo "<ol>";

        if($_POST['username'] == "")
        {
            echo "<li>Bij <b>USERNAME</b> is niks ingevuld</li>";
        }
        if($_POST['password'] == "")
        {
            echo "<li>Bij <b>PASSWORD</b> is niks ingevuld</li>";
        }
        if($_POST['password2'] == "")
        {
            echo "<li>Bij <b>PASSWORD [Bevestiging]</b> is niks ingevuld</li>";
        }
        if($_POST['recq'] == "")
        {
        	echo "<li>Bij <b>RECOVERY VRAAG</b> is niks ingevuld</li>";
        }
        if($_POST['reca'] == "")
        {
            echo "<li>Bij <b>RECOVERY ANTWOORD</b> is niks ingevuld</li>";
        }
        if($_POST['email'] == "")
        {
            echo "<li>Bij <b>EMAIL</b> is niks ingevuld</li>";
        }
        if($_POST['password'] !== $_POST['password2'])
        {
            echo "<li>De <b>PASSWORDS</b> zijn niet gelijk</li>";
        }
		if(mysql_num_rows($res_1) !=0)
		{
  			echo "Er zijn gebruikers met de naam ".$slashed_username;
		}
		if(mysql_num_rows($res_2) !=0)
		{
			echo "<br /> Er zijn gebruikers met het e-mailadres ".$slashed_email;
		} 
        if(strlen($_POST['password']) < 6)
        {
            echo "<li><b>PASSWORD</b> is minder dan 6 tekens</li>";
        }
        if(strlen($_POST['username']) < 6)
        {
            echo "<li><b>USERNAME</b> is minder dan 6 tekens</li>";
        }
        if(strlen($_POST['password']) > 40)
        {
            echo "<li><b>PASSWORD</b> is meer dan 40 tekens</li>";
        }
        if(strlen($_POST['username']) > 40)
        {
            echo "<li><b>USERNAME</b> is meer dan 40 tekens</li>";
        }

        echo "</ol>";
    }

    else
    {
        $username = addslashes($_POST['username']);
        $md5_ww = md5(md5(md5($_POST['password'])));
        $email = addslashes($_POST['email']);
        $md5_reca = md5($_POST['reca']);
        $status = "n";
        $sql = "INSERT INTO `inlogsysteem` (`username`, `password`, `email`, `recovery_vraag`, `recovery_antwoord`, `status`) VALUES ('".$username."','".$md5_ww."','".$email."','".$_POST['recv']."','".$md5_reca."','".$status."')";
        $res = mysql_query ($sql);
    }
    if(!$res)
    {
		$res= mysql_query ($sql);
	}
	else
        {
            $aan = $HTTP_POST_VARS[email];
            $subject = "Account activatie PSResource";
            $van = "Webmaster PSResource <psresource@gmail.com>";

            $bericht = "===========================================\n";
            $bericht .= "Account activeren\n";
            $bericht .= "===========================================\n\n";

            $bericht .= "Uw account is aangemaakt. Het moet alleen nog even \n";
            $bericht .= "geactiveerd worden.\n\n";

            $bericht .= "Uw login naam: $HTTP_POST_VARS[username]\n";
            $bericht .= "Uw wachtwoord: $HTTP_POST_VARS[password]\n\n";
            $bericht .= "Uw recovery vraag: $HTTP_POST_VARS[recv]\n";
            $bericht .= "Uw recovery antwoord: $HTTP_POST_VARS[reca]\n\n";

            $bericht .= "Uw wachtwoord is encrypted opgeslagen en kan  \n";
            $bericht .= "niet worden opgevragen. Onthoudt u uw wachtwoord daarom goed \n";
            $bericht .= "en schrijf het op als het nodig is.\n";
            $bericht .= "Bent u uw wachtwoord toch vergeten dan kunt u met de recovery vraag\n";
            $bericht .= "een nieuw wachtwoord opvragen. Uw recovery vraag en antwoord kunt u\n";
            $bericht .= "hier boven vinden.\n";
            $bericht .= "Uw recovery antwoord is ook encrypted opgeslagen en kan dus\n";
            $bericht .= "ook niet worden opgevraagd.\n\n";

            $bericht .= "Activatie URL:\n";
            $bericht .= "$activatie_url/activeren.php?email=$aan&key=$key\n\n";

            $bericht .= "Bedankt voor het registreren en veel plezier op de site!\n\n";

            $bericht .= "===========================================\n";
            $bericht .= "Einde automatisch gegenereerde bericht\n";
            $bericht .= "===========================================";
            (mail($aan, $subject, $bericht, "From: $van"));
		}
            // kijk of de e-mail verstuurd kan worden
            if (mail($aan, $subject, $bericht, "From:".$van))
            {
                echo "<p>Uw account is aangemaakt maar u kunt nog niet inloggen.</p>";

                echo "<p>Er is een bevestigings e-mail gestuurd met een URL adres. U moet uw ";
                echo "account eerst activeren voordat u kunt inloggen.</p>";
            }
            // als het e-mail niet verstuurd kan worden, geef dan een error bericht
            if (!mail($aan, $subject, $bericht, "From:".$van))
            {
                echo "<p>Uw account is aangemaakt maar er kon geen e-mail verstuurd worden.</p>";

                echo "<p>Probeert u het opnieuw. Krijgt u dan nog steeds niet de melding ";
                echo "dat er een activatie e-mail is gestuurd, neemt u dan contact met ons op.</p>";
			}
ob_end_flush();
print mysql_error();
?>

registreren.php
HTML:
<html>
<head>
    <title>Registreren</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <style type="text/css">
        @import 'register.css';
    </style>
</head>

<body>
    <form method="post" action="new/registreer.php" class="login">
        <h1>Registreerscherm</h1>
        <p>
            <label for="username">Login naam:</label>
            <input id="username" name="username" type="text">
        </p>
        <p>
        	<label for="email">E-mail adres:</label>
        	<input id="email" name="email" type="text">
        </p>
        <p>
            <label for="wachtwoord">Wachtwoord:</label>
            <input id="password" name="password" type="password">
        </p>
        <p>
            <label for="wachtwoord">Wachtwoord [Bevestiging]:</label>
            <input id="password" name="password2" type="password">
        </p>        
        <p>
        	<label for="recq">Recovery vraag:</label>
        	<input id="recq" name="recq" type="text">
		</p>
		<p>
			<label for="reca">Recovery vraag antwoord:</label>
			<input id="reca" name="reca" type="text">
		</p>
		<p>
			<input type="submit" value="registreren">
		</p>
   		<a href="login.php"><img src="images/inloggen.png" height="25px" width="124px" border="0px" alt="Inloggen"></a>
        <a href="activatie.php"><img src="images/activeren.png" height="25px" width="124px" border="0px" alt="Activeren"></a>
        <a href="http://www.psresource.ltech.nl"><img src="images/PSResource home.png" height="25px" width="152px" border="0px" alt="PSResource home"></a>
    </form>
</body>
</html>

Ik zou echt niet weten wat er fout gaat. Jullie wel?

Alvast bedankt!
 
Mijn vraag was om alleen het relevante script te proberen... :rolleyes:

Kijk of die werkt, zo niet dan ligt het probleem inderdaad daar. Werkt het wel dan zit er een fout in de rest van de code.

Door alleen die queries uit te voeren kun je er achter komen of er daadwerkelijk iets verkeerd is met de gegeven code...
 
Mijn vraag was om alleen het relevante script te proberen... :rolleyes:

Kijk of die werkt, zo niet dan ligt het probleem inderdaad daar. Werkt het wel dan zit er een fout in de rest van de code.

Door alleen die queries uit te voeren kun je er achter komen of er daadwerkelijk iets verkeerd is met de gegeven code...
:o Sorry ik snapte het niet:o

Volgens mij doet hij het nu gewoon! Dus waarschijnlijk zit de fout in de rest van de code.
 
Wat gebeurt er als je de addslashes(); in onderstaande code weghaalt?
PHP:
$slashed_username = addslashes($_POST['username']);
$slashed_email = addslashes($_POST['email']);
 
Wat gebeurt er als je de addslashes(); in onderstaande code weghaalt?
PHP:
$slashed_username = addslashes($_POST['username']);
$slashed_email = addslashes($_POST['email']);
Hetzelfde:confused:

EDIT: Ik denk dat het aan de server (instellingen) ligt, want ik heb net apache op mijn pc geinstalleerd en laten debuggen door PHP DESIGNER 2007 en ik krijg geen fout melding (alleen dat wachtwoord en username niet goed is, maar dat klopt).
 
Laatst bewerkt:
Probeer anders dit eens:
PHP:
<?
    include("config.php");
?>
<html>
<head>
  <title>Registreer</title>
  <link rel="stylesheet" type="text/css" href="style.css">
</head>
<?
function makekey($num)
{
  // genereer het random paswoord
  mt_srand((double)microtime()*1000000);

  // loop totdat het $pass(woord) dezelfde lengte heeft als $num
  while (strlen($pass) <= $num)
  {
    $i = chr(mt_rand (0,255));
    if (eregi("^[a-z0-9]$", $i))
    {
      $pass = $pass.$i;    
    }         
  }

  // return het random paswoord
  return ($pass);
}

$activatie_url= "http://ltech001.speed.planet.nl/robin/pslogon";
$key = makekey(5);

$slashed_username = addslashes($_POST['username']);
$slashed_email = addslashes($_POST['email']);

if($_POST['registreer'])
{
  $res_1 = mysql_query("SELECT * FROM gebruikers WHERE username='$slashed_username'") or die(mysql_error()); 
  $res_2 = mysql_query("SELECT * FROM gebruikers WHERE email='$slashed_email'") or die(mysql_error());  
  $check_email = check_mail($_POST['email']);
  $res = mysql_query("SELECT * FROM users WHERE name='".$naam."'") or die(mysql_error());
	
	//Variabelen declareren voor foutcontrole
	$errors = 0;
	$error_msg = '';
	
  echo '<a href="javascript:history.back(-1)">Terug</a><br /><br />';
  echo "<ol>";
  if($_POST['username'] == "")
  {
    $error_msg .= "<li>Bij <b>USERNAME</b> is niks ingevuld</li>";
    $errors++;
  }
  if($_POST['password'] == "")
  {
    $error_msg .= "<li>Bij <b>PASSWORD</b> is niks ingevuld</li>";
    $errors++;
  }
  if($_POST['password2'] == "")
  {
    $error_msg .= "<li>Bij <b>PASSWORD [Bevestiging]</b> is niks ingevuld</li>";
    $errors++;
  }
  if($_POST['recq'] == "")
  {
    $error_msg .= "<li>Bij <b>RECOVERY VRAAG</b> is niks ingevuld</li>";
    $errors++;
  }
  if($_POST['reca'] == "")
  {
    $error_msg .= "<li>Bij <b>RECOVERY ANTWOORD</b> is niks ingevuld</li>";
    $errors++;
  }
  if($_POST['email'] == "")
  {
    $error_msg .= "<li>Bij <b>EMAIL</b> is niks ingevuld</li>";
    $errors++;
  }
  if($_POST['password'] !== $_POST['password2'])
  {
    $error_msg .= "<li>De <b>PASSWORDS</b> zijn niet gelijk</li>";
    $errors++;
  }
  if(mysql_num_rows($res_1) !=0)
  {
    $error_msg .= "Er zijn gebruikers met de naam ".$slashed_username;
    $errors++;
  }
  if(mysql_num_rows($res_2) !=0)
  {
    $error_msg .= "<br /> Er zijn gebruikers met het e-mailadres ".$slashed_email;
    $errors++;
  } 
  if(strlen($_POST['password']) < 6)
  {
    $error_msg .= "<li><b>PASSWORD</b> is minder dan 6 tekens</li>";
    $errors++;
  }
  if(strlen($_POST['username']) < 6)
  {
    $error_msg .= "<li><b>USERNAME</b> is minder dan 6 tekens</li>";
    $errors++;
  }
  if(strlen($_POST['password']) > 40)
  {
    $error_msg .= "<li><b>PASSWORD</b> is meer dan 40 tekens</li>";
    $errors++;
  }
  if(strlen($_POST['username']) > 40)
  {
    $error_msg .= "<li><b>USERNAME</b> is meer dan 40 tekens</li>";
    $errors++;
  }
  echo "</ol>";
  
	if($errors != 0)
	{
	  echo $error_msg;
	}
  else
  {
    $username = addslashes($_POST['username']);
    $md5_ww = md5(md5(md5($_POST['password'])));
    $email = addslashes($_POST['email']);
    $md5_reca = md5($_POST['reca']);
    $status = "n";
    $sql = "INSERT INTO 'inlogsysteem' 
             (`username`, `password`, `email`, `recovery_vraag`, `recovery_antwoord`, `status`)
            VALUES
             ('".$username."','".$md5_ww."','".$email."','".$_POST['recv']."','".$md5_reca."','".$status."')";
    $res = mysql_query ($sql);
    if(!$res)
    {
      $res= mysql_query($sql);
    }
    else
    {
      $aan = $HTTP_POST_VARS[email];
      $subject = "Account activatie PSResource";
      $van = "Webmaster PSResource <psresource@gmail.com>";

      $bericht = "===========================================\n";
      $bericht .= "Account activeren\n";
      $bericht .= "===========================================\n\n";
      $bericht .= "Uw account is aangemaakt. Het moet alleen nog even \n";
      $bericht .= "geactiveerd worden.\n\n";
      $bericht .= "Uw login naam: $HTTP_POST_VARS[username]\n";
      $bericht .= "Uw wachtwoord: $HTTP_POST_VARS[password]\n\n";
      $bericht .= "Uw recovery vraag: $HTTP_POST_VARS[recv]\n";
      $bericht .= "Uw recovery antwoord: $HTTP_POST_VARS[reca]\n\n";
      $bericht .= "Uw wachtwoord is encrypted opgeslagen en kan  \n";
      $bericht .= "niet worden opgevragen. Onthoudt u uw wachtwoord daarom goed \n";
      $bericht .= "en schrijf het op als het nodig is.\n";
      $bericht .= "Bent u uw wachtwoord toch vergeten dan kunt u met de recovery vraag\n";
      $bericht .= "een nieuw wachtwoord opvragen. Uw recovery vraag en antwoord kunt u\n";
      $bericht .= "hier boven vinden.\n";
      $bericht .= "Uw recovery antwoord is ook encrypted opgeslagen en kan dus\n";
      $bericht .= "ook niet worden opgevraagd.\n\n";

      $bericht .= "Activatie URL:\n";
      $bericht .= "$activatie_url/activeren.php?email=$aan&key=$key\n\n";

      $bericht .= "Bedankt voor het registreren en veel plezier op de site!\n\n";

      $bericht .= "===========================================\n";
      $bericht .= "Einde automatisch gegenereerde bericht\n";
      $bericht .= "===========================================";
      // kijk of de e-mail verstuurd kan worden
      if (mail($aan, $subject, $bericht, "From:".$van))
      {
        echo "<p>Uw account is aangemaakt maar u kunt nog niet inloggen.</p>";
        echo "<p>Er is een bevestigings e-mail gestuurd met een URL adres. U moet uw ";
        echo "account eerst activeren voordat u kunt inloggen.</p>";
      }
      // als het e-mail niet verstuurd kan worden, geef dan een error bericht
      if (!mail($aan, $subject, $bericht, "From:".$van))
      {
        echo "<p>Uw account is aangemaakt maar er kon geen e-mail verstuurd worden.</p>";
        echo "<p>Probeert u het opnieuw. Krijgt u dan nog steeds niet de melding ";
        echo "dat er een activatie e-mail is gestuurd, neemt u dan contact met ons op.</p>";
      }
    }
  }
}
ob_end_flush();
print mysql_error();
?>

Ik heb een overbodig grote IF-statement weggehaald (Je ging daarna nog een keer op dezelfde voorwaardes controleren) en vervangen door een wat makkelijkere controle...

Wat ik trouwens niet snap is wat deze statement voor nut heeft
PHP:
$sql = "INSERT INTO 'inlogsysteem'  (`username`, `password`, `email`, `recovery_vraag`, `recovery_antwoord`, `status`)
           VALUES  ('".$username."','".$md5_ww."','".$email."','".$_POST['recv']."','".$md5_reca."','".$status."')";
$res = mysql_query ($sql);
  if(!$res)
  {
    $res= mysql_query($sql);
  }
 
Probeer anders dit eens:
PHP:
<?
    include("config.php");
?>
<html>
<head>
  <title>Registreer</title>
  <link rel="stylesheet" type="text/css" href="style.css">
</head>
<?
function makekey($num)
{
  // genereer het random paswoord
  mt_srand((double)microtime()*1000000);

  // loop totdat het $pass(woord) dezelfde lengte heeft als $num
  while (strlen($pass) <= $num)
  {
    $i = chr(mt_rand (0,255));
    if (eregi("^[a-z0-9]$", $i))
    {
      $pass = $pass.$i;    
    }         
  }

  // return het random paswoord
  return ($pass);
}

$activatie_url= "http://ltech001.speed.planet.nl/robin/pslogon";
$key = makekey(5);

$slashed_username = addslashes($_POST['username']);
$slashed_email = addslashes($_POST['email']);

if($_POST['registreer'])
{
  $res_1 = mysql_query("SELECT * FROM gebruikers WHERE username='$slashed_username'") or die(mysql_error()); 
  $res_2 = mysql_query("SELECT * FROM gebruikers WHERE email='$slashed_email'") or die(mysql_error());  
  $check_email = check_mail($_POST['email']);
  $res = mysql_query("SELECT * FROM users WHERE name='".$naam."'") or die(mysql_error());
	
	//Variabelen declareren voor foutcontrole
	$errors = 0;
	$error_msg = '';
	
  echo '<a href="javascript:history.back(-1)">Terug</a><br /><br />';
  echo "<ol>";
  if($_POST['username'] == "")
  {
    $error_msg .= "<li>Bij <b>USERNAME</b> is niks ingevuld</li>";
    $errors++;
  }
  if($_POST['password'] == "")
  {
    $error_msg .= "<li>Bij <b>PASSWORD</b> is niks ingevuld</li>";
    $errors++;
  }
  if($_POST['password2'] == "")
  {
    $error_msg .= "<li>Bij <b>PASSWORD [Bevestiging]</b> is niks ingevuld</li>";
    $errors++;
  }
  if($_POST['recq'] == "")
  {
    $error_msg .= "<li>Bij <b>RECOVERY VRAAG</b> is niks ingevuld</li>";
    $errors++;
  }
  if($_POST['reca'] == "")
  {
    $error_msg .= "<li>Bij <b>RECOVERY ANTWOORD</b> is niks ingevuld</li>";
    $errors++;
  }
  if($_POST['email'] == "")
  {
    $error_msg .= "<li>Bij <b>EMAIL</b> is niks ingevuld</li>";
    $errors++;
  }
  if($_POST['password'] !== $_POST['password2'])
  {
    $error_msg .= "<li>De <b>PASSWORDS</b> zijn niet gelijk</li>";
    $errors++;
  }
  if(mysql_num_rows($res_1) !=0)
  {
    $error_msg .= "Er zijn gebruikers met de naam ".$slashed_username;
    $errors++;
  }
  if(mysql_num_rows($res_2) !=0)
  {
    $error_msg .= "<br /> Er zijn gebruikers met het e-mailadres ".$slashed_email;
    $errors++;
  } 
  if(strlen($_POST['password']) < 6)
  {
    $error_msg .= "<li><b>PASSWORD</b> is minder dan 6 tekens</li>";
    $errors++;
  }
  if(strlen($_POST['username']) < 6)
  {
    $error_msg .= "<li><b>USERNAME</b> is minder dan 6 tekens</li>";
    $errors++;
  }
  if(strlen($_POST['password']) > 40)
  {
    $error_msg .= "<li><b>PASSWORD</b> is meer dan 40 tekens</li>";
    $errors++;
  }
  if(strlen($_POST['username']) > 40)
  {
    $error_msg .= "<li><b>USERNAME</b> is meer dan 40 tekens</li>";
    $errors++;
  }
  echo "</ol>";
  
	if($errors != 0)
	{
	  echo $error_msg;
	}
  else
  {
    $username = addslashes($_POST['username']);
    $md5_ww = md5(md5(md5($_POST['password'])));
    $email = addslashes($_POST['email']);
    $md5_reca = md5($_POST['reca']);
    $status = "n";
    $sql = "INSERT INTO 'inlogsysteem' 
             (`username`, `password`, `email`, `recovery_vraag`, `recovery_antwoord`, `status`)
            VALUES
             ('".$username."','".$md5_ww."','".$email."','".$_POST['recv']."','".$md5_reca."','".$status."')";
    $res = mysql_query ($sql);
    if(!$res)
    {
      $res= mysql_query($sql);
    }
    else
    {
      $aan = $HTTP_POST_VARS[email];
      $subject = "Account activatie PSResource";
      $van = "Webmaster PSResource <psresource@gmail.com>";

      $bericht = "===========================================\n";
      $bericht .= "Account activeren\n";
      $bericht .= "===========================================\n\n";
      $bericht .= "Uw account is aangemaakt. Het moet alleen nog even \n";
      $bericht .= "geactiveerd worden.\n\n";
      $bericht .= "Uw login naam: $HTTP_POST_VARS[username]\n";
      $bericht .= "Uw wachtwoord: $HTTP_POST_VARS[password]\n\n";
      $bericht .= "Uw recovery vraag: $HTTP_POST_VARS[recv]\n";
      $bericht .= "Uw recovery antwoord: $HTTP_POST_VARS[reca]\n\n";
      $bericht .= "Uw wachtwoord is encrypted opgeslagen en kan  \n";
      $bericht .= "niet worden opgevragen. Onthoudt u uw wachtwoord daarom goed \n";
      $bericht .= "en schrijf het op als het nodig is.\n";
      $bericht .= "Bent u uw wachtwoord toch vergeten dan kunt u met de recovery vraag\n";
      $bericht .= "een nieuw wachtwoord opvragen. Uw recovery vraag en antwoord kunt u\n";
      $bericht .= "hier boven vinden.\n";
      $bericht .= "Uw recovery antwoord is ook encrypted opgeslagen en kan dus\n";
      $bericht .= "ook niet worden opgevraagd.\n\n";

      $bericht .= "Activatie URL:\n";
      $bericht .= "$activatie_url/activeren.php?email=$aan&key=$key\n\n";

      $bericht .= "Bedankt voor het registreren en veel plezier op de site!\n\n";

      $bericht .= "===========================================\n";
      $bericht .= "Einde automatisch gegenereerde bericht\n";
      $bericht .= "===========================================";
      // kijk of de e-mail verstuurd kan worden
      if (mail($aan, $subject, $bericht, "From:".$van))
      {
        echo "<p>Uw account is aangemaakt maar u kunt nog niet inloggen.</p>";
        echo "<p>Er is een bevestigings e-mail gestuurd met een URL adres. U moet uw ";
        echo "account eerst activeren voordat u kunt inloggen.</p>";
      }
      // als het e-mail niet verstuurd kan worden, geef dan een error bericht
      if (!mail($aan, $subject, $bericht, "From:".$van))
      {
        echo "<p>Uw account is aangemaakt maar er kon geen e-mail verstuurd worden.</p>";
        echo "<p>Probeert u het opnieuw. Krijgt u dan nog steeds niet de melding ";
        echo "dat er een activatie e-mail is gestuurd, neemt u dan contact met ons op.</p>";
      }
    }
  }
}
ob_end_flush();
print mysql_error();
?>

Ik heb een overbodig grote IF-statement weggehaald (Je ging daarna nog een keer op dezelfde voorwaardes controleren) en vervangen door een wat makkelijkere controle...

Wat ik trouwens niet snap is wat deze statement voor nut heeft
PHP:
$sql = "INSERT INTO 'inlogsysteem'  (`username`, `password`, `email`, `recovery_vraag`, `recovery_antwoord`, `status`)
           VALUES  ('".$username."','".$md5_ww."','".$email."','".$_POST['recv']."','".$md5_reca."','".$status."')";
$res = mysql_query ($sql);
  if(!$res)
  {
    $res= mysql_query($sql);
  }
Die laatste statement had ik erin gebouwd, omdat hij het steeds niet deed (toen mysql_num_rows eruit was). Maar is eigenlijk overbodig.

De rest ga ik nu even proberen.

EDIT: Ik kom nu al een stuk verder! Alleen zet hij het nu niet in de database. Ik kijk erzo nog zelf naar, maar als jullie het al gevonden hebben, mag het gepost worden.
EDIT 2: Ik heb hem al gevonden waarschijnlijk. Er stond in de html page
HTML:
<input type="submit" value="registreren">
en er moest staan
HTML:
<input type="submit" value="registreren" name="registreer">
 
Laatst bewerkt:
Deze vraag is opgelost!

Er zat nog een fout in een query maar die is er nu uit.

Het uiteindelijke script voor de geintereseerde:

registreer.php
PHP:
<?php

/**
 * @author PSResource
 * @copyright 2007
 */
mysql_connect('localhost', 'robin', 'robin') or die ("Er kon geen verbinding gemaakt worden.");
mysql_select_db ('pslogon') or die ("Er kon geen database geselecteerd worden.");
?>
<html>
<head>
  <title>Registreer</title>
  <link rel="stylesheet" type="text/css" href="style.css">
</head>
</html>
<?
function makekey($num)
{
  // genereer het random paswoord
  mt_srand((double)microtime()*1000000);

  // loop totdat het $pass(woord) dezelfde lengte heeft als $num
  while (strlen($pass) <= $num)
  {
    $i = chr(mt_rand (0,255));
    if (eregi("^[a-z0-9]$", $i))
    {
      $pass = $pass.$i;    
    }         
  }

  // return het random paswoord
  return ($pass);
}

$activatie_url= "http://ltech001.speed.planet.nl/activeren";
$key = makekey(5);

$slashed_username = addslashes($_POST['username']);
$slashed_email = addslashes($_POST['email']);

if($_POST['registreer'])
{
  $res_1 = mysql_query("SELECT * FROM gebruikers WHERE login='$slashed_username'") or die(mysql_error()); 
  $res_2 = mysql_query("SELECT * FROM gebruikers WHERE email='$slashed_email'") or die(mysql_error());  
  $res = mysql_query("SELECT * FROM gebruikers WHERE login='".$username."'") or die(mysql_error());
    
    //Variabelen declareren voor foutcontrole
    $errors = 0;
    $error_msg = '';
    
  echo '<a href="javascript:history.back(-1)">Terug</a><br /><br />';
  echo "<ol>";
  if($_POST['username'] == "")
  {
    $error_msg .= "<li>Bij <b>USERNAME</b> is niks ingevuld</li>";
    $errors++;
  }
  if($_POST['password'] == "")
  {
    $error_msg .= "<li>Bij <b>PASSWORD</b> is niks ingevuld</li>";
    $errors++;
  }
  if($_POST['password2'] == "")
  {
    $error_msg .= "<li>Bij <b>PASSWORD [Bevestiging]</b> is niks ingevuld</li>";
    $errors++;
  }
  if($_POST['recq'] == "")
  {
    $error_msg .= "<li>Bij <b>RECOVERY VRAAG</b> is niks ingevuld</li>";
    $errors++;
  }
  if($_POST['reca'] == "")
  {
    $error_msg .= "<li>Bij <b>RECOVERY ANTWOORD</b> is niks ingevuld</li>";
    $errors++;
  }
  if($_POST['email'] == "")
  {
    $error_msg .= "<li>Bij <b>EMAIL</b> is niks ingevuld</li>";
    $errors++;
  }
  if($_POST['password'] !== $_POST['password2'])
  {
    $error_msg .= "<li>De <b>PASSWORDS</b> zijn niet gelijk</li>";
    $errors++;
  }
  if(mysql_num_rows($res_1) !=0)
  {
    $error_msg .= "Er zijn gebruikers met de naam ".$slashed_username;
    $errors++;
  }
  if(mysql_num_rows($res_2) !=0)
  {
    $error_msg .= "<br /> Er zijn gebruikers met het e-mailadres ".$slashed_email;
    $errors++;
  } 
  if(strlen($_POST['password']) < 6)
  {
    $error_msg .= "<li><b>PASSWORD</b> is minder dan 6 tekens</li>";
    $errors++;
  }
  if(strlen($_POST['username']) < 6)
  {
    $error_msg .= "<li><b>USERNAME</b> is minder dan 6 tekens</li>";
    $errors++;
  }
  if(strlen($_POST['password']) > 40)
  {
    $error_msg .= "<li><b>PASSWORD</b> is meer dan 40 tekens</li>";
    $errors++;
  }
  if(strlen($_POST['username']) > 40)
  {
    $error_msg .= "<li><b>USERNAME</b> is meer dan 40 tekens</li>";
    $errors++;
  }
  echo "</ol>";
  
    if($errors != 0)
    {
      echo $error_msg;
    }
  else
  {
    $md5_ww = md5(md5(md5($_POST['password'])));
    $md5_reca = md5($_POST['reca']);
    $status = "n";
    $sql = "INSERT INTO `gebruikers` SET
    		`login` = '".$slashed_username."',
    		`pass` = '".$md5_ww."',
    		`email` = '".$slashed_email."',
    		`activeer` = '".$key."',
    		`recovery_vraag` = '".$_POST['req']."',
    		`recovery_antwoord` = '".$md5_reca."',
    		`status` = '".$status."'";
    $res = mysql_query ($sql);
//Mailen
      $aan = $HTTP_POST_VARS[email];
      $subject = "Account activatie PSResource";
      $van = "Webmaster PSResource <psresource@gmail.com>";

      $bericht = "===========================================\n";
      $bericht .= "Account activeren\n";
      $bericht .= "===========================================\n\n";
      $bericht .= "Uw account is aangemaakt. Het moet alleen nog even \n";
      $bericht .= "geactiveerd worden.\n\n";
      $bericht .= "Uw login naam: $HTTP_POST_VARS[username]\n";
      $bericht .= "Uw wachtwoord: $HTTP_POST_VARS[password]\n\n";
      $bericht .= "Uw recovery vraag: $HTTP_POST_VARS[recq]\n";
      $bericht .= "Uw recovery antwoord: $HTTP_POST_VARS[reca]\n\n";
      $bericht .= "Uw wachtwoord is encrypted opgeslagen en kan  \n";
      $bericht .= "niet worden opgevragen. Onthoudt u uw wachtwoord daarom goed \n";
      $bericht .= "en schrijf het op als het nodig is.\n\n";
      $bericht .= "Bent u uw wachtwoord toch vergeten dan kunt u met de recovery vraag\n";
      $bericht .= "een nieuw wachtwoord opvragen. Uw recovery vraag en antwoord kunt u\n";
      $bericht .= "hier boven vinden.\n\n";
      $bericht .= "Uw recovery antwoord is ook encrypted opgeslagen en kan dus\n";
      $bericht .= "ook niet worden opgevraagd.\n\n";

      $bericht .= "Activatie URL:\n";
      $bericht .= "$activatie_url/activeren.php?email=$aan&key=$key\n\n";

      $bericht .= "Bedankt voor het registreren en veel plezier op de site!\n\n";

      $bericht .= "===========================================\n";
      $bericht .= "Einde automatisch gegenereerde bericht\n";
      $bericht .= "===========================================";
      // kijk of de e-mail verstuurd kan worden
      if (mail($aan, $subject, $bericht, "From:".$van))
      {
        echo "<p>Uw account is aangemaakt maar u kunt nog niet inloggen.</p>";
        echo "<p>Er is een bevestigings e-mail gestuurd met een URL adres. U moet uw ";
        echo "account eerst activeren voordat u kunt inloggen.</p>";
      }
      // als het e-mail niet verstuurd kan worden, geef dan een error bericht
      if (!mail($aan, $subject, $bericht, "From:".$van))
      {
        echo "<p>Uw account is aangemaakt maar er kon geen e-mail verstuurd worden.</p>";
        echo "<p>Probeert u het opnieuw. Krijgt u dan nog steeds niet de melding ";
        echo "dat er een activatie e-mail is gestuurd, neemt u dan contact met ons op.</p>";
      }
    }
  }
ob_end_flush();
print mysql_error();
?>

registreren.php
HTML:
<html>
<head>
    <title>Registreren</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <style type="text/css">
        @import 'register.css';
    </style>
</head>

<body>
    <form method="post" action="registreer.php" class="login">
        <h1>Registreerscherm</h1>
        <p>
            <label for="username">Login naam:</label>
            <input id="username" name="username" type="text">
        </p>
        <p>
        	<label for="email">E-mail adres:</label>
        	<input id="email" name="email" type="text">
        </p>
        <p>
            <label for="wachtwoord">Wachtwoord:</label>
            <input id="password" name="password" type="password">
        </p>
        <p>
            <label for="wachtwoord">Wachtwoord [Bevestiging]:</label>
            <input id="password" name="password2" type="password">
        </p>        
        <p>
        	<label for="recq">Recovery vraag:</label>
        	<input id="recq" name="recq" type="text">
		</p>
		<p>
			<label for="reca">Recovery vraag antwoord:</label>
			<input id="reca" name="reca" type="text">
		</p>
		<p>
			<input type="submit" value="registreren" name="registreer">
		</p>
   		<a href="login.php"><img src="images/inloggen.png" height="25px" width="124px" border="0px" alt="Inloggen"></a>
        <a href="activatie.php"><img src="images/activeren.png" height="25px" width="124px" border="0px" alt="Activeren"></a>
        <a href="http://www.psresource.ltech.nl"><img src="images/PSResource home.png" height="25px" width="152px" border="0px" alt="PSResource home"></a>
    </form>
</body>
</html>

Bedankt allemaal!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan