Ik ben een beginner met php en maak op dit moment een script om je wachtwoord te wijzigen terwijl je ingelogd bent dit is mijn code:
<?php
session_start();
if (isset($_SESSION['username'])) {
//u bent ingelogd als user, klik op uitloggen om uit te loggen *//
$gebruiker= ucwords(strtolower($_SESSION['username']));
?>
<div class="menubalk">
<div align="left" class="menu">
<ul>
<li><a class="link" href="../overzicht.php">Home</a></li>
<li><a class="link" href="../pakket/overzicht_pakket.php">Pakket</a></li>
<li><a class="link" href="../keuzepakket/overzicht_keuzepakket.php">Keuzepakket</a></li>
<li><a class="link" href="../korting/overzicht_korting.php">Korting</a></li>
</ul>
</div>
<div class="inloggen">
<form action="../index.php" method="post">
U bent ingelogd als <?php print($gebruiker); ?><input type="submit" name="uitloggen" value="Uitloggen" />
</form>
</div>
</div>
<div align="center" class="prijzen">
<?php
include '../functies/functies.php';
// if($gebruikersnaam == 'Niels') {
if(!isset($_POST['submit'])) {
?>
<form action="wachtwoordwijzigen.php" method="POST">
<table>
<tr>
<th colspan="3">Wachtwoord Wijzigen</th>
</tr>
<tr>
<th>Naam</th>
<th>Wachtwoord</th>
<th>Herhaal wachtwoord</th>
</tr>
<tr>
<td><input type="text" name="gebruiker" value="<?php print($gebruiker); ?>" readonly /></td>
<td><input type="password" name="wachtwoord" value=""/></td>
<td><input type="password" name="wachtwoord2" value=""/></td>
</tr>
<tr>
<th colspan="2"></th>
<td><input type="submit" name="submit" value="Wijzigen"/></td>
</tr>
</table>
</form>
<?php
}
if(isset($_POST['submit'])) {
$wachtwoord = $_POST['wachtwoord'];
$wachtwoord2 = $_POST['wachtwoord2'];
if (strlen($wachtwoord) <=7 AND strlen($wachtwoord2) <= 7 OR strlen($wachtwoord) >= 13 AND strlen($wachtwoord2) >= 13) { //deze functie controleert of het wachtwoord minimaal 8 tekens bevat.
print('Het wachtwoord moet minimaal 8 tekens bevatten en mag maximaal 12 tekens bevatten <br/> Klik <a href="wachtwoordwijzigen.php">hier</a> om terug te gaan<br/>');
}
if(!preg_match('/^(?=.*\d)(?=.*[A-Za-z])[0-9A-Za-z!@#$%]{8,12}$/', $wachtwoord2)) {
//indien dit niet zo is roept hij dit aan.
echo ("Het wachtwoord moet vreemde tekens bevatten.<br>");
}
if($wachtwoord != $wachtwoord2) {
print('De wachtwoorden komen niet overeen!');
}
elseif(strlen($wachtwoord) >=8 AND strlen($wachtwoord2) >= 8 OR strlen($wachtwoord) >=12 AND strlen($wachtwoord2) >= 12){
//als het ww tussen de 8 en 12 tekens is en voldoet aan eisen
$count = wachtwoordWijzigen($gebruiker,$wachtwoord);
if($count == 1) {
print ('U wachtwoord is veranderd. <br/> Klik <a href="wachtwoordwijzigen.php">hier</a> om terug te gaan<br/>');//Wanneer de gegevens succesvol zijn veranderd in de database geeft de script dit weer.
}
else {//anders geeft het een foutmelding
print('Er is iets misgegaan <br/> Klik <a href="wachtwoordwijzigen.php">hier</a> om terug te gaan<br/>');
}
}
}
// }
// else{
// print('U hebt niet de bevoegdheden om dit gedeelte van de website te betreden');
// }
?>
mijn functier.php
function wachtwoordWijzigen($gebruiker,$wachtwoord) {
//gemaakt door: Dany Panis
global $naamdatabase,$inlog,$ww,$host,$poort;
//verbinding maken database, uitvoeren query's
$verbinding = new PDO("mysql:host=$host;port=$poort;dbname=$naamdatabase","$inlog","$ww");
$sql=("UPDATE gebruikers SET wachtwoord =:wachtwoord where gebruiker =:gebruikersnaam ");
$statement = $verbinding ->prepare($sql);
$statement->bindValue(':gebruikersnaam', $gebruiker, PDO::PARAM_STR);
$statement->bindValue(':wachtwoord', $wachtwoord, PDO::PARAM_STR);
$statement->execute();
$count = $statement->fetchAll(PDO::FETCH_ASSOC);
return $count;
}
?>
Mijn bedoeling is om mijn wachtwoord te kunnen veranderen terwijl ik als persoon x ben ingelogd.
Als ik ingelogd ben als persoon x dan krijg ik dat te zie wanneer ik mijn wachtwoord wil wijzigen.
Voer mijn wachtwoord in die ik wil en wil de wachtwoord en sessie of gebruikersnaam doorsturen naar de database en het updaten. Er staat alleen een foutmeldingg dat: Er is iets misgegaan .
Geen foutmeldingen van php of wat dan ook.
Snap niet wat ik hier verkeerd doe.