Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.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 如果我不是我页面上的管理员,则无法更新帐户没有实际错误,但它会跳过if_Php_Sql - Fatal编程技术网

Php 如果我不是我页面上的管理员,则无法更新帐户没有实际错误,但它会跳过if

Php 如果我不是我页面上的管理员,则无法更新帐户没有实际错误,但它会跳过if,php,sql,Php,Sql,由于某种原因,如果用户登录并且不是管理员,那么代码将跳过查询之前和echo$admin之后的executeif语句;我似乎不明白为什么。谁能帮我解决这个问题? 当我以管理员身份登录时,它运行得非常完美,一点问题也没有。 管理员作为1存储在数据库中,普通用户作为0存储 这是我的代码: <?php session_start(); //server gegevens $server = "localhost"; $user_sql = "root"; $wachtwoord = "

由于某种原因,如果用户登录并且不是管理员,那么代码将跳过查询之前和echo$admin之后的executeif语句;我似乎不明白为什么。谁能帮我解决这个问题? 当我以管理员身份登录时,它运行得非常完美,一点问题也没有。 管理员作为1存储在数据库中,普通用户作为0存储

这是我的代码:

<?php
session_start();
//server gegevens
$server     = "localhost";
$user_sql   = "root";
$wachtwoord = "";

//maakt verbinding met de database                                         geeft een foutmelding als het verbinden niet is gelukt
$connect = mysql_connect($server, $user_sql, $wachtwoord) or die("couldn't connect to server please try again later");

//selectreert de database
mysql_select_db("camping") or die("DB not found");

$Admin      = "";
$Knummer    = "";
$voornaam   = "";
$achternaam = "";
$Tussen     = "";
$username   = "";
$email      = "";
$Reg        = "";
$Straat     = "";
$Hnummer    = "";
$woonplaats = "";
$Postcode   = "";
$Tel        = "";
$Pw         = "";

if (isset($_POST['hidden']))
    $Knummer = strip_tags($_POST['hidden']);

if (isset($_POST['Voornaam']))
    $voornaam = strip_tags($_POST['Voornaam']);

if (isset($_POST['Achternaam']))
    $achternaam = strip_tags($_POST['Achternaam']);

if (isset($_POST['Username']))
    $username = strip_tags($_POST['Username']);

if (isset($_POST['Woonplaats']))
    $Woonplaats = strip_tags($_POST['Woonplaats']);

if (isset($_POST['email']))
    $email = strip_tags($_POST['email']);

if (isset($_POST['Tel']))
    $Tel = strip_tags($_POST['Tel']);

if (isset($_POST['Straat']))
    $Straat = strip_tags($_POST['Straat']);

if (isset($_POST['Hnummer']))
    $Hnummer = strip_tags($_POST['Hnummer']);

if (isset($_POST['Postcode']))
    $Postcode = strip_tags($_POST['Postcode']);

if (isset($_POST['admin'])) {
    $Admin = strip_tags($_POST['admin']);
    /*this if is because on the admin pannel you can type yes/no to update the admin status of an user and in the database the admin is logged as 1/0 */
    if ($Admin == "yes") {
        $Admin = 1;
    } else if ($Admin == "no") {
        $Admin = 0;
    } else {
        $Admin = $Admin;
    }
}

if (isset($_POST['tussen']))
    $tussen = strip_tags($_POST['tussen']);
else
    $tussen = " ";

echo $Admin;

if ($Knummer && $voornaam && $achternaam && $username && $Woonplaats && $Straat && $email && $Tel && $Hnummer && $Postcode && $Admin) {
    $query  = mysql_query("UPDATE users SET admin='$Admin', Username='$username' 
                                WHERE Klant_NR='$Knummer';");
    $query2 = mysql_query("UPDATE klant_gegevens SET Voornaam='$voornaam',Tussenvoegsel='$tussen',Achternaam='$achternaam',Straat='$Straat',H_nummer='$Hnummer',Postcode='$Postcode',Woonplaats='$Woonplaats',email='$email',Telefoon='$Tel'
                                WHERE Klant_NR='$Knummer';");
    header('Location: ' . $_SERVER['HTTP_REFERER']);
} else {
    echo " **error/skip message**";
}

?>
如果未设置“$Admin”,您应该会收到“错误/跳过消息”

设置错误报告级别,以便在出现任何PHP错误时获得这些错误

ini_set('display_errors', 1);
error_reporting(E_ALL);
您的代码的格式不是很好,而且您的if条件很长,这一事实导致了不好的实践。最好将其设置为一个函数,并通过输入循环查找其中是否有数据。一旦使用了好的编码标准,调试和诊断代码问题就会变得非常容易


有很多if语句…哪一个被跳过了???当以用户身份登录时,哪一个if被跳过了?当$\u POST['admin']设置为“否”时,$admin将设置为0。如果$some_var&&$Admin在这种情况下将计算为false。因此,不会执行分支来取消用户的管理员状态。您的问题非常不清楚,如果您不澄清您的确切问题,将被关闭。谢谢您提供的信息,我将对此进行处理。我不知道你可以循环使用Post值。但这可能是因为这是我制作的第一个网站。同样是因为一个标志在5分钟内降了下来,你的回答,我问自己为什么会这样,然后它击中了我,因为非管理员的值设置为0,这就是问题所在>>在过去的5个小时里,我把所有非管理员的用户都设置为2,并且修复了最好的Regeards,我很高兴能提供帮助。坚持下去。多练习。