代码之家  ›  专栏  ›  技术社区  ›  user1063287

如何通过向数据库提交表单将youtube短url更改为可嵌入值?

  •  1
  • user1063287  · 技术社区  · 12 年前

    我希望能够将youtube视频的短url输入到表单输入中,例如;

    'http://youtu.be/rAndoMText'

    在“提交”后,在处理表单的php文件中执行三个功能:

    替换:

    'http://youtu.be/'

    与:

    '<a class='youtube' href="http://www.youtube.com/embed/'

    并添加:

    '?rel=0&amp;wmode=transparent">link</a>'

    到新值的末尾

    然后将最终值提交给数据库。

    我目前的php文件如下,它的“逻辑”是基于我对php的基本知识和在互联网上搜索解决方案,我不希望它是正确的。

    不过,它确实在在线语法检查器中进行了检查,并将其他表单输入发送到数据库,只是不是我试图修改的那个。

    <?php
    
    $original_link = $_POST["link"];
    $prepender = "<a class='youtube' href=\"http://www.youtube.com/embed/\"";
    $appender = "?rel=0&amp;wmode=transparent\">link</a>";
    
    $modified_link = str_replace ("http://youtu.be/","$prepender","$original_link");
    
    $modified_link . "" . $appender = $final_value;
    
    $con = mysql_connect("localhost","username","password");
    if (!$con)
    {
    die('Could not connect: ' . mysql_error());
    }
    
    mysql_select_db("database", $con);
    
    $sql="INSERT INTO data (fieldone, fieldtwo, fieldthree, fieldfour, link)
    VALUES
    ('$_POST[fieldone]','$_POST[fieldtwo]','$_POST[fieldthree]','$_POST[fieldfour]',
    '$final_value')";
    
    if (!mysql_query($sql,$con))
    {
    die('Error: ' . mysql_error());
    }
    header ('Location: http://return-to-your-website.com');
    
    mysql_close($con);
    ?>
    

    我也尝试在上面的“modified_link”区域中使用它,但它返回了相同的结果:

    $modified_link = "";
    ob_start (); 
    {
    echo str_replace ("http://youtu.be/","$prepender","$original_link");
    $modified_link = "ob_get_contents ()";
    }
    ob_end_clean (); 
    $modified_link . "" . $appender = $final_value;
    

    非常感谢。

    1 回复  |  直到 12 年前
        1
  •  2
  •   rationalboss    12 年前

    以下是将为您提供所需链接的代码:

    $link_provided_by_user = 'http://youtu.be/rAndoMText';
    $random_text = array_pop(explode('/',$link_provided_by_user)); // get the text after the last slash
    $link_you_want = '<a class=\'youtube\' href="http://www.youtube.com/embed/'.$random_text.'?rel=0&amp;wmode=transparent">link</a>';
    
    echo $link_you_want; // ex: <a class='youtube' href="http://www.youtube.com/embed/rAndoMText?rel=0&amp;wmode=transparent">link</a>
    

    请阅读 SQL Injections