Visualizzazione risultati 1 fino 6 di 6

Discussione: Passaggio url youtube

  1. #1
    Guest

    Predefinito Passaggio url youtube

    Salve a tutti, da poco ho creato uno script che tra i tanti dati che memorizza sul database mysql deve memorizzare anche l'URL di un video YOUTUBE (Tipo: http://www.youtube.com/watch?v=uF5jgMrcrTk). Allora il form in html è un semplice post che rimanda allo script php con l'input: <input type="text" name="youtube" value="http://" />. Penso che fin qui non ci sono problemi. Poi ho scritto lo script per memorizzare nel database mysql del tipo:

    Codice PHP:
    $urlyoutube = $_POST['youtube'];
    mysql_query("INSERT INTO ....
    VALUES ('
    $urlyoutube'....
    Sembra che tutto funzioni, ma in realtà non funziona per nulla, infatti se inserisco l'utl http://youtube.com sul DB l'url viene scritto in modo corretto, ma se l'url che scrivo diventa del tipo: "http://www.youtube.com/watch?v=uF5jgMrcrTk", sul DB viene scritto solo "http://www.youtube.com/watch?v".


    So che c'è un errore nel passaggio della variabile, ma come devo risolverlo? Con special characters ??? GRAZIE

    RISOLTO.C'era un problema sul DB.
    Ultima modifica di googlepacman : 13-04-2011 alle ore 21.55.57 Motivo: Risolto

  2. #2
    Guest

    Predefinito

    La cosa importante dei link di youtube è il contenuto dopo v= .. se lo inserisci nel db credo che consideri = come l' inizio di un' altra cosa (non mi so spiegar bene), potresti fare che dal link che inseriscono nell' input tramite php estrai il contenuto dopo v= , poi quando lo vai ad inserire nel db scrivi http://youtube.com/watch?v={$variabiledellestratto}


    Scrivi:

    $url = $_POST['youtube'];

    $urlyoutube = substr($url, 30, 11);

    e poi lo inserisci nel db
    Ultima modifica di exabyte : 13-04-2011 alle ore 22.09.26

  3. #3
    Guest

    Predefinito

    Sisi ho risolto. Unica cosa, sapreste dirmi come validare un url in php, controllando se è presente http:// all'inizio, e se non presente viene aggiunto? Tipo:


    function isValidURL($url)
    {

    return preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url);
    }

  4. #4
    Guest

    Predefinito

    Non è piu' semplice fare:


    Codice PHP:
    $url = $_POST['url'];

    $completo = substr_count($url, 'http://');

    if (
    $completo == "0") {
    $urlfinale = "http://{$url}";
    }

  5. #5
    Guest

    Predefinito

    Codice PHP:
    $yt_id = htmlspecialchars(trim($_POST['url'])); # Evita le SQL Injection

    if (preg_match('/^([a-z0-9_-]){11}$/i', $yt_id))
    {
    $v = $yt_id;
    }
    else
    {
    parse_str(parse_url($yt_id, PHP_URL_QUERY));
    }
    La prima parte controlla che il dato passato via POST non sia direttamente l'ID del video, altrimenti parsa l'url e viene creata la variabile $v (dato che il paramentro di YouTUBE è v).

    Poi usi la variabile $v che ha l'ID del video e ne fai ciò che vuoi.


  6. #6
    Guest

    Predefinito

    Risolto, grazie mille. Mi è bastato l'esempio di exabite. Ciao...

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •