Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak sprawdzic link
Forum PHP.pl > Forum > Przedszkole
devil-war
Witajcie jak można sprawdzić.

mam dodawanie filmików z YouTube i chce zrobić zabezpieczenie ,żeby sprawdzało czy w linku znajduje sie http://youtube.pl ,bądź .com nie mam pojecia jak to zrobic.

Za wszelką pomoc dziękuje
wookieb
Kod
if(preg_match('/^http://youtube\.[com|pl]/',$link))
{
/jest
}
else
{
//nie ma
}


// DOWN Kolejny który wyzywa mnie od łba sad.gif
Poza tym kolega pisze, że to są linki do filmików a nie do samego youtuba.
pyro
jeżeli to ma być sam link to w przykładzie wookieweb na końcu regexa dobrze byłoby dodać $
devil-war
hmmm mam taki pewny blad
Kod
<?php

if(isset($_GET['act']) && $_GET['act'] == 'save_film'){
$title        = $_POST['title'];
$link         = $_POST['kod'];
$kategoria    = $_POST['kategoria'];
//$name = 'images/pliki/'.$_FILES['pliczek']['name'];




if(empty($link)){
echo 'Nie podałeś adresu do filmu<br>';
}
elseif(empty($title)){
echo 'Nie podałeś tytułu filmu<br>';
}
elseif(preg_match('/^http://youtube\.[com|pl]/',$link)){
$link=str_replace('watch?v=', 'v/', $link);
$link=str_replace('&feature=related', '', $link);

$mini=str_replace('&feature=related', '', $_POST['kod']);
$mini=str_replace('http://pl.youtube.com/watch?v=', '', $_POST['kod']);



        
        $db->query("INSERT INTO ".DB_PREFIX."films SET
            `title`           =  '".htmlspecialchars(addslashes($title))."',
            `kod`             =  '".$link."',
            `kategoria`       =  '".addslashes($kategoria)."',
            `miniaturka`      =  'http://i1.ytimg.com/vi/".addslashes($mini)."/default.jpg',
            `name_autor`      =  '".$user['username']."',
            `id_autor`        =  '".$user['id']."',
            `dodano`          =  '".time()."'");
echo 'Film został dodany';
}
else{
echo 'Błąd';
}
}
?>

to kod od dodawani filmików z youtube

a to bład

Kod
[b]Warning[/b]:  preg_match() [[url="http://video.your-page.pl/function.preg-match"]function.preg-match[/url]]: Unknown modifier '/' in [b]/add/youtube.php[/b] on line [b]129[/b]
Błšd
wookieb
sry racja
Kod
if(preg_match('/^http:\/\/youtube\.[com|pl]/',$link))
!*!
a ja sprawdzić kilka linków? Np. czy jest to youtube.com czy wrzuta.pl ?Tzn. aby obie formy były porpawne.
szopen
Zwyczajnie?
  1. <?php
  2. function isCorrectYoutube($link)
  3. {
  4.    return preg_match('/^http://youtube.[com|pl]/',$link);
  5. }
  6. function isCorrectWrzuta($link)
  7. {
  8.    return preg_match('/^http://wrzuta.[com|pl]/',$link); // albo coś w tym stylu
  9. }
  10. if (isCorrectYoutube($link) || isCorrectWrzuta($link))
  11. { // ...
  12. }
  13. ?>
!*!
Niestety ma to wadę, nie znam się na walidacji linków, ale ten filtr przepuszcza takie kwiatki:

Kod
http://youtube.comxxxdas
http://youtube.plxxxdas
szopen
Cytat(!*! @ 29.08.2008, 23:04:59 ) *
Niestety ma to wadę, nie znam się na walidacji linków, ale ten filtr przepuszcza takie kwiatki:

Kod
http://youtube.comxxxdas<BR>  http://youtube.plxxxdas
No jasne, bo to tylko przykład jest. Trzeba samemu w regexpach się pobawić smile.gif

...albo zapytać google [ http://www.google.com/search?q=youtube+val...ular+expression ]

http://regexlib.com/REDetails.aspx?regexp_id=2107

Cytat
Title: Embedded YouTube Video
Expression: (\"http:\/\/www\.youtube\.com\/v\/\w{11}\&rel\=1\")
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.