Erreur de syntaxe quand je veux obliger un utilisateur a mettre un @ et un . dan

gb66 Messages postés 43 Date d'inscription lundi 6 juin 2011 Statut Membre Dernière intervention 27 janvier 2012 - 19 juil. 2011 à 20:06
gb66 Messages postés 43 Date d'inscription lundi 6 juin 2011 Statut Membre Dernière intervention 27 janvier 2012 - 14 août 2011 à 04:38
Bonjour a vous et merci de m'aider voila je veux obliger l'utilisateur a mettre un . et un @ pour un champ formulaire mais quand j'ai rajouter ses ligne
$point=strpos($email,".");

$aroba=strpos($email,"@");

if($point=='')
{echo "Votre email doit comporter un point";}

elseif($aroba=='')
{echo "Votre email doit comporter un '@'";}

j'ai eu un message d'erreur a la ligne

else $email="";

mais si jenleve les ligne du . et du @ je suis capable denvoyer les donner l'erreur doit surement etre cave mais je suis debutant alors si vous pouvez maider a trouver l'erreur se serais vraiment apprecié voici le code php

<?php
if(isset($_POST['email'])) $email=$_POST['email'];
$point=strpos($email,".");
$aroba=strpos($email,"@");
else $email="";
if($point=='')
{echo "Votre email doit comporter un point";}
elseif($aroba=='')
{echo "Votre email doit comporter un '@'";}

if(empty($email))

{
echo "Il y a un champs vide remplissez le";
}

else
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base

mysql_select_db('w4e',$db) or die('Erreur de selection '.mysql_error());
// on écrit la requête sql
$sql = "INSERT INTO compte(id,email) VALUES('','$email')";
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());

// on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';

mysql_close(); // on ferme la connexion
}
?>

merci encore

35 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
19 juil. 2011 à 20:29
Salut,

2 petites choses qui facilitent ... heu ... les choses :
- utilise la balise code
- pense à donner l'erreur que tu obtiens


Tu ne mets pas d'accolades, pourquoi pas, sauf que :
<?php
if($machin)
  echo 'truc';
else
  echo 'bidule';
?>

C'est syntaxiquement valide, mais pas ça :
<?php
if($machin)
  echo 'truc';
  echo 'trucmuche'; // n'est plus dans la condition if()
else // 1 else alors que l'on est plus dans une condition if() => plantage
  echo 'bidule';
?>


Sans accolades seule la ligne qui suit l'instruction if ou else est prise en compte.
Tu as plus d'une ligne dans le if() => tu dois mettre des accolades

<?php
if (isset($_POST['email'])) {
    $email = $_POST['email'];
    $point = strpos($email, ".");
    $aroba = strpos($email, "@");
} else
    $email = "";
//...
?>



Cordialement,

Kohntark -
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
19 juil. 2011 à 20:39
Et puis :
Ta façon de vérifier l'email est disons ... on ne peut plus simpliste.
Ton code accepteras n'importe quoi, par exemple : 098à.è-("-éçetç-"eètàd_à@@@@@dsqnndsf)

pas top, surtout quand l'on voit ce que tu en fais après

Une méthode on ne peut plus simple et fiable :
filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)


Second point :
La sécurité de ta base de données => zéro
Renseigne toi sur les fonctions mysql_real_escape_string() ou mieux, PDO


Cordialement,

Kohntark -
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
19 juil. 2011 à 20:50
bonsoir
ton code n'est pas efficace
tu devrais utiliser une fonction de contrôle
avec une regex
a++


<?php 
//http://dev.obliquid.com/manual/snip_email.html
/** Checks is the provided email address is formally valid
 *  @param string $email email address to be checked
 *  @return true if the email is valid, false otherwise
 */
function checkEmail($email) {
  $regexp="/^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}$/i";
  if ( !preg_match($regexp, $email) ) {
       return false;
  }
  return true;
}


$err=array();
$email=null;

if(isset($_POST['email'])){
$email=$_POST['email']; 
$point=strpos($email,"."); 
$aroba=strpos($email,"@"); 

  if(empty($_POST['email'])){
  $err[]="Il y a un champs vide remplissez le";
  }
  
  elseif(empty($point)){
  $err[]="Votre email doit comporter un point";
  }
  
  elseif(empty($aroba)){
  $err[]="Votre email doit comporter un '@'";
  } 
    
  elseif(!checkEmail($email)){  //false
  $err[]="Votre email est au mauvais format";
  }
  
  
  else{
  }

}else{
//rien de poste
}

////////////////////////////////////////////////////////////////////////////////
/*phase 2*/

if(count($err)>0){ 
  /*affichage des erreurs*/
  foreach($err as $er => $e){
  echo $e.'
';
  }

}else{ 
// connexion à la base 
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error()); 
// sélection de la base 
mysql_select_db('test',$db) or die('Erreur de selection '.mysql_error()); 
// on écrit la requête sql 
//$sql = "INSERT INTO compte(id,email) VALUES('','$email')"; 
// on insère les informations du formulaire dans la table 
//mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error()); 
// on affiche le résultat pour le visiteur 
echo 'Vos infos on été ajoutées.'; 
mysql_close(); // on ferme la connexion 
} 
?>
<form action="" method="post">
">

</form> 


Bonne programmation !
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
19 juil. 2011 à 20:55
de plus comme le precise kohntark
la securité est pas présente
comme ça sa serait mieux

$sql = "INSERT INTO compte(id,email) VALUES('','$email')";
// on insère les informations du formulaire dans la table
$email=mysql_real_escape_string($email);
mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());
// on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';
mysql_close(); // on ferme la connexion

Bonne programmation !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
19 juil. 2011 à 21:26
Salut Cod57,

Je trouve cela très lourd pour un simple contrôle d'email, sans compter que la véritable expression régulière qui valide la conformité d'un mail est bien plus longue que celle de ta fonction. Cela étant je ne suis pas certain que filter_var() soit vraiment conforme à la norme non plus.
... d'ailleurs entre ce qu'autorise la norme et les adresses couramment rencontrées il y a un gouffre.

Tout ça devrait se résumer à :
<?php
if (!isset($_POST['email']) || false === $email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
    echo 'Email invalide';
} else {
    echo 'ok';
    $sql = "INSERT INTO compte(id,email) VALUES('','$email')";
    // ... traitement SQL
}
?>


Inutile selon moi de s'embarrasser avec des "vous avez oublié un point".
Un petit JS qui vérifie juste que le champ n'est pas vide est bien suffisant ... ou alors on vérifie le format directement côté client (en plus du contrôle impératif côté serveur)

Cordialement,

Kohntark -
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
19 juil. 2011 à 21:35
@Kohntark
en effet il faut php 5.3 pour filter_var mais bon ...
vu le niveau de son script je veux rester basique
et qu'il comprenne un peu la façon de faire surtout les tests
en effet cette regex ne contrôle pas tout d'ailleurs
elle pas de moi c'est la première que j'ai trouvé sur google j'ai fait un snippet plus long que j'ai déjà posté sur phpcs
qu'il aurait sans doute mal digéré

a++

Bonne programmation !
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
19 juil. 2011 à 21:51
@Cod57
"en effet il faut php 5.3 pour filter_var mais bon ... "
D'après la doc c'est 5.2.0 J'ose espérer que ça couvre la grande majorité des serveurs.

"vu le niveau de son script je veux rester basique"
Rester basique en proposant une regex !!!
Tu n'y vas pas un peu fort là
Au moins avec filter_var on ne se prend pas la tête c'est on ne peut plus simple.
Mais sur le fond tu as tout à fait raison.

Bonne soirée à toi,

Kohntark -
0
gb66 Messages postés 43 Date d'inscription lundi 6 juin 2011 Statut Membre Dernière intervention 27 janvier 2012
20 juil. 2011 à 06:28
Jmattendais pas vraiment a recevoir des postes merci jai wamp server avec php 5.3.4

jesseye de comprendre se que vous me dite jai esseyer sa je ne sais pas si ses complet et securitaire mais jai une erreur a la ligne 2mais si jai un mot de passe a root pk se ne serais pas securitaire et quelqun peut t'il recuperer les donner de ma base donner ou traffiquer les .php ou les .html

<?php
if(!isset($_POST['email'])) || false === $email = filter_var($POST['email'], FILTER_VALIDATE_EMAIL))
{echo'email invalide'; }
else{ echo'ok'; $email=$_POST['email'];

$point=strpos($email,".");
$aroba=strpos($email,"@");
else $email="";
if($point=='')
{echo "Votre email doit comporter un point";}
elseif($aroba=='')
{echo "Votre email doit comporter un '@'";}

if(empty($email))

{
echo "Il y a un champs vide remplissez le";
}

else
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base

mysql_select_db('w4e',$db) or die('Erreur de selection '.mysql_error());
// on écrit la requête sql
$sql = "INSERT INTO compte(id,email) VALUES('','$email')";
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());

// on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';

mysql_close(); // on ferme la connexion
}
?>
parse error:syntax eroor,unexpected T_BOOLEAN_OR in ...on line 2
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
20 juil. 2011 à 09:17
(re) 1 petite chose qui facilite ... heu ... les choses :
- utilise la balise code, c'est l'icône qu'il y a dans la zone de saisie lorsque tu écris ton message, suffit de choisir "PHP". Ca permet la coloration syntaxique, ce qui permet par exemple de s'apercevoir facilement que l'on a une erreur de syntaxe.

parse error:syntax eroor,unexpected T_BOOLEAN_OR in ...on line 2

=> erreur de syntaxe : opérateur binaire OU inattendu à la ligne 2
=> tu as une parenthèse fermante en trop, ce qui fait que le parser PHP s'attend à trouver une accolade ouvrante, ou rien.


mais si jai un mot de passe a root pk se ne serais pas securitaire et quelqun peut t'il recuperer les donner de ma base donner ou traffiquer les .php ou les .html

(re)=>
Renseigne toi sur les fonctions mysql_real_escape_string() ou mieux, PDO

Je ne peux pas lire la doc à ta place. Elle expliquera mieux que n'importe qui ici les problèmes de sécurité auxquels tu t'exposes.
Je te (re)conseille donc de la lire, et de ne pas hésiter si il y a quelque chose que tu ne comprends pas.
S'il en était besoin :
http://fr2.php.net/manual/en/function.mysql-real-escape-string.php
http://fr2.php.net/manual/en/security.database.sql-injection.php
+ google and co
Même si dans ta requête INSERT il n'est peut être pas possible d'effectuer une injection (quoique) il convient de prendre l'habitude systématique de traiter les données provenant de l'utilisateur, ne serait ce que pour éviter les plantages.
Si j'entre "toto'@machin.truc" dans le champ email que ce passe t il ?


Une autre chose à ne jamais faire :
or die('Erreur de connexion '.mysql_error()); 

Avec ça tu peux donner des informations importantes sur ta base de données.
Si jamais une requête de connexion ou une requête SQL plante l'utilisateur n'a pas à en connaitre la raison, c'est un dysfonctionnement qui te regarde :
utilisateur => "désolé, un plantage à eu lieu"
toi => envoi d'un mail, log de l'erreur, ... avec l'intitulé exact et d'autres infos de débogage.

Par ailleurs tu as encore d'autres erreurs de syntaxe ... celles que j'expliquais dans mon premier post.

Je reformule pour être plus clair :
Sans accolades seule la ligne qui suit l'instruction if ou else est prise en compte.
Tu as plus d'une ligne dans le if() => tu dois mettre des accolades

J'entends par "une ligne" 1 instruction :

<?php
if($machin)
  // la ligne suivante contient 2 instructions, seule la première dépend 
  // du if(), le else générera une erreur
  echo 'truc';echo 'trucmuche';
else // 1 else alors que l'on est plus dans une condition if() => plantage
  echo 'bidule';
?>


Prends donc l'habitude de mettre des accolades partout et indente ton code, tu éviteras les soucis.

Cordialement,

Kohntark -
0
gb66 Messages postés 43 Date d'inscription lundi 6 juin 2011 Statut Membre Dernière intervention 27 janvier 2012
20 juil. 2011 à 22:49
question a chaque donner que jenvoi a la base de donner je doit rajouter mysql_real_escape_string pour proteger ou il y a dautre moment ou je doit utiliser cette fonction et $email va etre proteger partout dans le code php

$email=mysql_real_escape_string($email);



if (!isset($_POST['email']) || false === $email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
echo 'Email invalide';

je ne compren pas sa ||
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
21 juil. 2011 à 11:47
Salut,

Une méthode on ne peut plus simple et fiable :
filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)

Désolé mais non. Cette focntion est bien pratique... mais pas du totu conforme aux RFC ! Il y a pas mal de cas d'email possible qu'elle refuse alors qu'ils sont parfaitement valides. Bref, à éviter. La meilleur alternative que j'ai trouvé est la suivante :
rfc822.php
Ce fichier définis une fonction de vérification de l'email qui se veux respectueuse des RFC 822, 2822 et 5322. C'est libre et gratuit, donc pourquoi se priver de l'utiliser ?
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
21 juil. 2011 à 16:52
Salut,



Désolé mais non. Cette focntion est bien pratique... mais pas du totu conforme aux RFC !

Heu ... oui, comme je le disais dans mon post précédent : "je ne suis pas certain que filter_var() soit vraiment conforme à la norme non plus."
Je n'ai aucune idée sur quoi elle se base d'ailleurs.

Chacun voit midi à sa porte et j'imagine que chacun à sa propre idée sur la question. Voici la mienne :
Il est impossible de vérifier la validité d'une adresse mail sans la tester en réel (envoi, ...)

Partant de là on ne peut être en mesure d'attendre monts et merveilles d'un test.
L'essentiel pour moi est de filtrer un minimum, et ne pas me retrouver avec des trucs totalement exotiques, même si ils sont conformes à la norme.


Il y a pas mal de cas d'email possible qu'elle refuse alors qu'ils sont parfaitement valides.

Comme par exemple : m*+c~n&@tr .?.a--~---*--'--_-&-_--_--a??, valide avec ta proposition, invalide avec filter_var() ... perso je préfère la seconde solution.


C'est libre et gratuit, donc pourquoi se priver de l'utiliser ?

- pour la raison ci-dessus
- parce que je préfère utiliser une fonction native de PHP plutôt que d'utiliser des fonctions qui claquent au bas mot 3 preg_match() par validation et qui ne sont pas super bien codées
- parce que je préfère avoir une "mise à jour automatique" lors de l'évolution des normes, plutôt que devoir me palucher le remplacement des fonctions, si tant est que l'auteur propose une version à jour.

Le jour, proche il me semble, où il faudra gérer à l'aide de regex, des mails chinois, arabes, etc ... euh, ... pas glop


Cordialement,

Kohntark -
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
22 juil. 2011 à 10:12
Chacun voit midi à sa porte et j'imagine que chacun à sa propre idée sur la question.

En effet. En fait après avoir fait un petit test un peu poilu (enfin plus que d'habitude) je me rend compte que les deux méthodes rejettent des adresses pourtant valides, en particulier les adresses dont le nom de domaine à un tld numérique (contestable) et celles qui n'ont pas de nom de domaine (et donc d'arobase). Bref, finalement je pense revenir au filter_var(), tu as raison.

Il est impossible de vérifier la validité d'une adresse mail sans la tester en réel (envoi, ...)

Vérifier qu'elle existe, d'accord. Après je parlais seulement de la syntaxe.


Le jour, proche il me semble, où il faudra gérer à l'aide de regex, des mails chinois, arabes, etc ... euh, ... pas glop

Mais non voyons, tout sera géré dans PHP6 avec support de l'unicode etc ! :D Ha zut ça fait un bon bout de temps que PHP6 à été totalement abandonné, il ne sortira probablement jamais...
0
gb66 Messages postés 43 Date d'inscription lundi 6 juin 2011 Statut Membre Dernière intervention 27 janvier 2012
26 juil. 2011 à 22:12
<?php

if(!isset($_POST['email']) || false === $email = filter_var($POST['email'], FILTER_VALIDATE_EMAIL)){
echo'email invalide'; }
else{ echo'ok';





// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base

mysql_select_db('w4e',$db) or die('Erreur de selection '.mysql_error());
// on écrit la requête sql
$sql = "INSERT INTO compte(id,email) VALUES('','$email')";
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());

// on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';

mysql_close(); // on ferme la connexion
}
?>

jai une erreur undefined variable post on line 2 mais ou je dois definir la variable et est se que ses comme sa $email=$_POST['email'];


pour mysql_real_escape_string jai trouver sa dans la doc mais jai de la misere a visualiser avec se que je veux faire je doit utiliser cette fonction pour mon root et mon mot de passe ou pour la donner que je veux envoyer exemple email <?php
// Connexion
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
OR die(mysql_error());

// Requête
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));
?>
0
gb66 Messages postés 43 Date d'inscription lundi 6 juin 2011 Statut Membre Dernière intervention 27 janvier 2012
27 juil. 2011 à 06:03
Un gros merci pour votre aide sa a marcher

voici a quoi ressemble le code mais jai pas compris encore pour mysql_real_escape_string si quelqun peut mexpliquer ou le placer
<?php


if(!filter_var($email=$_POST['email'], FILTER_VALIDATE_EMAIL))
  {
  echo "E-mail is not valid";
  }
else
  {
  echo "E-mail is valid";
  
   // connexion à la base
$db = mysql_connect('localhost', 'root', '537966')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  

    mysql_select_db('w4e',$db)  or die('Erreur de selection '.mysql_error()); 
 // on écrit la requête sql 
    $sql = "INSERT INTO compte(id,email) VALUES('','$email')"; 
 // on insère les informations du formulaire dans la table 
    mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error()); 

    // on affiche le résultat pour le visiteur 
    echo 'Vos infos on été ajoutées.'; 

    mysql_close();  // on ferme la connexion 
    }  
?>
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
27 juil. 2011 à 09:40
voici a quoi ressemble le code mais jai pas compris encore pour mysql_real_escape_string si quelqun peut mexpliquer ou le placer

Regarde ta requête SQL. Dans le cas où l'email est toto@example.org, ta requête est la suivante :
INSERT INTO compte(id,email) VALUES('','toto@example.org')

Rien d'anormal. Par contre, si jamais l'email contient une guillemet simple, par exemple toto'titi@example.org, alors le requête est la suivante :
INSERT INTO compte(id,email) VALUES('','toto'titi@example.org')

Ceci provoquera une erreur SQL car le guillemet contenu dans l'adresse email deviendra le guillement de fermeture de la chaîne de caractère du champ email dans la requête SQL. Ce qui suit n'a ici aucun sens en SQL, donc une erreur est générée et ta requête va échouer.
Tu remarqueras que ceci est le meilleur cas possible, car une personne mal intentionnée pourra utiliser ceci pour effectuer ce que l'on appelle une injection de SQL. Laisser la possibilité d'effectuer de telles injections est une grave faille de sécurité.

Afin d'empêcher tout ceci, on utilise (pour mysql) la fonction mysql_real_escape_string() qui va "échapper" les caractères spéciaux de ta chaîne afin qu'ils ne soient pas pris en compte. Ainsi, toto'titi@example.org deviendra toto\'titi@example.org et donc la requête SQL sera la suivante :
INSERT INTO compte(id,email) VALUES('','toto\'titi@example.org')

Ce qui fonctionnera parfaitement car le guillemet contenu dans l'email ne sera plus considéré comme un délimiteur de fin de chaîne. Bref, il te faut, avant ta requête, ajouter la ligne suivante :
$email = mysql_real_escape_string($email);
0
gb66 Messages postés 43 Date d'inscription lundi 6 juin 2011 Statut Membre Dernière intervention 27 janvier 2012
28 juil. 2011 à 01:42
merci jai une autre question kohntark a précedement dit de ne pas utiliser

or die('Erreur de connexion '.mysql_error());

je la remplace par quoi ou je met rien a la place?
0
gb66 Messages postés 43 Date d'inscription lundi 6 juin 2011 Statut Membre Dernière intervention 27 janvier 2012
9 août 2011 à 21:21
est se que le code est securiser???s'il vous plait

<?php


if(!filter_var($email=$_POST['email'], FILTER_VALIDATE_EMAIL))
  {
  echo "E-mail is not valid";
  }
else
  {
  echo "E-mail is valid";
  
   // connexion à la base
$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  

    mysql_select_db('w4e',$db)  or die('Erreur de selection '.mysql_error()); 
 // on écrit la requête sql 
    $sql = "INSERT INTO compte(id,email) VALUES('','$email')"; 
 // on insère les informations du formulaire dans la table 
    mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error()); 

    // on affiche le résultat pour le visiteur 
    echo 'Vos infos on été ajoutées.'; 

    mysql_close();  // on ferme la connexion 
    }  
?>
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
9 août 2011 à 21:25
Vu que tu n'as rien changé depuis al dernière fois la réponse est simple : non.
0
gb66 Messages postés 43 Date d'inscription lundi 6 juin 2011 Statut Membre Dernière intervention 27 janvier 2012
10 août 2011 à 00:03
excuse moi mon erreur je me suis melanger je te met le nouveau code si tu peut me dire si ses secure ou non et pourquoi

<?php


if(!filter_var($email=$_POST['email'], FILTER_VALIDATE_EMAIL))
  {
  echo "E-mail is not valid";
  }
else
  {
  echo "E-mail is valid";
  
   // connexion à la base
$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  

    mysql_select_db('w4e',$db)  or die('Erreur de selection '.mysql_error()); 
 // on écrit la requête sql 
$email=mysql_real_string($email);

    $sql = "INSERT INTO compte(id,email) VALUES('','$email')"; 
 // on insère les informations du formulaire dans la table 
    mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error()); 

    // on affiche le résultat pour le visiteur 
    echo 'Vos infos on été ajoutées.'; 

    mysql_close();  // on ferme la connexion 
    }  
?>
0
Rejoignez-nous