Ik heb paginas via index.php?pagina=

Nu heb ik problemen met een nieuw wachtwoord opvragen.

De pagina geeft een wit scherm.

hoe kan dit ?

Wat doe ik fout?

<?php
  include("config2.php");
$username = $_POST['username'];
$user1 = $connection->query("SELECT * FROM `leden` WHERE `username`='$username'");
$user = mysqli_fetch_object($user1);
if($user->email != $_POST['email']){
$nicepost = 0;
}
else{
$nicepost = 1;
}
if(!isset($_POST['sturen'])){
$nicepost = 0;
}
?>
<h1>wachtwoord vergeten</h1>
    <ul id="promobox">
    <p>Vul uw gegevens in en we zullen een nieuw wachtwoord versturen!</p>
    <p>Wanneer u de gebruikersnaam vergeten bent, neem dan contact op.</p>
								<?php
if($nicepost == 1){
$username = $_POST['username'];
$user1 = $connection->query("SELECT * FROM `leden` WHERE `username`='$username'");
$user = mysqli_fetch_object($user1);
if($user->email == $_POST['email']){
      print <<<ENDHTML
	<tr>
		<td align="center">
			<br><br><br><br>
			<table class="div_popup" align="center">
				<tr>
					<td colspan="2">
						Het nieuwe wachtwoord is naar het opgegeven e-mail adres verstuurd. 
            <br />Hotmail gebruikers: kijk in je spam folder.
                                                      
				</td>
				</tr>
				<tr>
					<td colspan="2">
						<br><br>
							
					</td>
				</tr>
			</table>
		</td>
</table>

</td>
	</tr>
				</td>
	</tr>
ENDHTML;
}
}
if($nicepost == 0){
      print <<<ENDHTML
	<tr>
		<td height="456" valign="top">

<script language="javascript">
	function checkError(pForm){
		var errormsg = '';
		
		if(pForm.username.value == '') errormsg += 'Er is geen gebruikersnaam ingevuld!<br>';
		if(pForm.password.value == '') errormsg += 'Er is geen wachtwoord ingevuld!<br>';
		
		if(errormsg != ''){
			showError(errormsg);
			return false;
		}
		return true;
	}
</script>
ENDHTML;
}
if($nicepost == 1){
$username = $_POST['username'];
$user1 = $connection->query("SELECT * FROM `leden` WHERE `username`='$username'");
$user = mysqli_fetch_object($user1);
if($user->email == $_POST['email']){
$newpass = rand(10000,99999);
$naam = $_POST['username'];
$connection->query("UPDATE `leden` SET `password`=MD5('$newpass'), `passdecoded`='$newpass' WHERE `username`='$naam'");
        mail($_POST['email'],"Je nieuwe wachtwoord voor test","
Beste $naam,

We hebben zojuist een verzoek ontvangen voor een nieuw wachtwoord. Het nieuwe wachtwoord is:

$newpass


Met dit nieuwe wachtwoord kan je weer op je account inloggen.



Met vriendelijke groet
test,","From: 'test' <[email protected]>");
}
}
if($nicepost == 0){
      print <<<ENDHTML

		<form method="POST">
			<table>
ENDHTML;
if($user->email != $_POST['email']){
      print <<<ENDHTML
                                <tr>
					<td colspan="2" style="color:red">
						<b>
							Kan het wachtwoord niet bijwerken						</b>
					</td>
				</tr>
ENDHTML;
}
      print <<<ENDHTML
	  
	  <table width="250" border="0" cellpadding="2" cellspacing="2">
			
	  			<tr>
					<td>Gebruikersnaam</td>
					<td>
						<input type="text" name="username" value="" size="15" onfocus="Tip('Vul hier de gebruikersnaam in die je hebt ingevuld bij je registratie.',FADEIN, 500, FADEOUT, 500, FOLLOWMOUSE, false, FIX, [getX(this,1),getY(this,0)+1], BALLOON, false, ABOVE, false)" onblur="UnTip()">
					</td>
				</tr>
				<tr>
					<td>E-mail adres</td>
					<td>
						<input type="text" name="email" value="" size="15" onfocus="Tip('Waarschuwing: e-mails kunnen in je spambox belanden. Mocht je het mailtje niet ontvangen kan je het beste de spambox bekijken.',FADEIN, 500, FADEOUT, 500, FOLLOWMOUSE, false, FIX, [getX(this,1),getY(this,0)+1], BALLOON, false, ABOVE, false)" onblur="UnTip()">
					</td>
				</tr>
				<tr>
					<td colspan="2" align="center">
						<input type="submit" name="sturen" value="Nieuw wachtwoord">
					</td>
				</tr>
			
			</table>
		</form>
		</td>
</table>
</td>
	</tr>
ENDHTML;
}
?>

Wat zegt error_reporting op E_ALL en display_errors?
Heb het probleem gevonden.
Had een database wachtwoord verkeerd ingevuld.
toch bedankt voor de reactie.
Je script is lek (SQL Injection).
^ what he said.

Daarnaast is je script een if-elseif-elseif-else hel.

Deel deze eens op in verschillende acties.

EDIT: en als ik iemand zijn username weet, kan ik zijn/haar wachtwoord resetten? cool.
Je hebt ook het email adres nodig, het nieuwe wachtwoord wordt naar het email adres verstuurd gekoppeld aan het account van de gebruiker.
Dit email adres kan de gebruiker niet veranderen.
Alsnog kan iemand de leden van je site behoorlijk zieken door steeds een nieuw wachtwoord aan te laten maken als hij het mailadres weet.

Zorg er liever voor dat de gebruiker een link krijgt gemaild waar hij een nieuw wachtwoord kan bedenken voor zijn account.
Jasper Schellekens op 31/07/2015 18:21:27


<?php
$connection->query("UPDATE `leden` SET `password`=MD5('$newpass'), `passdecoded`='$newpass' WHERE `username`='$naam'");
?>


Je weet dat md5 geen sterke methode is om een wachtwoord te beveiligen?
En waarom het veld passdecoded?
Obelix en Idefix op 31/07/2015 22:06:31
En waarom het veld passdecoded?

Da's de kers op de .... taart.
Nooit echte wachtwoorden opslaan in een database, dus alleen als een hash ofzo maar niet zoals jij bij passdecoded heb..

Reageren