[英]I have error:Notice: Undefined offset: 1 in C:\wamp\www\index.php on line 32,on line 34,on line 36,on line 38
[英]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.