IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Envoie d'email automatique !


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Envoie d'email automatique !
    Bonjour à vous !

    Je bloque pas mal sur le fait d'envoyer un email automatiquement.

    Je m'explique j'ai créer un site ou l'on peut acheter des articles grâce à paypal. Quant on paye on est redirigé vers paypal et une fois la transactions effectué nous sommes redirigé vers mon site sur une page appelé success.php.

    Cette page est classique, il y a juste un message qui remercie l'acheteur.

    Cependant j'aimerais qu'une fois redirigé sur cette page le destinataire reçoit un mail automatiquement. donc j'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?php
     
    require_once('includes/header.php');
    //require_once('includes/sidebar.php');
     
     echo '<br/><h2 style="color:green;">Merci d\'avoir commandé chez nous.</h2>';
     
     //require_once('includes/footer.php');
     
     
    $sujet = 'Votre commande';
    $message = "Bonjour,
    Ceci est un message texte envoyé grâce à  php.
    merci :)";
    $destinataire = 'destinataire@domaine.com';
    $headers = "From: <moi@domaine.com>\n";
    $headers .= "Reply-To: moi@domaine.com\n";
    $headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"";
    if(mail($destinataire,$sujet,$message,$headers))
    {
            echo "Un email récapitulant votre commande a été envoyé.";
    }
    else
    {
            echo "Une erreur c'est produite lors de l'envois de l'email.";
    }
     
     ?>
    Cependant je ne veux pas rentrer un mail précis dans la variable $destinataire. J'aimerais faire en sorte que le mail s'envoie automatiquement à l'utilisateur atteignant la page success.php car cela signifierait qu'il a payé. Donc il faut les tables que j'ai créer sur php my admin !

    Voici ma table users : Nom : 3.png
Affichages : 128
Taille : 26,4 Ko

    comment faire ? je compte sur vous ! Merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    il faut juste récupérer dans cette page l'id du user.
    Ensuite, on récupère les autres infos dans la BDD.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Faut il que j'utilise cette requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EmailUser= $db->prepare("SELECT email FROM users WHERE id = :id");
    ?

    Je suis débutant donc j'ai du mal désolé !

  4. #4
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $destinataire = 'destinataire@domaine.com';
    D'où sort ce "destinataire@domaine.com" ?
    Ca veut dire que tu récupères l'email, non ?

    Donc, à partir de l'email, normalement tu dois pouvoir faire ta requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $query = $db->prepare("SELECT email FROM users WHERE email = :email");
    $query->execute( arrray( $EmailUser ) );

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    "destinataire@domaine.com" c'est censé être le mail de la personne arrivant sur la page success.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    1
    2
    $query = $db->prepare("SELECT email FROM users WHERE email = :email");
    $query->execute( arrray( $EmailUser ) );
    cela ne pose aucun problème pour le $EmailUser ? car je n'ai jamais crée de variable $EmailUser celle que j'ai mis dans la réponse d'avant été à titre d'exemple.
    De plus ce code remplace t'il le $destinataire ou dois je tout de même laisser $destinataire ?

    Je tiens à te remercier pour l'aide que tu m'apportes !

  6. #6
    Invité
    Invité(e)
    Par défaut
    La page success.php reçoit quoi de PayPal ?

    Si tu ne reçoit rien concernant le user (ni id, ni email), il faut faire en sorte de mettre l'id user dans une variable de session AVANT le paiement.

    Et dans success.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php session_start();
    $user_id = $_SESSION['user_id'];
    Dernière modification par Invité ; 03/08/2018 à 00h35.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    La page success.php n'est qu'une page de redirection lorsque le payement paypal c'est bien effectué le code permettant la redirection est dans la page process.php est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    <?php
    session_start();
     
    try
    {
    	$db = new PDO('mysql:host=localhost;dbname=site-e-commerce', 'root','');
    	$db ->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); //les noms des champs seront en caractère minuscule.
    	$db ->setAttribute(PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION);// les erreurs lanceront des exceptions.
    }
    catch(Exception $e){
     
     
    	die('Une erreur est survenue');
     
     
    }
     
    require_once('includes/functions_panier.php');
    require_once('includes/paypal.php');
     
    $totaltva = MontantGlobalTva();
    $paypal = new Paypal();
    $response = $paypal->request('GetExpressCheckoutDetails', array(
    'TOKEN' => $_GET['token']
    ));
     
    if($response){
     
    	if($response['CHECKOUTSTATUS'] =='PaymentActionCompleted'){
     
    		header('Location: error.php');
    	}
     
    }else{
     
    	var_dump($paypal->errors);
    	die();
     
     
    }
     
    $response = $paypal->request('DoExpressCheckoutPayment', array(
    'TOKEN' => $_GET['token'],
    'PAYERID' => $_GET['PayerID'],
    'PAYMENTACTION'=>'Sale',
    'PAYMENTREQUEST_0_AMT'=>$totaltva,
    'PAYMENTREQUEST_0_CURRENCYCODE'=>'EUR'
    ));
     
    if($response){
     
     
    	$response2 = $paypal->request('GetTransactionDetails', array(
    		'TRANSACTIONID' => $response['PAYMENTINFO_0_TRANSACTIONID']
    		));	
     
    		$name = $response2['SHIPTONAME'];
    		$street = $response2['SHIPTOSTREET'];
    		$city = $response2['SHIPTOCITY'];
    		$country = $response2['SHIPTOSTATE'];
    		$date = $response2['ORDERTIME'];
    		$transaction_id = $response2['TRANSACTIONID'];
    		$amount = $response2['AMT'];
    		$shipping = $response2['FEEAMT'];
    		$currency_code = $response2['CURRENCYCODE'];
    		$user_id = $_SESSION['user_id'];
     
     
    		$db->query("INSERT INTO transactions(name,street,city,country,date,transaction_id,amount,shipping,currency_code,user_id) VALUES('$name', '$street', '$city', '$country', '$date', '$transaction_id', '$amount', '$shipping', '$currency_code', '$user_id')");
     
    		for ($i=0; $i <count($_SESSION['panier']['libelleProduit']); $i++) {
    			$product = $_SESSION['panier']['libelleProduit'][$i];
    			$quantity = $_SESSION['panier']['qteProduit'][$i];
    			$insert = $db->query("INSERT INTO products_transactions(product,quantity,transaction_id) VALUES('$product','$quantity','$transaction_id')");
    			$select = $db->query("SELECT * FROM products WHERE title='$product'");
    			$r = $select->fetch(PDO::FETCH_OBJ);
    			$stock = $r->stock;
    			$stock = $stock-$quantity;
    			$update = $db->query("UPDATE products SET stock='$stock' WHERE title='$product'");
     
    		}
     
    		header('Location: success.php');
     
     
     
     
    }else{
     
    	var_dump($paypal->errors);
    	die();
    }
     
    ?>

  8. #8
    Invité
    Invité(e)
    Par défaut
    Alors !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $user_id = $_SESSION['user_id'];
    Tu vois qu'il est DEJA en SESSION !

    C'est ça que tu dois utiliser.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Je comprend ce que tu veux dire cependant je ne vois pas comment m'y prendre pour l'utiliser enfaite :/

    parce que j'appelle cette variable SESSION mais je ne l'appelle pas avec la fonction SQL;

    J'ai du mal à comprendre désolé !

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Noyha Voir le message
    ...j'ai créer un site ou l'on peut acheter des articles grâce à paypal....
    J'ai du mal à croire que tu aies réussi à faire ça, mais que tu sois incapable de récupérer des infos, connaissant l'id_user...

    Dans success.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php session_start();
    $user_id = $_SESSION['user_id'];
     
    $query = $db->prepare("SELECT * FROM users WHERE id = :user_id");
    $query->execute( arrray( ':user_id' => $user_id ) );
    // ... (là, on peut récupérer toutes les infos de ce user : email,,...)
    $row = $query->fetch();
    $email_destinataire = $row['email'];
    //....

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Je suis débutant donc ça fait énormément de temps que je suis dessus et je suis actif sur énormément de forum car j'ai beaucoup de problème j'ai pas la prétention de dire que le site que je réalise est fait uniquement grâce à mes pauvres compétences.

    Je comprend les choses mais quand l'idée vient pas de moi j'ai énormément de mal à mettre en application.

    En rajoutant ce bout de code j'ai eu l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW) in C:\wamp64\www\cavapas\success.php on line 17
    ce qui correspond :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query->execute( arrray( ':user_id' => $user_id ) );
    j'avais eu cette erreur aussi quand j'avais tenté une autre variable $query.

    De plus j'ai enlevé le session_start car j'ai déjà une page qui l'appelle donc il ne m'était pas nécessaire sur cette page

  12. #12
    Invité
    Invité(e)
    Par défaut
    1- Tu m'étonnes...
    J'ai écrit "arrray" avec 3 "r" !!

    2- pour session_start(), il suffit de le remplacer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php if( session_id()=='' ){ session_start(); }
    3- Puisque tu es débutant(e), je t'invite à LIRE et faire les EXERCICES :


    4- Et pour l'envoi de mail, je te conseille vivement : phpMailer.

    5- Quant à PDO :

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Ahah merci beaucoup une fois que j'aurais fini cette requête pour la mail j'irais faire un tour sur ces liens !

    Du coup ça a bien corriger les erreurs ! il n'y en a plus qu'une la tant attendu Undefined index user_id !

    J'ai tenté de remplacé user_id par id mais sans succès.

    J'ai retiré le session_start parce que le service est déjà démarré enfaîte donc j'ai pas besoins de le remettre

Discussions similaires

  1. Envoi d'email automatique à l'upload d'un nouveau document
    Par MmeChoup dans le forum Salesforce.com
    Réponses: 3
    Dernier message: 07/04/2015, 16h47
  2. Envoi d'emails automatiquement dans mon application
    Par n2engineer5 dans le forum Android
    Réponses: 6
    Dernier message: 31/10/2013, 12h26
  3. service windows pour envoi d'emails automatiquement
    Par fasarah dans le forum Services Windows
    Réponses: 2
    Dernier message: 09/04/2012, 16h35
  4. Envoi d'email automatique
    Par doudou_ca dans le forum ASP.NET
    Réponses: 6
    Dernier message: 01/12/2009, 21h13
  5. [PB 10] Envoi d'Email automatique
    Par raph38 dans le forum Powerbuilder
    Réponses: 2
    Dernier message: 26/02/2008, 15h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo