我的索引代码基本上是显示的页面,如果用户是公共的,那么cd数据库可以修改它,如果他们想修改它,他们必须注册或登录,如果已经拥有一个帐户。我的问题在于我的发送代码,其中cd的新细节没有插入表中,虽然我已经登录了我的帐户(用户表已创建,用户的详细信息按照必须的方式插入)。它就像它没有获得用户名和我发布的艺术家。当我回显变量以查看它们的值时,我得到了未定义的变量错误。任何帮助都将非常感激。
索引
<?php
include 'header.php';
if ( isset( $_SESSION[ 'username' ] ) ) {
?>
<h2>New cd</h2>
<form action="send.php" method="post">
<div class="text">
Artist <br/>
<textarea name="artist"></textarea>
<br/>
Title <br/>
<textarea name="title"></textarea>
</div>
<input type="submit" value="OK" class='submit' />
</form>
<?php
}
else {
?>
<p>
To modify the database, <a href="login.php">login</a>.
</p>
<p>
To create a new account, <a href="register.php">register</a>.
</p>
<?php
}
&GT;
由于某种原因我无法上传此文件的其余部分但基本上它显示了包含cds详细信息的表,如果用户登录也可以看到用户名列,如果它们是公共的那么他们只能看到cd艺术家和标题栏。
发送代码
<?php
include 'prelude.php';
if ( isset( $_SESSION[ 'username' ] ) && isset( $_POST[ 'cdartist' ] )) {
$cdartist = $_POST[ 'cdartist' ];
$cdtitle= $_POST['cdtitle'];
$userid=$_SESSION['userid'];
$res=mysql_query(
" SELECT *
FROM cds
WHERE cdartist='".$cdartist."' AND cdtitle='".$cdtitle."';"
);
if (mysql_num_rows($res)!=0){
mysql_query(
"DELETE FROM cds
WHERE cdartist='".$cdartist."' AND cdtitle='".$cdtitle."' AND userid='".$userid."';");
header ('Location: index.php');
}
else{
mysql_query(
"INSERT INTO cds
SET
cdartist = '" . $cdartist . "',
cdtitle = '". $cdtitle . "',
userid = '" . $userid . "';"
);
}
header( 'Location: index.php' );
}
else {
?> To have this right you need to login. <?php
}
&GT?;
答案 0 :(得分:2)
<textarea name="title"></textarea>
应该是:
<textarea name="cdtitle"></textarea>
同样,另一个textarea应该命名为cdartist
,而不仅仅是artist
。
name
和<input>
中的<textarea>
属性定义了该字段的名称。然后将字段数据发送到具有相应名称的服务器。因此,如果您使用name="title"
发送数据但在PHP中引用$_POST['cdtitle']
,则无法找到数据,因为它位于$_POST['title']
。