php代码中的未定义变量错误

时间:2014-08-31 09:55:28

标签: php mysql

我的索引代码基本上是显示的页面,如果用户是公共的,那么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?;

1 个答案:

答案 0 :(得分:2)

<textarea name="title"></textarea>

应该是:

<textarea name="cdtitle"></textarea>

同样,另一个textarea应该命名为cdartist,而不仅仅是artist

name<input>中的<textarea>属性定义了该字段的名称。然后将字段数据发送到具有相应名称的服务器。因此,如果您使用name="title"发送数据但在PHP中引用$_POST['cdtitle'],则无法找到数据,因为它位于$_POST['title']