繁体   English   中英

PHP错误提示:未定义的索引:第35行的C:\\ wamp \\ www \\ tweetball \\ classes \\ word.class.php中的UserID

[英]Php error Notice: Undefined index: UserID in C:\wamp\www\tweetball\classes\word.class.php on line 35

我一直收到这个错误。 我不知道为什么......谢谢

注意:未定义的索引:第35行的C:\\ wamp \\ www \\ tweetball \\ classes \\ word.class.php中的UserID

<?php
session_start();
class Word
{

    private $m_sWord;
    private $m_sMessage;
    private $link;
    public function __set($p_sProperty, $p_vValue)
    {
        switch($p_sProperty)
        {
            case "Message":
                $this->m_sMessage = $p_vValue;
                break;
        }      
    }

    public function __get($p_sProperty)
    {
        $vResult = null;
        switch($p_sProperty)
        {
        case "Message": 
            $vResult = $this->m_sMessage;
            break;
        }
        return $vResult;
    }

    public function Save()
    {
        include("Connection.php");
        $sSql = "insert INTO words (word, FK_UserID) VALUES ('$_POST[message]','$_POST[UserID]')";  

        if ($rResult = mysqli_query($this->link, $sSql))
        {   
            echo "";
        }
        else
        {       
            throw new Exception('We could not save your word!');    
        }                   
        mysqli_close($this->link);
    }



    public function CreateNew()
        {
            $m_sHost = "localhost";
            $m_sUser = "root";
            $m_sPassword = "";
            $m_sDatabase = "tweetball";

                $link = mysqli_connect($m_sHost,$m_sUser,$m_sPassword,$m_sDatabase);
              if($link!=null){
                    $this->link=$link;
                }
                else
                {
                    throw new Exception("There seems to be a database problem. Try again later");
                }

    }
    public function getWord()
    {


            $m_sHost = "localhost";
            $m_sUser = "root";
            $m_sPassword = "";
            $m_sDatabase = "tweetball";


        $sSql = "select * from tweetball where WordID = 1;";    
        if ($rResult = mysqli_query($this->link, $sSql))
        {
            $singleRecord = mysqli_fetch_assoc($rResult);

            $message = $singleRecord['Word'];
        }
        else
        {       
            throw new Exception('We could get your word!'); 
        }                   
        mysqli_close($link);
        return($message);   
    }

}
?>

您必须在类中定义您的id,要么使用$_REQUEST ,要么使用$_REQUEST $_POST ,确保数据库中还有您要发送的值的列。

您收到此错误是因为您引用了未为该数组定义的数组键“UserID”(在本例中为$ _POST)。 快速查看一下您的SQL查询,我注意到您的密钥不是引号,而是它们需要的引号。

我不会评论输入未选中是多么不安全。 用户数据到您的数据库中

这不是一个真正的错误,而是更多的通知。 它告诉您,您正在尝试使用未手动设置的变量。 如果设置不当,可能导致可变喷射。

您可以通过关闭PHP错误通知(如果您确定您的PHP设置已安全设置,在尝试使用它们之前定义所有或变量或在调用它之前使用if(isset($variable))此问题。

$sSql = "insert INTO words (word, FK_UserID) 
    VALUES ('$_POST[message]','$_POST[UserID]')"; 

没有$_POST['UserID']值。 请注意,数组键(例如UserID )区分大小写。

另请注意,您在此处执行的操作容易受到SQL注入的影响,应立即更改。 关于SQL注入是什么以及如何在PHP中预防它,SO有很多问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM