Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.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登录系统和会话失败_Php_Mysql_Mysqli - Fatal编程技术网

PHP登录系统和会话失败

PHP登录系统和会话失败,php,mysql,mysqli,Php,Mysql,Mysqli,所以我下面的代码总是登录失败,它通过了检查方法,但它总是让我在if-else部分中登录失败。我的代码有什么问题吗? 我不知道为什么我的代码用于注册,但登录页面失败 <?php require_once "core/init.php"; $errors = array(); if( Input::get('submit')){ //1. call object $validation = new Validation(); //2. check method $va

所以我下面的代码总是登录失败,它通过了检查方法,但它总是让我在if-else部分中登录失败。我的代码有什么问题吗? 我不知道为什么我的代码用于注册,但登录页面失败

 <?php
require_once "core/init.php";

  $errors = array();

if( Input::get('submit')){

  //1. call object
$validation = new Validation();

  //2. check method
  $validation = $validation->check(array(
    'username' => array( 'required' => true),
    'password' => array( 'required' => true)
  ));

  //3. passed Validation
  if($validation->passed() ){

  if($admin->login_admin( Input::get('username'),Input::get('password') ) )
  {
    Session::set('username', Input::get('username'));
    header('Location: adminindex.php');
   }else{
     $errors[] = "login failed";

   }

  }else {
    $errors = $validation->errors();
  }
}

require_once "templates/header.php";
 ?>

<form class="" action="login2.php" method="post">

  <label>ID Admin</label>
  <input type="text" name="username">

  <label>Password</label>
  <input type="password" name="password">

    <?php if(!empty($errors)){ ?>
      <div id="errors">
        <?php foreach ($errors as $error) { ?>
          <li><?php echo $error; ?></li>
    <?php    } ?>
      </div>
    <?php } ?>

  <input type="submit" name="submit" value="Log In">

</form>

<?php
require_once "templates/footer.php";
?>
这是获取信息功能的代码

 public function get_info($table, $column, $value){

    if(!is_int($value))
      $value = "'" .$value. "'";

    $query = "SELECT * FROM $table WHERE $column = $value";
    $result = $this->conn->query($query);

    while($row = $result->fetch_assoc()){
      return $row;
    }
  }
我的注册页面也有类似的页面,但它成功地设置了会话并将我重定向到我想要的页面

<?php
require_once "core/init.php";

  $errors = array();

if( Input::get('submit')){

  //1. memanggil objek validasi
$validation = new Validation();
  //2. metode check
  $validation = $validation->check(array(
    'username' => array(
                          'required' => true,
                          'minimal' => 5,
                          'maximal' => 20,
                        ),
    'password' => array(
                      'required' => true,
                      'minimal' => 5,
                    ),
    'division' => array(
                      'required' => true,
                    )
  ));
  //3. passed Validation
  if($validation->passed() ){
  $admin->register_admin(array(
    'username' => Input::get('username'),
    'password' => password_hash(Input::get('password'), PASSWORD_DEFAULT),
    'division' => Input::get('div')
  ));

    Session::set('username', Input::get('username'));
    header('Location: adminindex.php');

  }else {
    $errors = $validation->errors();
  }
}

require_once "templates/header.php";
 ?>

<form class="" action="registeradmin.php" method="post">

  <label>ID Admin</label>
  <input type="text" name="username">

  <label>Password</label>
  <input type="password" name="password">

  <label>division</label>
  <input type="text" name="div">

    <?php if(!empty($errors)){ ?>
      <div id="errors">
        <?php foreach ($errors as $error) { ?>
          <li><?php echo $error; ?></li>
    <?php    } ?>
      </div>
    <?php } ?>

  <input type="submit" name="submit" value="add Admin">

</form>

<?php
require_once "templates/footer.php";
 ?>

ID管理员
密码
分开

  • 您是否检查了“管理员”表。注册数据是否感兴趣?我想你应该在这里使用post:if($admin->login\u admin(输入::get('username'),输入::get('password')),因为你使用的是formbtw中的post。对不起,我的语法和解释不好,我已经检查了admin表,数据存在,如果我取消对打印的注释,数据就会消失,它成功地在另一个页面中获取了数据记录i define Input::get('params'),因此它将是灵活的,并根据我们使用的方法设置方法
    <?php
    require_once "core/init.php";
    
      $errors = array();
    
    if( Input::get('submit')){
    
      //1. memanggil objek validasi
    $validation = new Validation();
      //2. metode check
      $validation = $validation->check(array(
        'username' => array(
                              'required' => true,
                              'minimal' => 5,
                              'maximal' => 20,
                            ),
        'password' => array(
                          'required' => true,
                          'minimal' => 5,
                        ),
        'division' => array(
                          'required' => true,
                        )
      ));
      //3. passed Validation
      if($validation->passed() ){
      $admin->register_admin(array(
        'username' => Input::get('username'),
        'password' => password_hash(Input::get('password'), PASSWORD_DEFAULT),
        'division' => Input::get('div')
      ));
    
        Session::set('username', Input::get('username'));
        header('Location: adminindex.php');
    
      }else {
        $errors = $validation->errors();
      }
    }
    
    require_once "templates/header.php";
     ?>
    
    <form class="" action="registeradmin.php" method="post">
    
      <label>ID Admin</label>
      <input type="text" name="username">
    
      <label>Password</label>
      <input type="password" name="password">
    
      <label>division</label>
      <input type="text" name="div">
    
        <?php if(!empty($errors)){ ?>
          <div id="errors">
            <?php foreach ($errors as $error) { ?>
              <li><?php echo $error; ?></li>
        <?php    } ?>
          </div>
        <?php } ?>
    
      <input type="submit" name="submit" value="add Admin">
    
    </form>
    
    <?php
    require_once "templates/footer.php";
     ?>