Bonjour,
Voila je rencontre un petit problème avec mon code.
Ma fonction
function forgot_pass(){
if ($_SERVER["REQUEST_METHOD"] == "POST") {
global $db;
$email = $_POST['email'];
$messages = [];
if (!empty($email)) {
if (exist($email,'email')) {
$sql = "SELECT * FROM users WHERE email = ? AND confirmed_at IS NOT NULL";
$q = $db->prepare($sql);
$q->execute([$email]);
$check = $q->fetch();
if ($check) {
//Envoie du mail d'activation
$subject = "CONFIRMATION DE VOTRE COMPTE";
$msg = "Afin de valider votre compte merci de cliquer sur ce lien ci-dessous\n\nhttp://localhost/lost/?p=active&?id=$user_id&token=$token";
$headers = "From: contact@losthing.cm";
send_email($email,$subject,$msg,$headers);
//Message de succes
$messages['success'] = "Vous pouvez reinitialisé votre mot de passe";
return $messages;
}else {
//Message d'erreur'
$messages['erreur'] = "Votre compte n'est pas encore activé.veiller l'activer en suivant : <a href='?p=reactive'>ce lien</a>";
return $messages;
}
}else {
//Message d'erreur'
$messages['erreur'] = "Le compte associé cette adresse email n'existe pas.veiller le <a href='?p=register'>créer</a> s'il vous plait";
return $messages;
}
}
}
}
Mon appelle dans un autre fichier
<?php forgot_pass(); ?>
<?php foreach ($messages as $key => $message): ?>
<div class="col s12 l4 offset-l4">
<div class="card-panel <?= ($key == "success") ? 'green' : 'red' ; ?>">
<span class="white-text"><?= $message; ?></span>
</div>
</div>
<?php endforeach; ?>
j'ai des erreurs disant Undefined variable: messages in C
et Invalid argument supplied for foreach()
que puis-je faire parce que là depuis je ne vois pas trop.
merci d'avance
Bonsoir,
Simple, il faut récupérer le résultat de la fonction.
$messages = forgot_pass();