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 :

Problème d'affichage d' id mysql dans mail php


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Problème d'affichage d' id mysql dans mail php
    Bonjour je n'arrive pas à comprendre mon problème,

    j'ai un formulaire de partage qui récupère nom prénom e-mail il l'envoie en post un script utilisant la fonction mail() récupère les valeurs post du formulaire une requète mysql récupère le numéro de facture en get , le but est que le destinataire du mail clique sur le lien contenu dans le mail avec le bon numéro en get vers la page choisi.

    La mail est bien envoyé le formulaire récupère bien l'id de la facture et le numéro de facture, mais quand on se positionne sur le lien dans le message l'id n'apparait pas, voici le code :

    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
     
    <?php
    $colname_partager_facture = "-1";
    if (isset($_GET['id'])) {
      $colname_partager_facture = $_GET['id'];
    }
    mysql_select_db($database_jewelry3d, $jewelry3d);
    $query_partager_facture = sprintf("SELECT id, numero_facture FROM facturation WHERE id = %s", GetSQLValueString($colname_partager_facture, "int"));
    $partager_facture = mysql_query($query_partager_facture, $jewelry3d) or die(mysql_error());
    $row_partager_facture = mysql_fetch_assoc($partager_facture);
    $totalRows_partager_facture = mysql_num_rows($partager_facture);
     
    //$id = $row_partager_facture['id'];
     
    if(isset($_POST["mail"])){
    		$nom = $_POST["nom"];	
    		$prenom = $_POST["prenom"];
    		$destinataire = $_POST["mail"];
    		$numero = $row_partager_facture['numero_facture'];
    		// Subject
    					$sujet = 'Vos représentations 3D sur bejewela.com';
    					// Message
    					$message = '<body style="background-color:#e9e9e9; margin:0; padding:0; ">
    									<div style="border:1px solid #d8d8d8; background-color:#fff; width:600px; height:auto; margin:15px auto;">
    											<div><img src="http://www.bejewela.com/fr/images/interface/tete-mail.jpg" alt="bejewela.com" width="600" height="88" border="0" style="display:block;"/></div>
    											<div style="width:570px; padding:15px; min-height:200px; background-color:#fff;"><p>'.$prenom.' '.$nom.' vos représentations 3D sont prête sur bejewela.</p><p><a href="http://www.bejewela.com/fr/pages/partager.php?id='.$numero.'" style="width:70px; position:relative; display:block; padding:3px 5px; background-color:#35210f; text-decoration:none; color:#FFF;">Cliquez ici</a> pour accéder à vos représentations.</p></div>
    											<div><img src="http://www.bejewela.com/fr/images/interface/pied-mail.jpg" alt="bejewela.com" width="600" height="52" border="0" style="display:block;"/></div>
    									</div>
    								</body>'."\r\n";
    					// Headers
    					$entete = 'Mime-Version: 1.0'."\r\n";
    					$entete .= 'Content-type: text/html; charset=utf-8'."\r\n";
    					$entete .= 'From: Bejewela <>'."\r\n";
     
    					$entete .= "\r\n";
    					// Function mail()
    					mail($destinataire, $sujet, $message, $entete);
     
    					$insertGoTo = "compte-factures.php";
    					header(sprintf("Location: %s", $insertGoTo));
    	}
     
    ?>
    Je ne met pas, sauf si quelqu'un le demande, le code du formulaire rien n'indique qu'il pose problème.

  2. #2
    Développeuse forum
    Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Points : 1 420
    Points
    1 420
    Par défaut
    Petites questions :

    1- Est ce que les variables "prenom" et "nom" sont bien récupéré dans le mail ?
    2- Comment s'affiche ton lien dans le mail ?

    Ton mail est envoyé au format html, donc, le séparateur & doit être &amp;

    Si un message vous a aidé, pensez à voter positivement pour lui ! Merci
    Pas de question technique en privé
    - Si on criait sur la place publique les fautes de tout le monde, on ne pourrait plus fréquenter personne ! (Marcel Pagnol)
    - Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée. (Coluche)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Les variables $nom et $prenom s'affichent bien
    Les variables nom et prénom s'affichent bien

    Voici le code du mail :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <body style="background-color:#e9e9e9; margin:0; padding:0; ">
    									<div style="border:1px solid #d8d8d8; background-color:#fff; width:600px; height:auto; margin:15px auto;">
    											<div><img src="http://www.bejewela.com/fr/images/interface/tete-mail.jpg" alt="bejewela.com" width="600" height="88" border="0" style="display:block;"/></div>
    											<div style="width:570px; padding:15px; min-height:200px; background-color:#fff;">
    												<p>Didier Durand vos représentations 3D sont prête sur bejewela.</p>
    												<p><a href="http://www.bejewela.com/fr/pages/partager.php?id=" style="float:left; position:relative; display:block; padding:3px 5px; background-color:#35210f; text-decoration:none; color:#FFF;">Cliquez ici</a> pour accéder à vos représentations.</p>
    												<p>toto est content.</p>
    											</div>
    											<div><img src="http://www.bejewela.com/fr/images/interface/pied-mail.jpg" alt="bejewela.com" width="600" height="52" border="0" style="display:block;"/></div>
    									</div>
    								</body>
    Entre temps j'ai rajouté un champ "message" les variables $nom $prenom et $message sont bien envoyé, par contre je ne comprend pas cette histoire de "&" il n'est pas présent dans mon code.

  4. #4
    Développeuse forum
    Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Points : 1 420
    Points
    1 420
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $row_partager_facture = mysql_fetch_assoc($partager_facture);

    Il faudrait que tu vérifies si mysql_fetch_assoc ne renvoie pas false. Donc, si il y a bien un enregistrement, car vu ton code, tu ne le test pas. Tu lis directement les données sans vérifier que les données on été lu.

    Cela se trouve, ton $colname_partager_facture est égal à -1....

    Si un message vous a aidé, pensez à voter positivement pour lui ! Merci
    Pas de question technique en privé
    - Si on criait sur la place publique les fautes de tout le monde, on ne pourrait plus fréquenter personne ! (Marcel Pagnol)
    - Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée. (Coluche)

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 6
    Points
    6
    Par défaut La requète mysql récupère bien une valeur
    La requète mysql récupère bien une valeur

    voici le code modifié :

    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
     
    $colname_partager_facture = "-1";
    if (isset($_GET['id'])) {
      $colname_partager_facture = $_GET['id'];
    }
    mysql_select_db($database_jewelry3d, $jewelry3d);
    $query_partager_facture = sprintf("SELECT id, numero_facture FROM facturation WHERE id = %s", GetSQLValueString($colname_partager_facture, "int"));
    $partager_facture = mysql_query($query_partager_facture, $jewelry3d) or die(mysql_error());
    $row_partager_facture = mysql_fetch_assoc($partager_facture);
     
    if($row_partager_facture == false) {
    	$echec = 'echec';
    }else{
    	$numero = $row_partager_facture['numero_facture'];
     
    	if(isset($_POST["mail"])){
    			$nom = $_POST["nom"];	
    			$prenom = $_POST["prenom"];
    			$destinataire = $_POST["mail"];
    			$content = $_POST["message"];
    			//$numero = $row_partager_facture['numero_facture'];
    			// Subject
    						$sujet = 'Vos représentations 3D sur bejewela.com';
    						// Message
    						$message = '<body style="background-color:#e9e9e9; margin:0; padding:0; ">
    										<div style="border:1px solid #d8d8d8; background-color:#fff; width:600px; height:auto; margin:15px auto;">
    												<div><img src="http://www.bejewela.com/fr/images/interface/tete-mail.jpg" alt="bejewela.com" width="600" height="88" border="0" style="display:block;"/></div>
    												<div style="width:570px; padding:15px; min-height:200px; background-color:#fff;">
    													<p>'.$prenom.' '.$nom.' vos représentations 3D sont prête sur bejewela.</p>
    													<p><a href="http://www.bejewela.com/fr/pages/partager.php?id='.$numero.'" style="float:left; position:relative; display:block; padding:3px 5px; margin:3px 5px; background-color:#35210f; text-decoration:none; color:#FFF;">Cliquez ici</a> pour accéder à vos représentations.</p>
    													<p>'.$content.'</p>
    													<p>Test numéro :' . $numero . '</p>
    												</div>
    												<div><img src="http://www.bejewela.com/fr/images/interface/pied-mail.jpg" alt="bejewela.com" width="600" height="52" border="0" style="display:block;"/></div>
    										</div>
    									</body>'."\r\n";
    						// Headers
    						$entete = 'Mime-Version: 1.0'."\r\n";
    						$entete .= 'Content-type: text/html; charset=utf-8'."\r\n";
    						$entete .= 'From: Bejewela <contact@jewelery3d.ghislaingaudin.com>'."\r\n";
    						//$headers .= 'Bcc: Moi <moi@server.com>; lui <lui@server2.com>'."\r\n";
    						$entete .= "\r\n";
    						// Function mail()
    						mail($destinataire, $sujet, $message, $entete);
     
    						$insertGoTo = "compte-factures.php";
    						header(sprintf("Location: %s", $insertGoTo));
    	}
    }
     
    $totalRows_partager_facture = mysql_num_rows($partager_facture);
    De toute façon avant que je teste la requète je savais qu'elle fonctionnais car je l'utilise dans le formulaire de partage. et la valeur 'numéro_facture' de la table facturation s'affiche bien. c'est juste l'écriture de la variable $numéro qui pose problème, elle est testé elle s'affiche dans le formulaire. elle refuse just de s'écrire dans le mail, j'ai fait des recherches et dans des écritures de mail avec id et ils ont fait pareil que moi et chez eux cela fonctionne.

  6. #6
    Développeuse forum
    Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Points : 1 420
    Points
    1 420
    Par défaut
    Citation Envoyé par ghislaingaudin Voir le message
    De toute façon avant que je teste la requète je savais qu'elle fonctionnais ...
    Effectivement, là, on voit que celle-ci fonctionne !

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if($row_partager_facture == false) {
    	$echec = 'echec';
    }else{

    Déjà, il est préférable de tester avec 3 égale ainsi tu distingue false des valeurs comme le 0, la chaine vide ou le tableau vide.
    Ensuite, tu initialise une variable $echec si c'est en echec, mais je ne vois, ni l'utilisation de cette variable, ni son initialisation si c'est true...


    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $query_partager_facture = sprintf("SELECT id, numero_facture FROM facturation WHERE id = %s", GetSQLValueString($colname_partager_facture, "int"));

    Au lieu de %s utilise %d ainsi, en lisant la requête on aurait l'assurance que celui-ci soit bien un nombre.

    Après cette ligne :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $numero = $row_partager_facture['numero_facture'];

    Ajoute ceci :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    die("id = " . $numero);

    si ton die n'affiche que id = c'est qu'il n'est pas remplit, ce qui expliquerais l'absence de celui-ci dans le mail. Personnellement, je ne vois pas pourquoi il ne s’afficherait pas si celui-ci l'était !

    Si un message vous a aidé, pensez à voter positivement pour lui ! Merci
    Pas de question technique en privé
    - Si on criait sur la place publique les fautes de tout le monde, on ne pourrait plus fréquenter personne ! (Marcel Pagnol)
    - Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée. (Coluche)

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Affiche "id=2012051700007"
    Voilà à la place du formulaire cela affiche :

    id=2012051700007

    si cela étais le but alors il est réussi.

    la variable existe je ne comprend toujours pas pourquoi elle refuse de s'afficher.

  8. #8
    Développeuse forum
    Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Points : 1 420
    Points
    1 420
    Par défaut
    enlève le die de test maintenant que nous sommes certains que c'est bon, et à la place tu ajoute la ligne :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var_dump($row_partager_facture);
    die();

    Donnes nous ce que cela affiche

    Si un message vous a aidé, pensez à voter positivement pour lui ! Merci
    Pas de question technique en privé
    - Si on criait sur la place publique les fautes de tout le monde, on ne pourrait plus fréquenter personne ! (Marcel Pagnol)
    - Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée. (Coluche)

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Résolu
    ça y est j'ai trouvé en fait la variable $numero ne pouvais pas fonctionner car elle existe avant le post mais pas après en fait il fallait que je la rajoute dans un input "hidden" pour la récupérer en post comme les autres variables du formulaire.

    Merci de votre aide.

    Voici le code :

    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
     
    $colname_partager_facture = "-1";
    if (isset($_GET['id'])) {
      $colname_partager_facture = $_GET['id'];
    }
    mysql_select_db($database_jewelry3d, $jewelry3d);
    $query_partager_facture = sprintf("SELECT id, numero_facture FROM facturation WHERE id = %s", GetSQLValueString($colname_partager_facture, "int"));
    $partager_facture = mysql_query($query_partager_facture, $jewelry3d) or die(mysql_error());
    $row_partager_facture = mysql_fetch_assoc($partager_facture);
     
    //if($row_partager_facture === false) {
    //	$echec = 'echec';
    //}else{
    	//$numero = $row_partager_facture['numero_facture'];
    	//die("id=" . $numero);
     
    	if(isset($_POST["mail"])){
    			$nom = $_POST["nom"];	
    			$prenom = $_POST["prenom"];
    			$destinataire = $_POST["mail"];
    			$content = $_POST["message"];
    			$numero =  $_POST["numero"];
    			// Subject
    						$sujet = 'Vos représentations 3D sur bejewela.com';
    						// Message
    						$message = '<body style="background-color:#e9e9e9; margin:0; padding:0; ">
    										<div style="border:1px solid #d8d8d8; background-color:#fff; width:600px; height:auto; margin:15px auto;">
    												<div><img src="http://www.bejewela.com/fr/images/interface/tete-mail.jpg" alt="bejewela.com" width="600" height="88" border="0" style="display:block;"/></div>
    												<div style="width:570px; padding:15px; min-height:200px; background-color:#fff;">
    													<p>'.$prenom.' '.$nom.' vos représentations 3D sont prête sur bejewela.</p>
    													<p><a href="http://www.bejewela.com/fr/pages/partager.php?id=' . $numero . '" style="float:left; position:relative; display:block; padding:3px 5px; margin:3px 5px; background-color:#35210f; text-decoration:none; color:#FFF;">Cliquez ici</a> pour accéder à vos représentations.</p>
    													<p>'.$content.'</p>
    													<p>Test numéro :' . $numero . '</p>
    												</div>
    												<div><img src="http://www.bejewela.com/fr/images/interface/pied-mail.jpg" alt="bejewela.com" width="600" height="52" border="0" style="display:block;"/></div>
    										</div>
    									</body>'."\r\n";
    						// Headers
    						$entete = 'Mime-Version: 1.0'."\r\n";
    						$entete .= 'Content-type: text/html; charset=utf-8'."\r\n";
    						$entete .= 'From: Bejewela <contact@jewelery3d.ghislaingaudin.com>'."\r\n";
    						//$headers .= 'Bcc: Moi <moi@server.com>; lui <lui@server2.com>'."\r\n";
    						$entete .= "\r\n";
    						// Function mail()
    						mail($destinataire, $sujet, $message, $entete);
     
    						$insertGoTo = "compte-factures.php";
    						header(sprintf("Location: %s", $insertGoTo));
    	}
    //}
     
    $totalRows_partager_facture = mysql_num_rows($partager_facture);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/06/2007, 11h27
  2. Problème d'affichage d'une image dans une fenetre
    Par taouja dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 30/04/2007, 16h00
  3. Réponses: 15
    Dernier message: 04/01/2007, 08h47
  4. [SQL] Problème d'affichage de caractère spéciaux dans une variable chaîne
    Par Kryptonaute dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/08/2006, 08h40
  5. Problème d 'affichage d une grile dans un JLabel
    Par louby dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 26/06/2006, 15h56

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