Accueil   Accueil    Forum   Forum    Download   Download    Livre d'or   Livre d'or    Contact   Contact    Liens Web   Liens Web

[contact] Reprise du module - CMS KwsPHP - Le site clés en main

Colonne de gauche

Espace membre

Privé Masquer le formulaire de connexion


Se souvenir de moi ?


Mot de passe oublié

Menu

Forum

Sujets Importants

fleche basForum : Masquer l’entête

Accès rapide :

 

Effectuer une Recherche avancée OU


fleche bas[Résolu] [contact] Reprise du module  [6 réponses]

fleche bas

samixite
starsj1.png
Newbie


avatar
Hors ligne

Nombre de posts: 9
Inscrit(e) le: 10 mai 2008
Visiter son site
Imprimer Permalien lundi 9 février 2009 à 16:24  
Bonjour, bonjour,

J'ai un problème pour adapter le module contact.
En fait, j'aimerai qu'un membre choisit dans une liste une date qui l'intéresse, ce qui l'envoie sur une autre page où il peut écrire un mail à la personne concernée.
Donc l'adresse du destinataire est variable.
Voici une partie du code (de toutes façons c'est celui du module contact, y'a que les 10 première lignes qui sont ajoutées) :


Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
  1. <?php  
  2. #####!!!#####
  3.  
  4. bloc_head('Contact');
  5.     $garde=$_POST['garde2'];
  6.     $reqsql=mysql_query("SELECT * FROM `doubleg` WHERE DATE_FORMAT(date, '%d/%m/%Y') ='".$garde."'");
  7.     $req2sql=mysql_fetch_assoc($reqsql);
  8.     $email2=$req2sql['email'];
  9.     $pseudodugars=$req2sql['pseudo'];
  10.  
  11. //Après c'est la reprise du code du module contact jusqu'à la fin, je me suis arrêté au moment où ça envoie le mail
  12.  
  13. if ($_POST['int_ok']==1 && (sha1 ($_POST['sql_code_secu'].date('Ymd')) == $_POST['code']))
  14. {
  15.     $invite = ax($_REQUEST['sql_invite']);
  16.     $sujet = bbcode($_REQUEST['sql_sujet']);
  17.     $email = ax($_REQUEST['sql_email']);
  18.     $texte = $_REQUEST['texte'];
  19.  
  20.  
  21.     if ($autorisation_tiny_mce)
  22.     {
  23.         $texte = str_replace ("\r\n",'',$texte);
  24.         $texte = bbcode($texte,0,1,0,1,0);
  25.     }
  26.     else
  27.     {
  28.         $texte = bbcode($texte);
  29.     }
  30.     //Envoi d'un mail au destinataire
  31.     if ($invite !='' && $sujet !='' && $texte !='')
  32.     {
  33.         $atom   = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';        // caractères autorisés avant l'arobase
  34.         $domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)';    // caractères autorisés après l'arobase (nom de domaine)
  35.  
  36.         $regex = '/^' . $atom . '+' .                    // Une ou plusieurs fois les caractères autorisés avant l'arobase
  37.         '(\.' . $atom . '+)*' .                            // Suivis par zéro point ou plus
  38.                                                         // séparés par des caractères autorisés avant l'arobase
  39.         '@' .                                            // Suivis d'un arobase
  40.         '(' . $domain . '{1,63}\.)+' .                    // Suivis par 1 à 63 caractères autorisés pour le nom de domaine
  41.                                                         // séparés par des points
  42.         $domain . '{2,63}$/i';                            // Suivi de 2 à 63 caractères autorisés pour le nom de domaine
  43.  
  44.         // test de l'adresse e-mail
  45.         if (preg_match($regex, $email))
  46.         {
  47.  
  48.             $envoi = envoi_mail(
  49.                 $invite,
  50.                 $email,
  51.                 $expediteur,
  52.                 $email_expediteur,
  53.                 'Message de la corpo : '.$sujet,
  54.                 $texte,
  55.                 $email_type,
  56.                 $autorisation_tiny_mce ? 1:0
  57.             );
  58.  
  59. #####!!!#####
  60. ?>


Ca, (
Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
  1. <?php  
  2. #####!!!#####
  3.  
  4. $garde=$_POST['garde2'];
  5.     $reqsql=mysql_query("SELECT * FROM `doubleg` WHERE DATE_FORMAT(date, '%d/%m/%Y') ='".$garde."'");
  6.     $req2sql=mysql_fetch_assoc($reqsql);
  7.     $email2=$req2sql['email'];
  8.     $pseudodugars=$req2sql['pseudo']; 
  9.  
  10. #####!!!#####
  11. ?>
)
ça fonctionne, je l'utilise plus bas dans le script et il n'y a pas de problème.

Le problème, c'est par exemple quand je veux faire $email_expediteur=$email_expediteur.','.$email2; ou $expediteur=$pseudodugars; et bah ça fonctionne pas...

Pour cerner un peu plus le problème, j'ai essayé de remplacer $texte par une des autres variables : ça m'envoie rien si $texte=$pseudodugars ou $email2 ou $req2sql. En fait, ça m'affiche quelque chose que pour $texte = $reqsql.

Donc j'ai l'impression que mysql_fetch et ses résultats ne passent pas à cet endroit.

J'avoue que là ça dépasse grandement mes compétences, j'aurai donc besoin de votre aide siouplait smiley sg3agrougisg3ag.gif
Édité 1 fois - Dernière édition: 09/02/2009 à 16:26 Par samixite.



Infos CMS KwsPHP


Informations : Avant de poster un sujet sur le forum

Veuillez avant tout vérifiez la comparaison de vos fichiers sur votre site
Mon compte / Outils / Comparaison


La recherche avancée du forum (en ciblant au mieux les options de la recherche)
La Faq - La documentation - La documentation en vidéo - Le sujet "Install et Mise à jour"
Vous devez lire en priorité le topic de la 1.6 pour en découvrir ses fonctionnalités


Afficher



σmike007
starsj7.png
Dieu Supreme


avatar
Hors ligne

Nombre de posts: 7551 (1.02/Jour)
Inscrit(e) le: 05 juillet 2006
Visiter son site
Imprimer Permalien mardi 10 février 2009 à 00:17  
bein il faudrait deja etre sur que $garde n'est pas vide

de plus ta requete n'as pas lieu d'etre lancé a chaque chargement de page mais uniquement après avoir choisi une date


Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
  1. <?php  
  2. #####!!!#####
  3.  
  4.  
  5. $garde = $_POST['garde2']
  6. if (!empty($garde))
  7. {
  8.     $req_garde=reqmysql('SELECT * FROM `doubleg` WHERE DATE_FORMAT(date, '%d/%m/%Y') ="'.$garde.'" ');
  9.     $rep_garde=mysql_fetch_object($req_garde);
  10.     $garde_email2=$rep_garde->email;
  11.     $garde_pseudodugars=$rep_garde->pseudo; 
  12.     
  13.     le reste du code
  14. }
  15. else
  16. {
  17.     echo 'Pas de date spécifiée';
  18. }
  19.  
  20.  
  21. #####!!!#####
  22. ?>


le else n'est pas utile, c'est juste pour etre sur , mais te permettra de verifier que tu ne rentre pas dedans

mysql_query pas utile, passe par la fct du portail reqmysql()
j'ai aussi modifié les nom des vars, au cas ou un conflit serait présent

et si tu veux savoir ce que tu recupères aux chargement de la page comme valeur
tu peux ecrire ça avant $garde=...

df_print_r($_POST);
Édité 3 fois - Dernière édition: 10/02/2009 à 00:22 Par mike007. Raison: code


Vous êtes satisfait de l'aide apportée !! Vous avez l'âme généreuse !!

Faite un don du montant souhaité
Un petit don (même de 1 euro) de chaque personne satisfaite permet de témoigner de votre reconnaissance pour le temps passé. merci


Mes Modules ou ceux que j'ai repris en V1.6 : ICI. Module Humour
bbcode_sup => Voir le forum dédié (youtube, daily, zoomimg, deezer, divx, clearbox, apostrophe word, etc...)


samixite
starsj1.png
Newbie


avatar
Hors ligne

Nombre de posts: 9
Inscrit(e) le: 10 mai 2008
Visiter son site
Imprimer Permalien mardi 10 février 2009 à 10:32  
Merci, merci beaucoup j'ai enfin réussi à faire ce que je voulais smiley sg23gbizg23g.png

Pour les autres personnes qui seraient (on sait jamais) dans le même cas que moi, il faut rajouter un ; à la fin de la ligne 2 de mike007 et rajouter un
<input type="hidden" name="garde2" value="'.$garde.'" /> dans le formulaire d'envoi de mail pour éviter qu'en appuyant sur "envoyer" vous ayez : pas de date spécifiée.

Voili voilou, bonne journée à tous !

P.S. : en haut de mon sujet je vois :

Citation :
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/www/ditch/www/kwsphp/includes/PHP_Highlight.php on line 196

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/www/ditch/www/kwsphp/includes/PHP_Highlight.php on line 196




b0b0
starsj3.png
Habitué


avatar
Hors ligne

Nombre de posts: 358 (0.05/Jour)
Inscrit(e) le: 24 juin 2006
Visiter son site
Imprimer Permalien mercredi 11 février 2009 à 10:26  
Petite précision sur la variable garde2 :
$garde = $_POST['garde2'];

Elle est filtrée quelque part cette variable ?(sinon ca sent le XSS la....)


b0b0

if it ain't broken, don't fiix it!


samixite
starsj1.png
Newbie


avatar
Hors ligne

Nombre de posts: 9
Inscrit(e) le: 10 mai 2008
Visiter son site
Imprimer Permalien mercredi 11 février 2009 à 10:58  
J'ai essayé de sécuriser au maximum : cette variable est en fait une date stockée dans la base de données dont l'insertion se fait par les membres mais où ils doivent choisir le jour et le mois dans une liste défilante, et dont le résultat se voit appliquer un ax().
Après il y a moins d'un an j'y connaissais rien en php, donc je ne garantis pas la sécurité absolue.


ΦOtocinclus
Administrateur
stars7.png


avatar
Hors ligne

Nombre de posts: 3163 (0.43/Jour)
Inscrit(e) le: 02 septembre 2006
Visiter son site
Imprimer Permalien mercredi 11 février 2009 à 21:45  

Citation de b0b0 :
Petite précision sur la variable garde2 :
$garde = $_POST['garde2'];

Elle est filtrée quelque part cette variable ?(sinon ca sent le XSS la....)



Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
  1. <?php  
  2. #####!!!#####
  3.  
  4.  
  5. $garde = $_POST['garde2']
  6. if (!empty($garde))
  7. {
  8.     $req_garde=reqmysql('SELECT * FROM `doubleg` WHERE DATE_FORMAT(date, '%d/%m/%Y') ="'.$garde.'" ');
  9.     $rep_garde=mysql_fetch_object($req_garde);
  10.     $garde_email2=$rep_garde->email;
  11.     $garde_pseudodugars=$rep_garde->pseudo; 
  12. }
  13.  
  14.  
  15. #####!!!#####
  16. ?>

heu XSS ? tant qu'on ne l'affiche pas on ne risque pas grand chose, en revanche l'injection SQL me semble plus probable .... donc
Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
  1. <?php  
  2. #####!!!#####
  3.  
  4.  
  5. $garde = $_POST['garde2']
  6. if (!empty($garde))
  7. {
  8.     $req_garde=reqmysql('SELECT * FROM `doubleg` WHERE DATE_FORMAT(date, '%d/%m/%Y') ="'.sp($garde).'" ');
  9.  
  10. #####!!!#####
  11. ?>

Édité 1 fois - Dernière édition: 11/02/2009 à 21:46 Par Otocinclus.



LES C0NS, ÇA OSE TOUT. C'EST MÊME À ÇA QU'ON LES RECONNAÎT.

Michel Audiard


Imprimer Permalien mercredi 11 février 2009 à 22:19  
Ah ben voui il se fait vieux le père b0b0 smiley sg3agp.gif


fleche bas[Résolu] [contact] Reprise du module  [6 réponses]