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

Eléphant du PHP | 233 Messages

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

ynx
Mammouth du PHP | 586 Messages

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) ?

Eléphant du PHP | 233 Messages

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... :|

Eléphant du PHP | 233 Messages

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))
{

?>