Précédent   Forum des professionnels en informatique > PHP > Scripts > Forum > phpBB
phpBB Avant de poster -> Cours phpBB, FAQ phpBB et Sources phpBB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/01/2007, 02h42   #1
Membre du Club
 
Homme Didier Ungar
Développeur Web
Inscription : mars 2006
Messages : 115
Détails du profil
Informations personnelles :
Nom : Homme Didier Ungar
Localisation : France

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

Informations forums :
Inscription : mars 2006
Messages : 115
Points : 42
Points : 42
Par défaut Un message privé fait de l'exterieur.

Voila,
Je cherche a envoyer des messages automatiques a mes membres en fonction de se qui se passe dans mon site.

Pour ça j'ai crée cette fonction :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
function mp_phpBB2($dest,$titre,$msg,$from){
	mysql_query("INSERT INTO `phpbb_privmsgs` ( `privmsgs_id` , `privmsgs_type` , `privmsgs_subject` , `privmsgs_from_userid` , `privmsgs_to_userid` , `privmsgs_date` , `privmsgs_ip` , `privmsgs_enable_bbcode` , `privmsgs_enable_html` , `privmsgs_enable_smilies` , `privmsgs_attach_sig` )
	VALUES (
	NULL , '0', '$titre', '$from', '$dest', '".time()."', '".$_SERVER['REMOTE_ADDR']."', '1', '0', '1', '1'
	);");
	$id_msg = mysql_insert_id();
	mysql_query("INSERT INTO `phpbb_privmsgs_text` ( `privmsgs_text_id` , `privmsgs_bbcode_uid` , `privmsgs_text` )
	VALUES (
	$id_msg, '0', '$msg'
	);");
 
}
Je ne comprend pas pourquoi certain des messages apparaisse sans corp.
(phpbb_privmsgs_text ne se remplit pas toujours.)
DidUngar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2007, 07h15   #2
Membre éclairé
 
Inscription : août 2006
Messages : 379
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : août 2006
Messages : 379
Points : 383
Points : 383
tu peux rajouter des ' ' autour de ton $id_msg.

Ensuite le problème, il me semble, c'est au niveau des id.
La valeur $id_msg doit être égal à la valeur privmsgs_id du tableau 1.

Bonne chance.
SpiritOfDoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 17h15   #3
Membre actif
 
Étudiant
Inscription : octobre 2005
Messages : 193
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2005
Messages : 193
Points : 176
Points : 176
Envoyer un message via MSN à Darkenshin Envoyer un message via Skype™ à Darkenshin
Salut,

Même si c'est codé pour phpBB tu devrais trouver pourquoi cela bloque
http://mods.u-web.org/viewtopic.php?cat=5&id=26
Darkenshin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 21h20   #4
Membre du Club
 
Homme Didier Ungar
Développeur Web
Inscription : mars 2006
Messages : 115
Détails du profil
Informations personnelles :
Nom : Homme Didier Ungar
Localisation : France

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

Informations forums :
Inscription : mars 2006
Messages : 115
Points : 42
Points : 42
Je suis sur du numéro.
mysql_insert_id(); Donne le dernier chiffre d' incrémentassions utiliser dans la base de donnée.

Pour les guillemets ça peut être ça.

Je test actuellement la fonction que vous m'avez passer. Je vous tient au courant.
DidUngar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2007, 03h40   #5
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Il faudrait que tu rajoutes un die(mysql_error()) mais je suis prêt à parier que ça fonctionne dans certains cas. Teste avec un message composé d'un mot pour voir
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2007, 03h25   #6
Membre du Club
 
Homme Didier Ungar
Développeur Web
Inscription : mars 2006
Messages : 115
Détails du profil
Informations personnelles :
Nom : Homme Didier Ungar
Localisation : France

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

Informations forums :
Inscription : mars 2006
Messages : 115
Points : 42
Points : 42
Darkenshin, ta solution n'as pas marcher.

Kerod, je vais tester.
DidUngar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2007, 03h31   #7
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Je dis ça car c'est censé fonctionner et que ça peut venir uniquement d'un mauvais échappement de la chaine msg
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2007, 23h53   #8
Membre du Club
 
Homme Didier Ungar
Développeur Web
Inscription : mars 2006
Messages : 115
Détails du profil
Informations personnelles :
Nom : Homme Didier Ungar
Localisation : France

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

Informations forums :
Inscription : mars 2006
Messages : 115
Points : 42
Points : 42
SpiritOfDoc ta méthode n'as pas fonctionné.

Kerod, il m'indique une syntaxe MySQL de mauvaise version.
DidUngar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2007, 04h22   #9
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Et c'est ? Mets moi tout le message d'erreur, sans lui je peux rien faire
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 14h14   #10
Membre actif
 
Étudiant
Inscription : octobre 2005
Messages : 193
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2005
Messages : 193
Points : 176
Points : 176
Envoyer un message via MSN à Darkenshin Envoyer un message via Skype™ à Darkenshin
DidUngar, la fonction que je t'ai montré est faite pour fonctionner pour phpBB

J'ai trouvé le problème il est simple:
Citation:
function mp_phpBB2($dest,$titre,$msg,$from)
{
$sql = "INSERT INTO phpbb_privmsgs VALUES
(
NULL , '1', '$titre', '$from', '$dest', '".time()."', '".$_SERVER['REMOTE_ADDR']."', '1', '0', '1', '1'
);";
mysql_query($sql);

$id_msg = mysql_insert_id();

$sql2 = "INSERT INTO phpbb_privmsgs_text VALUES
(
$id_msg, '0', '$msg'
);";
mysql_query($sql2);
}
La fonction marche bien je l'ai testé parcontre c'est vrai qu'il serai mieux de tester si la requête fonctionne ou pas
Darkenshin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2007, 19h44   #11
Membre du Club
 
Homme Didier Ungar
Développeur Web
Inscription : mars 2006
Messages : 115
Détails du profil
Informations personnelles :
Nom : Homme Didier Ungar
Localisation : France

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

Informations forums :
Inscription : mars 2006
Messages : 115
Points : 42
Points : 42
J'avais déjà modifier le code avec le 1.
J'avais modifier par apport a la fonction que tu m'as déjà passer.

Mais le bug reste.
Tu as fait tourner sur quel version de MySql?
( Je suis en 5.0 )
DidUngar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2007, 12h51   #12
Membre actif
 
Étudiant
Inscription : octobre 2005
Messages : 193
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2005
Messages : 193
Points : 176
Points : 176
Envoyer un message via MSN à Darkenshin Envoyer un message via Skype™ à Darkenshin
Citation:
Apache version :
Apache/2.0.59 (Win32)

PHP version :
4.4.4

Loaded extensions :
standard, bcmath, calendar, ctype, com, ftp, mysql, odbc, overload, pcre, session, tokenizer, xml, wddx, zlib, apache2handler, mbstring

MySQL version :
5.0.24a-community-nt
Darkenshin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2007, 18h15   #13
Membre du Club
 
Homme Didier Ungar
Développeur Web
Inscription : mars 2006
Messages : 115
Détails du profil
Informations personnelles :
Nom : Homme Didier Ungar
Localisation : France

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

Informations forums :
Inscription : mars 2006
Messages : 115
Points : 42
Points : 42
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'os ( 3786 )

Ba voila l'erreur.
DidUngar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2007, 18h26   #14
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Je t'ai dit que ça vient pas du code (disons en quelque sorte) mais de ta chaine de caractères.

Affiche toute l'erreur stp
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2007, 18h33   #15
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Il faut que tu protèges tes différentes variables comme le posteur et le message avec l'une des fonctions énumérées ici : Comment se protéger des failles d'injection ?
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 15h08   #16
Membre actif
 
Étudiant
Inscription : octobre 2005
Messages : 193
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2005
Messages : 193
Points : 176
Points : 176
Envoyer un message via MSN à Darkenshin Envoyer un message via Skype™ à Darkenshin
D'ou l'utilisation de la fonction quote_smart dans ma fonction send_mp ^^
j'avoue que j'ai pas test avec des apostrophes
Darkenshin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2007, 12h41   #17
Membre du Club
 
Homme Didier Ungar
Développeur Web
Inscription : mars 2006
Messages : 115
Détails du profil
Informations personnelles :
Nom : Homme Didier Ungar
Localisation : France

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

Informations forums :
Inscription : mars 2006
Messages : 115
Points : 42
Points : 42
Je ne pense pas avoir a les protegers,
Je génére de maniére automatique le message et aucun utilisateur ne peut mettre du texte dans la requette.

je pense que l'erreur vient de la partie 2 :
Code :
1
2
3
4
	mysql_query("INSERT INTO `phpbb_privmsgs_text` ( `privmsgs_text_id` , `privmsgs_bbcode_uid` , `privmsgs_text` )
	VALUES (
	$id_msg, '0', '$msg'
	);") or die(mysql_error());
DidUngar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2007, 17h46   #18
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Au risque de me répéter : Cette variable doit être protégé $msg

Sinon il y aura toujours des erreurs d'insertion dans la deuxième table. Comme je l'ai déjà dit plus haut :
Comment se protéger des failles d'injection ?
Et plus précisement : mysql_ escape_ string
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2007, 20h07   #19
Membre du Club
 
Homme Didier Ungar
Développeur Web
Inscription : mars 2006
Messages : 115
Détails du profil
Informations personnelles :
Nom : Homme Didier Ungar
Localisation : France

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

Informations forums :
Inscription : mars 2006
Messages : 115
Points : 42
Points : 42
Au finial j'ai opter pour un envoye d'email.

Mais j'ai l'erreur la :
Failed sending email :: PHP ::

DEBUG MODE

Line : 234
File : emailer.php
DidUngar est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h45.


 
 
 
 
Partenaires

Hébergement Web