0

我正在用 PHP 构建一个管理面板。我是 PHP 新手,我无法让我的编辑页面按我的需要工作。我可以编辑名称,但代表“活动用户”和“访问级别”的 2 个值设置为 0,我无法在编辑页面上将其从 0 更改,只能从​​ PhpmyAdmin 更改。

<?php
// Inserir o registo na BD
include_once ('config1.php');

// Estabelecer a ligação à BD
$connection = new mysqli('localhost', 'root', '123456', 'admin1');

//Verificar se a ligação foi estabelecida com sucesso
if (mysqli_connect_errno() ) {
    echo "</h2>Erro no acesso a BD</h2>" . mysqli_connect_error(); 

    exit();
    }
    // Validar se os campos do formulário foram preenchidos pelo utilizador
    // Verificar se "username" foi enviado
    if (isset($_POST['iusername']) == FALSE) {
        echo ("Erro de submissão");
        exit();
    } else {
        $username = trim($_POST['iusername']);
    }
    if (isset($_POST['inome']) == FALSE) {
        echo ("Erro de submissão");
        exit();
    } else {
        $nome = trim($_POST['inome']);
    }
    if (isset($_POST['inivel']) == FALSE) {
        echo ("Erro de submissão");
        exit();
    } else {
        $apelido = trim($_POST['inivel']);
    }
    if (isset($_POST['iativo']) == FALSE) {
        echo ("Erro de submissão");
        exit();
    } else {
        $telefone = trim($_POST['iativo']);
    }
    if (isset($_POST['iemail']) == FALSE) {
        echo ("Erro de submissão");
        exit();
    } else {
    $email = trim($_POST['iemail']);
    }
    if (isset($_POST['ipass']) == FALSE) {
    echo ("Erro de submissão");
    exit();
    } else {
    $pass = trim($_POST['ipass']);
    }
    if (isset($_POST['irpass']) == FALSE) {
    echo ("Erro de submissão");
    exit();
    } else {
    $repass = trim($_POST['irpass']);
    }

    // Função de validação do email (chamada mais abaixo no código)
    function isValidEmail($email){
    return @eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]                                {2,3})", $email);

    // Validar se o nº de caracteres do "username" está entre 4 e 12
    if (strlen($username) < 4 || strlen($username) > 12) {
    $erro = true;
    $msgerro .= "<p>erro: \"username\" deve conter entre 4 e 12 caracteres</p>";
    }
    // Validar se o nome tem entre 3 e 40 caracteres
    if (strlen($nome) < 3 || strlen($nome) > 40) {
    //echo (strlen($nome));
    $erro = true;
    $msgerro .= "<p>erro: \"nome\" deve conter entre 3 a 40 caracteres</p>";
    }

// Validação das passwords
$mudapass = false;
    if (strlen($password) == 0 && strlen($rpassword) == 0) {
    $mudapass = false;
} else {
    $mudapass = true;
}
    // 2.2. Validar o tamanho da password
    if (strlen($password) < 4 || strlen($password)> 16) {
    $erro = true;
    $msgerro .= "<p>erro: \"password\" deve conter entre 4 a 16 caracteres</p>";
    }
    }
    // 3. Validar se as duas passwords correspondem
    if ($password != $rpassword) {
    $erro = true;
    $msgerro .= "<p>\"passwords\" não correspondem</p>";
    }

    // validação de email
    // Chama a nova função "isValidEmail"
    if (isValidEmail($email) == false) {
    $erro = true;
    $msgerro .= "<p>email inválido</p>";
    } 
     // Final das validações (avisa caso algum erro seja detectado)
    if ($erro) {
    echo "<p>Formulário submetido com erros</p>";
    echo $msgerro;
    echo "<br>";
    // Desenha 2 botões "Corrigir" e "Listar"
    echo "<a class='ains' href='javascript:history.go(-1)' title='Volta à página         anterior'>Corrigir </a>";
    echo "<br/>";
    echo "<a class='ains' href='lista.php'>Listar</a>";
    exit();
    }
    if($password != $rpassword){
echo "ERRO: PASSWORDS SAO DIFERENTES";
    }


    $sql= "UPDATE usuarios SET
        nome = '$nome';
        email = '$email';
        nivel = '$nivel';
        ativo = '$ativo';
        WHERE
        usuario = '$username'";

    if ($mudapass == TRUE) {
    $sql = "UPDATE usuarios SET nome = '$nome', 
    password = '$password', 
    email = '$email',
    nivel = '$nivel', 
    ativo = '$ativo', WHERE usuario = '$username'";
    }
    if ($mudapass == FALSE) {
    $sql = "UPDATE usuarios SET
    nome = '$nome',
    email = '$email',
    nivel = '$nivel',
    ativo = '$ativo'
    WHERE
    usuario = '$username'";
    }
    $connection->query($sql);
    // Lista users depois de actualizar
    header("location:lista.php");

    ?>
4

1 回答 1

0

它看起来像一个命名问题。您的两个变量似乎与其他变量没有遵循相同的约定,除非我在查询之前缺少一些额外的处理,否则您应该更改这两行:

    $apelido = trim($_POST['inivel']);

    // ...several lines later
    $telefone = trim($_POST['iativo']);

对此:

    $nivel = trim($_POST['inivel']);

    // ...several lines later
    $ativo = trim($_POST['iativo']);
于 2013-04-29T16:28:08.517 回答