Email de confirmation sans mot de passe ni login

Invité
Invité n'ayant pas de compte PHPfrance

24 août 2011, 20:17

J'espère trouver de l'aide sur ce forum que je découvre.
Voilà mon souci, j'ai créer une page en php pour permettre l'expédition d'un email de confirmation, une fois remplie les champs d'inscription au site. Mais l'email envoyé ne contient ni le mot de passe ni le login, les variables ne sont pas pris en compte. Pourtant il est bien transmis à ma table d'inscription phpmyadmin.
Voilà le code de la page

Code : Tout sélectionner

<?php require_once('Connections/maDeuxiemeConnexion.php'); ?> <?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { if (PHP_VERSION < 6) { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; } $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } $colname_Recordset1 = "-1"; if (isset($_GET['id_abonne'])) { $colname_Recordset1 = $_GET['id_abonne']; } mysql_select_db($database_maDeuxiemeConnexion, $maDeuxiemeConnexion); $query_Recordset1 = sprintf("SELECT * FROM inscriptions WHERE id_abonne = %s", GetSQLValueString($colname_Recordset1, "int")); $Recordset1 = mysql_query($query_Recordset1, $maDeuxiemeConnexion) or die(mysql_error()); $row_Recordset1 = mysql_fetch_assoc($Recordset1); $totalRows_Recordset1 = mysql_num_rows($Recordset1); ?> <?php $email=$row_Recordset1['mail']; $sujet="Votre inscription à notre newsletter"; $message="Bonjour,\n\n"; $message.="Vous venez de vous inscrire à la newsletter de monsite.com \n"; $message.="Voici vos codes d'accès : \n"; $message.="Login :".$row_Recordset1['mail']."\n"; $message.="Mot de passe :".$row_Recordset1['password']."\n"; $message.="Si vous souhaitez vous désabonner, cliquez ici : http://monsite.com/desabonne_newsletter.php?id_abonne=".$row_Recordset1['id_abonne']."\n"; $headers="From: [email protected] \n"; $headers.="MIME-version: 1.0\n"; $headers.="Content-type: text/html; charset= iso-8859-1\n"; $headers.="Bcc: [email protected]\n"; mail($email,$sujet,$message,$headers); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Document sans titre</title> </head> <body> </body> </html> <?php mysql_free_result($Recordset1); ?>
merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

24 août 2011, 22:06

a vu de nez la chose que tu a utilisé pour faire ça doit se vautrer quelque part !


a priori ça peux aller coté code, maintenant faut voir si tu a des erreurs quelque part.
quel est le niveau d'erreur de ton serveur ? (si différent de E_ALL|E_STRICT c'est pas bon pour développer => error8reporting(E_ALL|E_STRICT); en 1ère ligne du script !).
configurer le trace mode de mysql pour voir les erreurs, s'il y en a.

a tu essayé d'afficher la requete SQL et de la testé directement avec phpmyadmin ? (d'ailleurs t'a rien dans phpmyadmin ce n'est qu'un outils, c'est comme situ disais que PPDA était dans la télé :mrgreen: ).

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 7 Messages

24 août 2011, 23:01

alors, j'ai bien insérer <?php error_reporting(E_ALL|E_STRICT); ?> en première ligne du code comme tu me la recommandé
il n'a rien détecté...
comment est-il possible d'activer le trace mode de mysql?

(PS : c'est moi qui est créer le sujet, j'ai fais une mauvaise manipulation en le postant en tant qu'invité)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

25 août 2011, 00:13

a tu affiché la requete ? l'a tu testé "a la main" pour voir ce qu'elle retourne ?

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 7 Messages

25 août 2011, 15:45

J'ai testé le script sur phpmyadmin section sql. Il m'a retourné une erreur, pas vraiment pertinente, concernant la première ligne du code qui, à priori, elle semble correct...


Image .

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

25 août 2011, 18:21

J'ai testé le script sur phpmyadmin section sql. Il m'a retourné une erreur, pas vraiment pertinente, concernant la première ligne du code qui, à priori, elle semble correct... .
pas vraiment pertinente O_o c'est quoi cette erreur ?

je vois, ligne 39, la seule requete du script que tu a fournis : SELECT * FROM inscriptions WHERE id_abonne

et je vois, dans la capture d'écran de ton dernier message, que tu a 4 tables :
- domiciliation
- fin_dossier
- usager
- utilisateur

donc pas de table inscriptions.

je comprend que ton ne fonctionne pas ....

quand a la capture d'écran elle ne reflète pas la requête affichée, d'ailleur je me demande même si tu nous la montrerais (la requete ^^) et si tu l affichée !

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 7 Messages

25 août 2011, 19:18

SELECT * FROM inscriptions WHERE id_abonne à été intégrer au script pour récupérer l’ID d’enregistrement de l’utilisateur. Ca pourrait être la source du problème?
En fait ce n'était pas la capture de mon écran. :?
Voilà celle de mon écran

Image
http://www.hostingpics.net/viewer.php?id=379945Capt.jpg

Petit nouveau ! | 7 Messages

25 août 2011, 19:43

Tu as vu juste, c'était bien le coeur du problème. Tout fonctionne à présent. Merci beaucoup :D
C'est très étrange, j'ai pourtant suivi un tuto dreamweaver expliquant comment remplir cette fenêtre, image à l'appui. #-o
Image

Petit nouveau ! | 7 Messages

25 août 2011, 22:37

par contre j'viens de m'apercevoir maintenant que l'email de confirmation est envoyé toujours à la même adresse malgré une saisie d'adresse email différente. Je pense qu'il manque du coup une ligne de code qui me permettrait de récupérer l'id de l'abonné.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

26 août 2011, 02:11

ah wé quand même, tu m'étonne que tu ai des erreurs t'a copier tous le code php pour faire une requête SQL !

je ne sais pas comment fonctionne dreamweaver, et perso je ne le conseil pas (rien que la fonction pour les magic quote version de php <6 c'est sur y a pas de version 6 et qu'a la version 5.4 y aura une belle erreur).

ensuite ben si le mail est envoyé toujours à la même adresse c'est que la requête est soit mal faite, mal utilisée.
fait voir le dernier code que tu a.

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 7 Messages

26 août 2011, 09:48

Je pense que c'est la la ligne 35 qui pose toujours problème sachant qu'il me faut tout de même récupérer l'id d'abonné
<?php require_once('Connections/maDeuxiemeConnexion.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

mysql_select_db($database_maDeuxiemeConnexion, $maDeuxiemeConnexion);
$query_Recordset1 = "SELECT * FROM inscriptions";
$Recordset1 = mysql_query($query_Recordset1, $maDeuxiemeConnexion) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);

$email=$row_Recordset1['mail'];
$sujet="Votre inscription à notre newsletter";
$message="Bonjour,\n\n";
$message.="Vous venez de vous inscrire à la newsletter de monsite.com \n";
$message.="Voici vos codes d'accès : \n";
$message.="Login :".$row_Recordset1['mail']."\n";
$message.="Mot de passe :".$row_Recordset1['password']."\n";
$message.="Si vous souhaitez vous désabonner, cliquez ici : http://monsite.comdesabonne_newsletter.php?id_abonne=".$row_Recordset1['id_abonne']."\n";
$headers="From: [email protected] \n";
$headers.="MIME-version: 1.0\n";
$headers.="Content-type: text/html; charset= iso-8859-1\n";
$headers.="Bcc: [email protected]\n";
mail($email,$sujet,$message,$headers);
?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>monsite | Inscription</title>
</head>

<body>
Un e-mail vous a été adressé à l’adresse que vous nous avez communiquée, confirmant votre inscription.
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>

Petit nouveau ! | 7 Messages

27 août 2011, 12:24

up :D