1

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

'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;

谢谢你。

4

1 回答 1

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 注入

于 2012-09-23T13:05:16.047 回答