Vérifier le début et la fin d'une chaîne

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Vérifier le début et la fin d'une chaîne

par Cyrano » 11 août 2005, 20:39

Au lieu de critiquer après coup graal, fais donc les réponses à ce moment là et argumentes les intelligemment !

par graal » 11 août 2005, 19:40

posix = gourmand, bouffe ressource, lent
pcre = rapide, performant

Bref utiliser ereg[i|_]? cay pas bien [=

par Cyrano » 11 août 2005, 13:14

Les expressions régulières cay bien, mais avec les fonctions pcre hein :p
Tu voudrais nous faire part de ta pensée ? Il y a un truc qui m'a peut-être échappé ? :-k

par graal » 11 août 2005, 12:59

Les expressions régulières cay bien, mais avec les fonctions pcre hein :p

par flo86 » 10 août 2005, 21:40

Voilà, j'ai un peu modifié ton code, et ça fonctionne :) :)
Merci bcp Cyrano.
<?
$masque = "^((http://|http://www).*)$";
$masque2 = "^(www.*)$";
if(ereg($masque, $chaine))
	{
	echo "".$chaine."";
	}
elseif(ereg($masque2, $chaine))
	{
    echo "http://".$chaine."";
	}
else
	{
	echo "Pas bon";
	}
?>

par Cyrano » 10 août 2005, 20:59

Avec une expression régulière par exemple:
<?php
$masque = "^((http://)|(w){3}|(http://w{3})).*"")$";
if(ereg($masque, $chaine))
{
    echo("<p>Début url ok</p>\n");
}
else
{
    echo("<p>Début url invalide</p>\n");
}
?>

par flo86 » 10 août 2005, 20:55

Effectivement, cela fonctionne bien, mais comment faire pour vérifier que la chaine commence bien par http:// ou www.

Merci encore pour ton aide

par flo86 » 10 août 2005, 19:29

Merci pour ton aide Cyrano :), je vais essayer de faire avec ta solution

par Cyrano » 10 août 2005, 18:13

OUi, absolument, les fonctions de manipulation de chaînes font ça très bien. Pour l'extension par exemple, il faut repérer ce qui est après le derner point : TU pourrais par exemple récupérer juste cette partie là en faisant :
$elements = explode(".", $chaine);
$dernier = count($elements) - 1;
$ext = $elements[$dernier];
/* Et là tu fais la comparaison pour vérifier si c'est .gif, .jpg ou autre chose */
Sinon, si c'est un fichier uploadé par l'internaute, vérifie $_FILES['nom_champ_formulaire']['type'];

par flo86 » 10 août 2005, 18:06

Cela est il possible en PHP ?

par flo86 » 10 août 2005, 17:14

Ben en fait, voilà la mise en situation :
j'ai une page, où le visiteur peut entrer l'URL d'une image (son avatar) dans un formulaire.
Alors une fois le formulaire envoyé, j'aimerais vérifier que le visiteur n'entre pas n'importe quoi, il faudrait donc que l'adresse commence par http://www (ou www) ; et qu'elle se termine soit par .gif, soit par .jpg, soit par .png, soit .bmp ... Voilà, comme ça je suis suis sûr que c'est bien une image simple.

Merci pour votre aide.

par Cyrano » 10 août 2005, 15:55

Tu veux vérifier l'extension d'url inscrite par qui au juste et comment ?

par flo86 » 10 août 2005, 15:48

cela n'est-il pas possible ?

Vérifier le début et la fin d'une chaîne

par flo86 » 10 août 2005, 13:25

Bonjour, j'aimerais savoir comment vérifier à l'issu de la soumission d'un formulaire, l'extansion de l'url rentrée soit .gif, .jpg, .png ou .bmp ... Par exemple : http://www.monsite.com/image.gif doit être accepté ; et http://www.monsite.com/machin.php ne soit pas accepté. (en gros, c'est pour éviter d'avoir des images dynamiques, ce qui pourrait représenter une faille de sécurité). Quelle fonction utiliser ?
J'aimerais également vérifier que la chaîne commence par http://. Là encore, quelle fonction utiliser ?
Merci pour votre aide :)