如何通过表单提交到数据库将youtube短网址更改为可嵌入的值?

时间:2012-09-23 12:17:47

标签: php mysql forms

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

'http://youtu.be/rAndoMText'

并在'submit'执行处理表单的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;
谢谢你。

2 个答案:

答案 0 :(得分:2)

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

$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

答案 1 :(得分:0)

您可以找到有用的类似问题here的答案,有很多方法可以获得您想要的结果