0

我正在制作一个网站,人们可以在其中搜索音乐(来自 YouTube),并在同一个网站上观看。(无需去 YouTube。)在我的数据库中,我有一个播放列表表。该表有 4 个值。ID、用户ID、艺术家和歌曲。

id 是唯一的 ID - 我为此使用 YouTube id - 。userID 是用户的 ID。如果他们已登录,他们将无法使用播放列表功能。我已经有一个数据库。

我有以下 PHP 代码,这些信息必须保存在数据库中,但它不起作用。

if (isset($_SESSION['username'])){

                        echo '<button type="add to playlist" action="post">ADD</button>';


                        include 'playlistdb.php';
                        $sql = "insert into playlist (i,d,a,t) values ('$_POST[ID]','$_POST[userID]','$_POST[artist]','$_POST[title]')";
                        $result = mysql_query($sql,$conn) or die(mysql_error());
                    }
                    else{
                        echo "You are not logged in, you can use the playlist.";
                    }

但这不起作用。我收到以下错误。

注意:未定义索引:第 112 行 C:\wamp\www\IKEPROJECT GROUP 9\video.php 中的 ID

用户 ID、艺术家和标题也是如此。

我不确定这里出了什么问题。

错误来自这一行:

$sql = "insert into playlist (i,d,a,t) values ('$_POST[ID]','$_POST[userID]','$_POST[artist]','$_POST[title]')";
4

3 回答 3

1

考虑以可读的方式使用PDO和格式化代码。

$sth = $dbh->prepare("insert into playlist (i,d,a,t) values (?, ?, ?, ?)");
$sth->execute(array($_POST['ID'], $_POST['userID'], $_POST['artist'], $_POST['title']));

如果仍然存在错误,请确保您具有名称为“ID”的有效输入字段。

于 2012-12-16T20:34:01.663 回答
1

我认为按钮实体是错误的。使用这样的格式 <button type="submit" formmethod="post" formaction="submit.php">ADD</button>

于 2012-12-16T20:32:00.177 回答
0

您需要引号 - 它不是 $_POST[ID],而是 $_POST['ID']。有关属性 PHP 格式的信息,请参阅 Saeed Najafi 的评论。

此外,您的代码中确实存在严重的 SQL 注入漏洞......修复该漏洞非常重要,否则有人可能会入侵您的网站,擦除您的数据库等。

于 2012-12-16T20:38:25.757 回答