Faille(s) ou pas dans ma newsletter ?

Faille(s) ou pas dans ma newsletter ? - PHP - Programmation

Marsh Posté le 17-06-2005 à 18:29:31    

Salut,
 
J'ai finis ma newsletter y'a 20 - 25 minutes et depuis je cherche des éventuelle faille :) mais j'en ai pas trouvée :D
 
Donc si vous pouviez regarder sa serai bien cool ;)
 

Code :
  1. <?php
  2. include('a.php');
  3. if(isset($_GET['action']))
  4. {
  5. if($_GET['action'] == 'verif')
  6. {
  7.  if(empty($_POST['email']))
  8.  {
  9.   echo '<p class="erreur">Le champ <strong>Email</strong> est manquant, veuillez recommencer.<br /><br />:: <a href="newsletter.php">Retour</a> ::</p>';
  10.  }
  11.  else
  12.  {
  13.   if($_POST['type'] == 'Inscription')
  14.   {
  15.    $q_email_inscription=mysql_query('SELECT COUNT(email) AS nb_email FROM newsletter WHERE email="'.$email.'"');
  16.    $r_email_inscription=mysql_fetch_array($q_email_inscription);
  17.    if($r_email_inscription['nb_email'] >= 1)
  18.    {
  19.     echo '<p class="erreur">L\'email <strong>'.$email.'</strong> est déjà enregistré dans la base de données.<br /><br />:: <a href="newsletter.php">Retour</a> ::</p>';
  20.    }
  21.    else
  22.    {
  23.     $email=htmlentities(htmlspecialchars(trim(strtolower($_POST['email']))), ENT_QUOTES);
  24.     $cle=date('his')*date('yish')*4;
  25.     if(!preg_match('`^[[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-_.]?[[:alnum:]])*.([a-z]{2,4})$`',$email))
  26.     {
  27.      echo '<p class="erreur"><strong>'.$email.'</strong> n\'est pas un format d\'email valide.<br /><br />:: <a href="newsletter.php">Retour</a> ::</p>';
  28.     }
  29.     else
  30.     {
  31.      mysql_query("INSERT INTO newsletter VALUES('','$email','$cle','')" );
  32.      $From  = "From:eurotorrent@gmail.com\n";
  33.      $From .= "MIME-version: 1.0\n";
  34.      $From .= "Content-type: text/html; charset= iso-8859-1\n";
  35.      mail($email,'Newsletter de Euro-Torrent','Bonjour,<br /><br />Vous venez de demander votre inscription à la Newsletter de <a href="http://www.euro-torrent.tk">Euro-Torrent</a>.<br /><br />Il vous faut maintenant valider l\'inscription pour être définitivement inscrit.<br /><br />Pour cela, cliquez sur le lien ci-dessous :<br /><br /><a href="http://ftptrashersite.free.fr/newsletter.php?action=validation&style=inscription&email='.$email.'&cle='.$cle.'">Validez ici</a><br /><br />OU<br /><br />http://ftptrashersite.free.fr/newsletter.php?action=validation&style=inscription&email='.$email.'&cle='.$cle.'<br /><br />Vous devez valider l\'inscription avant 7 jours.<br /><br />A bientôt sur <a href="http://www.euro-torrent.tk">Euro-Torrent</a>',$From);
  36.      echo '<p class="erreur">L\'email <strong>'.$email.'</strong> a été correctement ajouté dans notre base de données.<br /><br />Vous allez recevoir un email pour valider votre inscription.<br /><br />Cela permet d\'éviter l\'inscription de faux emails et de s\'assurer que cette adresse email vous appartient.<br /><br />Si vous ne validez pas votre inscription avant 7 jours, il faudra recommencer.<br /><br />:: <a href="newsletter.php">Retour</a> ::</p>';
  37.     }
  38.    }
  39.   }
  40.   elseif($_POST['type'] == 'Desinscription')
  41.   {
  42.    $email=htmlentities(htmlspecialchars(trim(strtolower($_POST['email']))), ENT_QUOTES);
  43.    if(!preg_match('`^[[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-_.]?[[:alnum:]])*.([a-z]{2,4})$`',$email))
  44.    {
  45.     echo '<p class="erreur"><strong>'.$email.'</strong> n\'est pas un format d\'email valide.<br /><br />:: <a href="newsletter.php">Retour</a> ::</p>';
  46.    }
  47.    else
  48.    {
  49.     $q_verif_email=mysql_query('SELECT COUNT(email) AS nb_email FROM newsletter WHERE email="'.$email.'"');
  50.     $r_verif_email=mysql_fetch_array($q_verif_email);
  51.     if($r_verif_email['nb_email'] == 0)
  52.     {
  53.      echo '<p class="erreur">L\'email <strong>'.$email.'</strong> est déjà inscrit dans notre base de donnée.<br /><br />:: <a href="newsletter.php">Retour</a> ::</p>';
  54.     }
  55.     else
  56.     {
  57.      $q_cle_desinscription=mysql_query('SELECT cle FROM newsletter WHERE email="'.$email.'"');
  58.      $r_cle_desinscription=mysql_fetch_array($q_cle_desinscription);
  59.      $From  = "From:eurotorrent@gmail.com\n";
  60.      $From .= "MIME-version: 1.0\n";
  61.      $From .= "Content-type: text/html; charset= iso-8859-1\n";
  62.      mail($email,'Newsletter de Euro-Torrent','Bonjour,<br /><br />Vous venez de demander votre désinscription à la Newsletter de <a href="http://www.euro-torrent.tk">Euro-Torrent</a>.<br /><br />Il vous faut maintenant valider la désinscription pour être définitivement retiré de notre base de données.<br /><br />Pour cela, cliquez sur le lien ci-dessous :<br /><br /><a href="http://ftptrashersite.free.fr/newsletter.php?action=validation&style=desinscription&email='.$email.'&cle='.$r_cle_desinscription['cle'].'">Validez ici</a><br /><br />OU<br /><br />http://ftptrashersite.free.fr/newsletter.php?action=validation&style=desinscription&email='.$email.'&cle='.$r_cle_desinscription['cle'].'<br /><br />A bientôt sur <a href="http://www.euro-torrent.tk">Euro-Torrent</a>',$From);
  63.      echo '<p class="erreur">L\'email <strong>'.$email.'</strong> va être correctement effacé de notre base de données.<br /><br />Vous allez recevoir un email pour valider votre désinscription.<br /><br />Cela permet d\'éviter les fausses désinscription envers les visiteurs et afin de confirmer l\'authenticité de votre requête.<br /><br />:: <a href="newsletter.php">Retour</a> ::</p>';
  64.     }
  65.    }
  66.   }
  67.   else
  68.   {
  69.    echo '<script type="text/javascript">window.location="http://www.euro-torrent.tk";</script>';
  70.   }
  71.  }
  72. }
  73. elseif($_GET['action'] == 'validation')
  74. {
  75.  if(isset($_GET['style']))
  76.  {
  77.   if($_GET['style'] == 'inscription')
  78.   {
  79.    $email=htmlentities(htmlspecialchars(trim(strtolower($_GET['email']))), ENT_QUOTES);
  80.    $cle=htmlentities(htmlspecialchars(trim(strtolower($_GET['cle']*1))), ENT_QUOTES);
  81.    $q_email_validation_inscription=mysql_query('SELECT COUNT(email) AS email_validation FROM newsletter WHERE email="'.$email.'"');
  82.    $r_email_validation_inscription=mysql_fetch_array($q_email_validation_inscription);
  83.    if($r_email_validation_inscription['email_validation'] == 1)
  84.    {
  85.     $q_cle_validation_inscription=mysql_query('SELECT COUNT(cle) AS cle FROM newsletter WHERE cle="'.$cle.'"');
  86.     $r_cle_validation_inscription=mysql_fetch_array($q_cle_validation_inscription);
  87.     if($r_cle_validation_inscription['cle'] == 1)
  88.     {
  89.      mysql_query('UPDATE newsletter SET validation=1 WHERE email="'.$email.'" AND cle="'.$cle.'"');
  90.      echo '<p class="erreur">Votre email <strong>'.$email.'</strong> a bien été validé.<br /><br />:: <a href="newsletter.php">Retour</a> ::</p>';
  91.     }
  92.     else
  93.     {
  94.      echo '<p class="erreur">Votre clé de validation <strong>'.$key.'</strong> est incorrect.<br /><br />:: <a href="newsletter.php">Retour</a> ::</p>';
  95.     }
  96.    }
  97.    else
  98.    {
  99.     echo '<p class="erreur">Votre email de validation <strong>'.$email.'</strong> est incorrect.<br /><br />:: <a href="newsletter.php">Retour</a> ::</p>';
  100.    }
  101.   }
  102.   elseif($_GET['style'] == 'desinscription')
  103.   {
  104.    $email=htmlentities(htmlspecialchars(trim(strtolower($_GET['email']))), ENT_QUOTES);
  105.    $cle=htmlentities(htmlspecialchars(trim(strtolower($_GET['cle']*1))), ENT_QUOTES);
  106.    $q_email_validation_desinscription=mysql_query('SELECT COUNT(email) AS email_validation FROM newsletter WHERE email="'.$email.'"');
  107.    $r_email_validation_desinscription=mysql_fetch_array($q_email_validation_desinscription);
  108.    if($r_email_validation_desinscription['email_validation'] == 1)
  109.    {
  110.     $q_cle_validation_desinscription=mysql_query('SELECT COUNT(cle) AS cle FROM newsletter WHERE cle="'.$cle.'"');
  111.     $r_cle_validation_desinscription=mysql_fetch_array($q_cle_validation_desinscription);
  112.     if($r_cle_validation_desinscription['cle'] == 1)
  113.     {
  114.      mysql_query('DELETE FROM newsletter WHERE email="'.$email.'" && cle="'.$cle.'"');
  115.      echo '<p class="erreur">Votre email <strong>'.$email.'</strong> a bien été retiré de notre base de données.<br /><br />:: <a href="newsletter.php">Retour</a> ::</p>';
  116.     }
  117.     else
  118.     {
  119.      echo '<p class="erreur">Votre clé de validation <strong>'.$key.'</strong> est incorrect.<br /><br />:: <a href="newsletter.php">Retour</a> ::</p>';
  120.     }
  121.    }
  122.    else
  123.    {
  124.     echo '<p class="erreur">L\'email <strong>'.$email.'</strong> est incorrect.<br /><br />:: <a href="newsletter.php">Retour</a> ::</p>';
  125.    }
  126.   }
  127.   else
  128.   {
  129.    echo '<script type="text/javascript">window.location="http://www.euro-torrent.tk";</script>';
  130.   }
  131.  }
  132.  else
  133.  {
  134.   echo '<script type="text/javascript">window.location="http://www.euro-torrent.tk";</script>';
  135.  }
  136. }
  137. else
  138. {
  139.  echo '<script type="text/javascript">window.location="http://www.euro-torrent.tk";</script>';
  140. }
  141. }
  142. else
  143. {
  144. $q_inscrits=mysql_query('SELECT COUNT(email) AS nb_inscrits FROM newsletter WHERE validation="1"');
  145. $r_inscrits=mysql_fetch_array($q_inscrits);
  146. ?>
  147. <script type="text/javascript">
  148. function limite(zone,max)
  149. {
  150. if(zone.value.length>=max)
  151. {
  152.  zone.value=zone.value.substring(0,max);
  153. }
  154. }
  155. </script>
  156. <p>Soyez les premiers avertis des nouveautés et mises à jour du site !</p>
  157. <p><strong>Votre email doit être obligatoirement valide.</strong></p>
  158. <form action="newsletter.php?action=verif" method="post">
  159. <p class="center">
  160. <input type="text" size="30" name="email" oncleup="limite(this,255);" oncledown="limite(this,255);" />&nbsp;<select name="type"><option>Inscription</option><option>Desinscription</option></select><br /><br />
  161. <input type="submit" value="Valider" />
  162. </p>
  163. </form>
  164. <p class="center"><strong><?=nbr($r_inscrits['nb_inscrits']); ?></strong> inscrits</p>
  165. <?php
  166. }
  167. include('b.php');
  168. ?>


 
merci à vous !


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, 1810, Taverne « Chez Bonaparte »
Reply

Marsh Posté le 17-06-2005 à 18:29:31   

Reply

Marsh Posté le 17-06-2005 à 18:42:04    

lol

Reply

Marsh Posté le 17-06-2005 à 18:42:23    

[:austiniste]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 17-06-2005 à 18:50:38    

Qoua ? :D


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, 1810, Taverne « Chez Bonaparte »
Reply

Marsh Posté le 18-06-2005 à 02:56:02    

Une faille de quoi  :??:


---------------
- Annuaire  PHOTOGRAPHIE sur Tagbox.fr -
Reply

Marsh Posté le 18-06-2005 à 03:20:58    

Dans une montagne
...
De sécurité...


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, 1810, Taverne « Chez Bonaparte »
Reply

Marsh Posté le 18-06-2005 à 09:52:55    

Tu te fouttrais pas de notre gueule?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 18-06-2005 à 10:36:13    

La faille, c'est ta façon de coder.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 18-06-2005 à 10:41:11    

sircam a écrit :

La faille, c'est ta façon de coder.


 
dans le même temps, c'est du PHP [:spamafote]


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 18-06-2005 à 10:43:17    

elianor a écrit :

dans le même temps, c'est du PHP [:spamafote]


 
Faut arreter avec ça... D'accord que PHP autorise a faire du code de merde ... mais en Java on peut faire des trucs tout aussi foireux aussi ... C'est pas parceque ca passe a l'interpreteur que c'est comme ça qu'il faut faire ...


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 18-06-2005 à 10:43:17   

Reply

Marsh Posté le 18-06-2005 à 10:45:01    

esox_ch a écrit :

Faut arreter avec ça... D'accord que PHP autorise a faire du code de merde ... mais en Java on peut faire des trucs tout aussi foireux aussi ... C'est pas parceque ca passe a l'interpreteur que c'est comme ça qu'il faut faire ...


+1
 
"PHP = code à jeter" -> c'est pas une raison de coder comme un porc. :o


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 18-06-2005 à 10:50:29    

esox_ch a écrit :

Faut arreter avec ça...


 
j'était TT Vendredi, je suis en manque :o


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 18-06-2005 à 10:53:46    

D'accord :D ... On se defoule sur le VB? :D :D :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 18-06-2005 à 11:38:51    

esox_ch a écrit :

D'accord :D ... On se defoule sur le VB? :D :D :D


Fait trop chaud.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 18-06-2005 à 18:07:31    

Pour le moment je transpire sur du Java :D J'ai trouvé un stage 100% JSP et j'ai jamais utilisé Java dans ce context :D :D :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 18-06-2005 à 22:51:42    

esox_ch a écrit :

Pour le moment je transpire sur du Java :D J'ai trouvé un stage 100% JSP et j'ai jamais utilisé Java dans ce context :D :D :D


Pour bien faire, abstiens-toi de mettre du Java dans tes JSP.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 19-06-2005 à 08:23:23    

Et je dois mettre quoi dedans alors? :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 19-06-2005 à 14:35:02    

Beaucoup trop de trucs chelou dans ce code... Trop long à vérifier :(

Reply

Marsh Posté le 19-06-2005 à 14:41:30    

esox_ch a écrit :

Et je dois mettre quoi dedans alors? :D


 
tu utilise des taglibs [:spamafote] Ce sont des tag qui sont des objets java spécifiques qui vont acceder à la logique métier de ton application.
 
C'est pour ça qu'on parle parfois d'appli 4 tiers pour les JSP.
 
JSP->taglib->couche metier->couche persistance


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 19-06-2005 à 14:42:35    

esox_ch a écrit :

Et je dois mettre quoi dedans alors? :D


 
Servlet, non? :??:

Reply

Marsh Posté le 19-06-2005 à 14:43:06    

elianor a écrit :

tu utilise des taglibs [:spamafote] Ce sont des tag qui sont des objets java spécifiques qui vont acceder à la logique métier de ton application.
 
C'est pour ça qu'on parle parfois d'appli 4 tiers pour les JSP.
 
JSP->taglib->couche metier->couche persistance


 
Je m'incline...

Reply

Marsh Posté le 19-06-2005 à 14:44:32    

cesarr89 a écrit :

Je m'incline...


 
au début qu'on en fait, on a tendance à fairte comme en PHP, puis on apprend à l'utiliser et à bien extraire les acces dynamique, à en faire une bibliothèque réutilisatble au fil des pages. Le concept de taglib vient tout seul au bout d'un moment [:spamafote]


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 19-06-2005 à 14:45:40    

J'imagine...

Reply

Marsh Posté le 19-06-2005 à 17:44:40    

D'accord, mais dans le cadre de cette entreprise ils m'ont dit que je n'aurait a ecrire qu'en Java ... et bon aussi des requetes SQL mais ça c'est secondaire .


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 19-06-2005 à 18:16:52    

esox_ch a écrit :

D'accord, mais dans le cadre de cette entreprise ils m'ont dit que je n'aurait a ecrire qu'en Java ... et bon aussi des requetes SQL mais ça c'est secondaire .


Tu continues à écrire en Java, mais pas dans les JSP. Tu peux p.e. travailler avec Struts et des taglibs (d'autres frameworks existent).
 
Et pas de taglib pour accéder directement à la DB, à la Cold Fusion, please.  :non:  
 
L'approche "à la PHP" comme on la connaît dans 99% des cas, c'est pas ce qu'il y a de plus modulaire.  [:airforceone]
 
Ceci dit, j'ai rien d'un fanatique, et si c'est pour 2 ou 3 pages et que tu fourres ta business logic, ta data access layer et ta persistence layer dans tes JSP ([:austiniste]), je ne te filerai pas de coup de pelle à clous. Du moins, pas tant que tu ne posteras pas un tel code ici. :D


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 19-06-2005 à 21:58:09    

Ok ... bein pour le moment j'ai jamais travaillé avec des frameworks ... mais je sais que laba ils en utilisent :D ... Mais bon c'est un stage hein ... faut bien que j'apprenne des trucs :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 29-08-2005 à 18:15:51    

Je suis un porc et fiere de l'être !!! :lol:
 
Non sérieux, j'arrive pas à coder bien propre mais bon faut du temps et de la patience ;)


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, 1810, Taverne « Chez Bonaparte »
Reply

Marsh Posté le 29-08-2005 à 19:01:58    

Un raison particulière à ce up après plus de 2 mois ?
 
[:pingouino]

Reply

Marsh Posté le 29-08-2005 à 22:39:39    

Citation :

"PHP = code à jeter" -> c'est pas une raison de coder comme un porc


 
Si php egale code a jeter on le remplace par quoi ??? ruby?

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed