Recuperer la valeur de retour d'une fonction

Par Ekim Kael, il y a 9 ans


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

1 réponse

Carouge10, il y a 9 ans

Bonsoir,
Simple, il faut récupérer le résultat de la fonction.

$messages = forgot_pass();