Récupération d'un ID

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Récupération d'un ID

Re: Récupération d'un ID

par sam12 » 01 août 2011, 04:06

D'après ce que je comprends, tu as peur que le créateur du topic garde un $id_reponse à 0 ce qui avec ma solution ne corrige pas le probleme.
Il faut revoir une partie du code alors. Ce n'est pas parce-qu'on ne poste pas qu'on n'est pas intéressé d'ailleurs.
$id_reponse ne devrait pas servir à envoyer le mail. Il faut plutôt créer un nouveau booléen et par une checkbox (par exemple) rajoute true ou false dans ce champ.
Si le membre clique => on passe à true et le prochain qui poste envoie 1 mail groupé à tous ce qui ont coché la case (donc tous ceux qui ont la valeur à true).

En y réfléchissant c'est ce que devrait faire reception_mail=1 non?

Re: Récupération d'un ID

par Invité » 31 juil. 2011, 21:54

Sam12, le problème avec
if (mysql_num_rows($res)>0 && $id_reponse>0)
c'est que id_reponse qui est égal a 0 ne sera jamais pris en compte pour l'envoi de mail automatique.
Celui qui écrit le sujet prend id=5 par ex et automatiquement récupère la valeur id_reponse=0
Quelqu'un répond à ce même sujet, il prendra la valeur id=6 et id_reponse=5
et encore une autre personne répond, id=7 et id_reponse=5
Lors de la validation du sujet ou de la réponse, il y a l'option d'envoi automatique de mail pour prévenir d'une réponse.
Et le créateur du sujet qui demande a être averti ne le sera pas car id_reponse=0 et
if (mysql_num_rows($res)>0 && $id_reponse>0)
empêchera l’envoie a id_reponse=0
il faut donc réussir a différencier id_reponse=0 lors de la création du sujet et id_reponse=0 lorsqu'une personne a répondu.
J'espère bien me faire comprendre :mrgreen: :mrgreen:

Re: Récupération d'un ID

par sam12 » 31 juil. 2011, 18:26

if (mysql_num_rows($res)>0 && $id_reponse>0)
?

Re: Récupération d'un ID

par celine34 » 31 juil. 2011, 17:44

Nouveau petit soucis
// Gestion des envois par email
if ($envoiParMail && function_exists('mail')) {
        $emails = '';
        // Récupération des emails pour l'envoi
        $sql = 'SELECT DISTINCT(email) as mail FROM '.$cat1.' WHERE (reception_mail=1) AND (email<>"'.mysql_real_escape_string($email).'")';
        $sql.= ' AND (id='.mysql_real_escape_string($id_reponse).' OR id_reponse='.mysql_real_escape_string($id_reponse).')';

        $res = mysql_query($sql) or die(showError('3', mysql_error()));
        if (mysql_num_rows($res)>0) {
                // Contenu du mail

                $sujet = 'Vous avez une réponse en attente. ';
                $corps = 'Bonjour,'."\n\n";
                $corps.= $nom;
                $corps.= ' a apporté une réponse à  votre sujet "';
                $corps.= $titre;
                $corps.= '". Vous pouvez consulter le message en cliquant sur l\'adresse ci-dessous: '."\n\n";
                $corps.= 'http://www.nom_de_domaine.fr/forum/'.$cat1.'/read_mess.php?id='. $id_reponse;
                $corps.= "\n\n\n";
                // Envoi des emails
                while($r = mysql_fetch_array($res)) {
                        mail($r['mail'], $sujet, $corps,'From: '.$cat1.' '.$nomsite.' <'.$webmail.'>'."\n");
                }
        }
}
mysql_close();
Je voudrai rajouter dans la requête quelque chose du genre "Si id_reponse=0=1er enregistrement alors pas d'envois d'email"
mais je ne trouve nul part comment faire :oops:

Re: Récupération d'un ID

par celine34 » 31 juil. 2011, 14:13

Oups, j'ai un peu honte la...
J'étais tellement à la recherche de la récupération de $id que je n'ai pas pensé à $id_reponse
Merci de m'avoir aidé, cela fonctionne parfaitement :-)

Re: Récupération d'un ID

par moogli » 31 juil. 2011, 01:51

salut,

je comprend pas ta question.

où est le problème ?

tu a $id_reponse dans tes requêtes SQL tu ne sais pas l'utiliser après dans le mail ?


@+

Récupération d'un ID

par celine34 » 30 juil. 2011, 19:25

Bonjour a tous.
Je suis en train de créer un petit forum et j'y inclue la possibilité de recevoir par email un message automatique indiquant une nouvelle réponse au sujet posté.
Le problème c'est que je n'arrive pas à récupérer l'id du sujet en question.
Un petit exemple.
Je poste mon sujet (il prend comme valeur id=5) et je coche la case "recevoir par email les réponses" (reception_mail=1) et comme c'est un sujet et non une réponse, id_reponse=0
Une personne répond, son message prend la valeur id=6 et id_reponse=5 (id du sujet).
je désire donc récupérer l'id=5 et l'inclure dans l'adresse internet qui se trouve dans le corps de l'email

Voici mon code:
// Gestion des envois par email
if ($envoiParMail && function_exists('mail')) {
	$emails = '';
	// Récupération des emails pour l'envoi
	$sql = 'SELECT DISTINCT(email) as mail FROM '.$cat1.' WHERE (reception_mail=1) AND (email<>"'.mysql_real_escape_string($email).'")';
	$sql.= ' AND (id='.mysql_real_escape_string($id_reponse).' OR id_reponse='.mysql_real_escape_string($id_reponse).')';

	$res = mysql_query($sql) or die(showError('3', mysql_error()));
	if (mysql_num_rows($res)>0) {
		// Contenu du mail

		$sujet = 'Vous avez une réponse en attente. ';
		$corps = 'Bonjour,'."\n\n";
		$corps.= $nom;
		$corps.= ' a apporté une réponse à  votre sujet "';
		$corps.= $titre;
                $corps.= '". Vous pouvez consulter le message en cliquant sur l\'adresse ci-dessous: '."\n\n";
		$corps.= 'http://www.nom_de_domaine.fr/forum/'.$cat1.'/read_mess.php?id='. $id;
		$corps.= "\n\n\n";
		// Envoi des emails
		while($r = mysql_fetch_array($res)) {
			mail($r['mail'], $sujet, $corps,'From: '.$cat1.' '.$nomsite.' <'.$webmail.'>'."\n");
		}
	}
}
mysql_close();
Si quelqu'un a une idée... :-)