Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php+;sql语句总是返回successfull吗?_Php_Mysql_Variables_Echo - Fatal编程技术网

Php+;sql语句总是返回successfull吗?

Php+;sql语句总是返回successfull吗?,php,mysql,variables,echo,Php,Mysql,Variables,Echo,这是密码 <?php include("global.php"); $username = mysql_real_escape_string(stripslashes($_POST["strUserName"])); $password = md5(mysql_real_escape_string(stripslashes($_POST["strPassword"]))); $charid = mysql_real_escape_string(stripslashes($_POST["c

这是密码

<?php
include("global.php");

$username = mysql_real_escape_string(stripslashes($_POST["strUserName"]));
$password = md5(mysql_real_escape_string(stripslashes($_POST["strPassword"])));
$charid = mysql_real_escape_string(stripslashes($_POST["charid"]));
$quest = mysql_real_escape_string(stripslashes($_POST["strQuest"]));


$query = "SELECT * FROM wherei_users, wherei_characters WHERE wherei_users.username = '{$username}' AND wherei_users.password = '{$password}' AND wherei_characters.username =     '{$username}' AND wherei_characters.Id = '{$charid}'";
$result = mysql_query($query);
$yesorno = (mysql_num_rows($result) == 0) ? 'NO' : 'YES';


 if(empty($username) || empty($password) || empty($charid) || empty($quest) || $yesorno == "NO") {
$status="error";
$msg="InvalidData";
$actiontype="&actiontype=savequestdata";
$out=("$actiontype&status=$status&msg=$msg");
}

if ($yesorno = "YES") {
mysql_query("UPDATE wherei_characters SET strQuest = '{$quest}' WHERE username = '{$username}' AND id = '{$charid}'") or die(mysql_error());
$actiontype="&actiontype=savequestdata";
$status="success";
$out=("$actiontype&$status");
}

echo("$out");
?>
当我故意设置了错误的值时,它会返回状态为Successfull,您可以看到,如果ether
$username、$password、$charid、$quest
为空,或者
$yesorno
NO
,那么它应该回显
&actiontype=savequestdata&status=error&msg=InvalidData
。无论我将变量设置为什么,它都会返回`actiontype=savequestdata&Success?

这是您的问题:

if ($yesorno = "YES") {
发现了吗

PHP中的单个
=
是一个赋值运算符,因此您将变量
$yesorno
赋值为等于
“YES”
,这在PHP中(并非所有语言)也将运行IF并等于TRUE

您需要:
=
比较运算符

=
相同的比较运算符



代码中一些无关但重要的旁注:

折旧功能
mysql\
函数被折旧。你应该考虑查看/学习/使用或. 更多信息:

验证和消毒
我看到您在
$\u POST
变量上使用了
mysql\u real\u escape\u string

确保在将数据传递到数据库阶段之前检查变量。
用户可以在表单中输入任何内容,当您使用易受注入攻击的
mysql\uuu
时,您应该非常小心

MD5
甚至php的开发者php.net也表示:

注意:安全密码哈希
不建议使用此选项 函数来保护密码,这是由于这种哈希运算的快速性 算法

请参见此处了解原因:

if ($yesorno = "YES") {