Filter_var()

Fermé
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 - 21 janv. 2012 à 12:26
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 - 8 févr. 2012 à 01:04
Bonjour, après avoir chercher sur internet, j'utilise la fonction filter_var() pour filtrer des adresses mail lors de l'inscription pour mon site. Seulement j'ai une erreur que je n'arrive pas à résoudre donc je fais appel à vous.

Fatal error: Call to undefined function: filter_var() in ....

merci votre aide.

8 réponses

Anoen Messages postés 196 Date d'inscription mardi 10 novembre 2009 Statut Membre Dernière intervention 11 septembre 2013 25
21 janv. 2012 à 23:39
Cette fonction est récente, utilises-tu la bonne version de PHP ? (PHP 5.2 ou supérieur)
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
22 janv. 2012 à 11:54
Comment puis-je savoir car j'utilise ce que j'ai appris quand j'étais en cours :)
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
22 janv. 2012 à 12:02
j'ai utilisé phpinfo() pour connaitre ma version et il m'indique que je suis en version 1 donc comment puis-je faire pour passer à une version qui accepte cette fonction stp?
0
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
23 janv. 2012 à 10:36
Bonjour,

Tu utilises Wamp ? Si c'est le cas, retélécharge-le. Il sera à jour.
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
23 janv. 2012 à 11:35
J'utilise Wamp5, ce n'est pas suffisant? De plus, je ne sais pas si sa à une importance mais mon site est déjà en ligne, donc je n'utilise plus Wamp
0
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
23 janv. 2012 à 12:04
Wamp5 suffit normalement...
Et s'il est en ligne, je suppose que c'est un problème avec la version de php de ton serveur. où es-tu hébergé ?
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
23 janv. 2012 à 12:09
chez free
0
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
23 janv. 2012 à 12:14
Alors il faut les contacter. C'est leur version de php qui n'est pas à jour.
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
23 janv. 2012 à 12:17
Ok sinon existe-t-il une fonction similaire qui passerai avec ma version?
0

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

Posez votre question
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
23 janv. 2012 à 12:29
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
23 janv. 2012 à 12:32
Ok merci, je teste et je post le résultat, bon ou mauvais
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
23 janv. 2012 à 14:19
j'ai testé parse_url mais je ne pense pas que cela me corresponde car elle cherche une chaine de caractère dans une url (sauf erreur de ma part) ensuite preg_match pourrait correspondre mais je n'arrive pas à m'en servir (j'ai cherché sur internet mais rien y fait)
0
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
23 janv. 2012 à 14:26
Même avec les exemples officiels ?
https://www.php.net/manual/fr/function.preg-match.php
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
23 janv. 2012 à 14:28
C'est sur ce site que je suis, voici ce que j'ai écrit et le résultat :

$mail = preg_match('hotmail.fr', $_POST['mail']);
echo'mail:'.$mail.'';

Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in /mnt/104/sdb/b/4/mickael.bernaudeau/identification.php on line 37
mail:
0
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
Modifié par AssassinTourist le 23/01/2012 à 14:38
Et ceci ?

$mail = preg_match("/hotmail.fr/", $_POST['mail']);
echo "mail : ".$mail;
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
6 févr. 2012 à 23:28
Donc après vérification le mail est bien envoyé, mais j'aimerai afficher un lien qui renvoie directement sur mon site (pour activer son compte). Seulement voila quand j'ouvre le mail je vois le code HTML au lieu d'un simple lien. Voici se que j'ai fais :

$message = '
     <html>
      <head>
      </head>
      <body>
       <a href="mickael.bernaudeau.free.fr">Je confirme mon inscription</a>
      </body>
     </html>
     ';

   mail($_POST['mail'], 'Confirmation d\'inscription', $message);


merci de vos lumières.
0
Utilisateur anonyme
7 févr. 2012 à 00:13
oui c'est tout à fait normal, contenu du mail n'est que du texte et ne sera pas donc affiché comme un élément html.
Mais si j'ai bon souvenir, je crois qu'on met une page html contenant le code html que tu veux voir s'afficher en pièce jointe du mail à envoyer. La page html sera affichée comme message lors de la réception du mail et non comme pièce jointe.
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
7 févr. 2012 à 00:27
ok donc si je comprends bien, je dois envoyer joint au mail une page html? Ou je me trompe?
0
Utilisateur anonyme
7 févr. 2012 à 00:31
oui et cette page html s'affichera comme message du mail
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
7 févr. 2012 à 00:38
ok comment puis-je faire pour joindre un fichier (dans le code), j'utilise toujours mail()?
0
Utilisateur anonyme
7 févr. 2012 à 00:53
ça c'est le plus dur, c'est tout un protocole. Fait des recherches tu trouveras des bons tutos là dessus . Oui c'est toujours avec la fonction mail(), mais là on séparer le corps et la pièce jointe par une frontière. C'est vraiment pas évident donc il faut prendre du temps de lire un bon tuto avant de s'y lancer. Mais si tu as la moindre question n'hésite pas.
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
7 févr. 2012 à 00:56
0
Tu n'y comprends rien parce que c'est du copier coller ton code. On va va pas faire le travail à ta place, il faut chercher et faire plusieurs test pour arriver au résultat souhaité.

il faut deja au depart definir la frontiere par
$boundary=md5(uniqid(rand())); 



$file = "confirmer_compte.html";
$fp = fopen($file, "rb"); // b c'est pour les windowsiens
$attachment = fread($fp, filesize($file));
fclose($fp);

tu peux remplacer ça par:
$attachment=file_get_contents('ton_fichier htmll');
pas besoin d'encodage

tu peux aussi mettre les entetes

$entete = "From: adresse@domaine.com \r\n";    
$.= "MIME-Version: 1.0\r\n";    
$entete .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n\n";    

//corps 
$msg ="--". $boundary ."\n";    

$msg .="Content-Type: text/html; name=\"nom.html\"\r\n";      
$msg.= "Content-Disposition: inline; filename=\"nom_fichier.html\"\r\n\n    
 $attachment"; 

//envoi  
mail('adresse_destinataire','sujet',$msg,$entete);
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
8 févr. 2012 à 01:02
Ok merci donc voici ce que j'ai fais :
$boundary=md5(uniqid(rand()));

$attachment=file_get_contents('confirmer_compte.html');

$attachment = chunk_split(base64_encode($attachment));

$msg .= "--$boundary--\r\n";

$msg .= "Content-Disposition: inline; filename=\"$file\"\r\n";
$msg .= "\r\n";
$msg .= $attachment . "\r\n";
$msg .= "\r\n\r\n";
$msg .= "--$boundary--\r\n";

$entete = "From: bernaudeau.mickael.free.fr \r\n";
$entete .= "MIME-Version: 1.0\r\n";
$entete .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n\n";    

//corps 
$msg ="--". $boundary ."\n";    

$msg .="Content-Type: text/html; name=\"confirmer_compte.html\"\r\n";
$msg.= "Content-Disposition: inline; filename=\"confirmer_compte.html\"\r\n\n
 $attachment"; 

//envoi  
mail(''.$_POST['mail'].'','test',$msg,$entete);


seulement il me signale qu'il s'agit d'un spam donc le mail n'a pas été envoyé.
0
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
8 févr. 2012 à 01:04
je viens de voir que cette fonction serai bloquée chez certains hébergeurs pour éviter cela. Comme chez free je suppose. Donc y a-t-il une fonction similaire autorisée?
0