[RESOLU] Test la présence d'une URL

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 : [RESOLU] Test la présence d'une URL

Re: Test la présence d'une URL

par cris84 » 25 nov. 2014, 20:20

Bonsoir,

voici la réponse sait-on jamais ça peut servir :
<?php

if(!preg_match('#https://www\.youtube\.com/watch\?v=[a-z0-9./_-]+#i',$videourl))
{

?>

Re: Test la présence d'une URL

par cris84 » 07 nov. 2014, 20:15

Bonsoir,
j'utilise $_POST pour mon formulaire mais je n'ai pas mis le code en entier.
Donc si je comprends bien il faut que les deux chaines soient égales : http://www.youtube.com/watch?v=
<?php

$var = 'http://www.youtube.com/watch?v=';
if(strpos($var, 'http://www.youtube.com/watch?v=') !== FALSE)

?>
Je précise que je voudrais contrôler cette URL mais bien sûr elle peut comporter des chiffres ou lettres après v=

Merci encore de votre aide... :|

Re: Test la présence d'une URL

par ynx » 07 nov. 2014, 15:23

Salut,

Concernant la condition suivante :
$var = 'http://www.youtube.com/watch?v=xxxxxxxx';
if(strpos($var, 'http://www.youtube.com/watch?v=') !== FALSE)
Cette condition peut se traduire en : est-ce que la chaine 'http://www.youtube.com/watch?v=' existe dans 'http://www.youtube.com/watch?v=xxxxxxxx' -> cette condition retourne toujours vrai

Est-ce normal que tu n'utilises aucune variables envoyés via ton formulaire ($_GET ou $_POST) ?

Test la présence d'une URL

par cris84 » 07 nov. 2014, 12:45

Bonjour,
je voudrais tester si une URL (comme celle-ci : http://www.youtube.com/watch?v=) soit présente quand le formulaire est posté.

J'avais fait ça :
<?php
 $sql  = "SELECT COUNT(*) AS nbr FROM video WHERE url = '$videourl'";
    $res  = mysql_query($sql);
    $alors  = mysql_fetch_assoc($res);
	
         $var = 'http://www.youtube.com/watch?v=xxxxxxxx';
if(strpos($var, 'http://www.youtube.com/watch?v=') !== FALSE)
{
 $msg = "L'URL que vous avez rentr&egrave; n'est pas valide...";
	  
	  
	  }
      elseif(!($alors['nbr'] == 0)){
        $msg = "Cette vid&eacute;o est d&eacute;j&agrave; list&eacute; !";
      }
	  else{

mysql_query("INSERT INTO video(url,title,description,author,thumb,duration) VALUES ('$videourl','$title','".mysql_real_escape_string($des)."','$author','$thumb','$duration')")or die(mysql_error());
$msg = 'Vid&eacute;o ajout&eacute;e';
}
?>
Mais ça ne marche pas : :(
Même si je rentre une url valide j'ai l'erreur "L'url que vous avez entré n'est pas valide..."

Merci de votre aide