1

YouTubeビデオの短縮URLをフォーム入力に入力できるようにしたいと思います。

'http://youtu.be/rAndoMText'

'submit'すると、フォームを処理しているphpファイルで次の3つの機能を実行します。

交換:

'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 に答える