8795 sujets

Développement web côté serveur, CMS

Bonjour,

Je ne trouve nul part comment on fait pour récupérer une variable qui n'est pas présente dans un formulaire ou autre.

Je fais un mail automatique qui renvoie les identifiants de connexion au membre sélectionné.

Il y a un formulaire avec le nom et le mot de passe, sachant que le nom est l'identifiant de connexion.

J'aimerai donc que selon le membre sélectionné, le mail soit envoyé à son adresse mail stockée dans la bdd.
<!-- AJOUTE LE MDP DANS LA BDD -->
<?php
include "connexion.php";
 
$_mdpUtilisateur = $_POST["mdpUtilisateur"];
$_NomAdherent = $_POST["NomAdherent"];
 
if (!isset($_NomAdherent) || !isset($_mdpUtilisateur) || !$_POST['submit']=='VALIDER')
{
    echo'
    <script>
        document.location="javascript:history.back()";
    </script>';
}
else
{
        $sql="update adherent set mdpUtilisateur='$_mdpUtilisateur' where NomAdherent='$_NomAdherent'";
        mysql_query($sql);
        $sql = 'SELECT MailAdherent FROM adherent WHERE NomAdherent = "' . $_NomAdherent . '"';
}
 ?>
  
 
  <!-- ENVOIE UN MAIL AVEC LE MOT DE PASSE A L'ADHERENT -->
 <?php  
 if ($_POST['submit']) {
$message = 'Bonjour,
Voici vos identifiants pour vous connecter au site du GIRV, vous pourrez modifier votre mot de passe sur votre espace adhérent :
Identifiant : '.$_NomAdherent.'
Mot de passe : '.$_mdpUtilisateur.'
Ne pas répondre à  cet email : message automatique.';
 
$res=mail(''.$_MailAdherent.'','GIRV : Vos identifiants d\'accès', $message);
echo "<script>alert('Mail envoyé');</script>";
} else {
echo'Problème à l\'envoie du mail';
}
 
?>

J'ai donc fait une requête pour sélectionner le mail selon l'adhérent, mais je ne sais pas comment faire pour récupérer le mail.

Pouvez-vous me le dire ?

Merci.
Tout le monde m'en veut pour mes mysql_ ... Mais le PDO, je ne gère pas du tout du tout ! En cours j'apprend le mysql_

J'obtiens le fait que j'arrive à voir l'adresse du membre avec ce code :
<?php include "connexion.php";
 
//mettre cette fonction ailleurs
 //Redirection en fonction de l'url fournie
function redirige($url)
{
   die('<meta http-equiv="refresh" content="0;URL='.$url.'">');
}
 
//Script
 
$_mdpUtilisateur = $_POST["mdpUtilisateur"]; //IL FAUT SECURISER CA !
$_NomAdherent = $_POST["NomAdherent"]; //IL FAUT SECURISER CA !
  
if (!isset($_NomAdherent) || !isset($_mdpUtilisateur) || !$_POST['submit']=='VALIDER')
{
    echo '<script>document.location="javascript:history.back()";</script>';
}
else
{
    //update du mdp
    $sql = "UPDATE adherent SET mdpUtilisateur = '$_mdpUtilisateur' WHERE NomAdherent = '$_NomAdherent'";
    mysql_query($sql);
 
    $req = mysql_query("SELECT MailAdherent FROM adherent WHERE NomAdherent = '$_NomAdherent'");
    $reponse = mysql_fetch_assoc($req);
       
    if(isset($reponse['MailAdherent']))
    {
        echo $reponse['MailAdherent'];
        $message = 'Bonjour,
        Voici vos identifiants pour vous connecter au site du GIRV, vous pourrez modifier votre mot de passe sur votre espace adhérent :
        Identifiant : '.$_NomAdherent.'
        Mot de passe : '.$_mdpUtilisateur.'
        Ne pas répondre à  cet email : message automatique.';
          
        $res = mail($MailAdherent, 'GIRV : Vos identifiants d\'accès', $message);
        echo "<script>alert('Mail envoyé');</script>";
    }
    else {
        echo 'email non trouvé dans la base de données';//pas trouvé
    }
     
    //redirection (à commenter pour voir ce qui s'affiche au dessus)
    //redirige("ajouterAdherent.php");
} ?>

Par contre, le mail ne s'envoie plus.
Modérateur
lizeal a écrit :
Tout le monde m'en veut pour mes mysql_ ... Mais le PDO, je ne gère pas du tout du tout ! En cours j'apprend le mysql_

Smiley sm

=>
a écrit :
Avertissement

Cette extension est obsolète depuis PHP 5.5.0, et sera supprimée dans le futur. À la place, les extensions MySQLi ou PDO_MySQL doivent être utilisées. Voir aussi le guide MySQL : choix de l'API ainsi que la FAQ associée pour plus d'information. Voici les alternatives à cette fonction :

Depuis 3 ans des avertissements de ce genre sont affichés sur la doc de PHP. Si votre professeur ne vous apprend pas correctement les choses ou refuse de le faire, il faudra le faire par vous-même car ce n'est pas une question de goût personnel, aucun code produit aujourd'hui ne devrait avoir recours à ces fonctions.

Bon rapidement, concernant PDO:
- http://studio.jacksay.com/tutoriaux/php/connection-mysql-avec-pdo
- La source de toutes réponses
en anglais: - Comment passer de mysql_ à PDO
et au passage mon tutoriel permet de passer de mysql_ à mysqli_ et c'est en Français... (et mysqli_ c'est très bien aussi, y a pas que le PDO en PHP ^^)


et pour le problème :
echo $reponse['MailAdherent']; //il sert à quoi (à part à débugger) ?


$res = mail($MailAdherent, 'GIRV : Vos identifiants d\'accès', $message);

$MailAdherent n'existe pas. C'est $reponse['MailAdherent'].

(pense à activer TOUTES les erreurs quand tu développes, y compris les notices et les warnings. Parce que l'utilisation subite d'une variable non-déclarée déclenche une erreur et donc PHP t'aurait mis sur la piste ^^)
Modifié par Lothindil (27 Feb 2014 - 12:47)
Oui je préfère mysqli !
Ah OK : $reponse['MailAdherent'] !
Ca ça vient de me sauver, tout fonctionne comme il faut !