Intereting Posts
Загрузка дополнительных сообщений Ajax Button в WordPress – исправить регенерирующий идентификатор сеанса Сортировка массива php массивов по индивидуальному заказу Почему codeigniter2 не сохраняет csrf_hash более безопасным способом, например сеансом? Невозможно вставить предложение в базу данных Разрешения установлены на 777 и файл все еще не доступен для записи API рекламы продукта Amazon: получите подробный URL-адрес продукта от ASIN обрабатывать несколько запросов по почте на тот же URL-адрес Laravel 5 загрузите текстовый файл вместо открытия в браузере Сделать сумму всего поля строки таблицы в PHP Как добавить функцию друга / друга в PHP? Метод PHP для динамического получения значений из свойства объекта массива Предупреждение: mysqli_num_rows () ожидает, что параметр 1 будет mysqli_result, boolean задан в PHP / HTML Добавить кнопку удаления Как проверить, установлен ли флажок в PHP?

Перемещение в mysqli

Я решил перейти к mysqli, поскольку я все время пылаю, когда люди указывают мой код mysql 🙂

Может ли кто-то проверить, что ниже правильно, все работает, но я просто хочу убедиться, что я не делаю что-то глупое или представляю угрозу безопасности, прежде чем переходить на остальные сайты. Это php для проверки имени пользователя и пароля при входе в систему.

<?php //Start session session_start(); //Include database connection details require_once('db_connect.php'); //Array to store validation errors $errmsg_arr = array(); //Validation error flag $errflag = false; // cleanup POST variables $username = mysqli_real_escape_string($mysqli, stripslashes(trim($_POST['username']))); $password = mysqli_real_escape_string($mysqli, stripslashes(trim($_POST['password']))); //Input Validations if($username == '') { $errmsg_arr[] = 'Username required'; $errflag = true; } if($password == '') { $errmsg_arr[] = 'Password required'; $errflag = true; } //If there are input validations, redirect back to the login form if($errflag) { $_SESSION['ERRMSG_ARR'] = $errmsg_arr; session_write_close(); header("location: logon.php"); exit(); } //Load and run query $result = mysqli_query($mysqli, "SELECT * FROM auth WHERE username='$username' AND password='$password'"); if ($result->num_rows) { //Login Successful session_regenerate_id(); //Set session variables $member = $result->fetch_assoc(); $_SESSION['SESS_MEMBER_ID'] = $member['ID']; $_SESSION['SESS_USERNAME'] = $member['username']; $_SESSION['SESS_FIRST_NAME'] = $member['fname']; $_SESSION['SESS_PASSWORD'] = $member['password']; $_SESSION['SESS_AUTH_LEVEL'] = $member['auth_level']; session_write_close(); header("location: index"); exit(); }else { //Login failed $errmsg_arr[] = 'user name or password not found'; $errflag = true; if($errflag) { $_SESSION['ERRMSG_ARR'] = $errmsg_arr; session_write_close(); header("location: logon.php"); exit(); } } mysqli_close($mysqli); ?> 

Большое спасибо!

Related of "Перемещение в mysqli"

Ну, вы хотели бы использовать подготовленные инструкции здесь, потому что вы не выполняете статический SQL-запрос – для этого и должен использоваться mysqli_query() .

Итак, вот что вам нужно сделать:

  1. Не беспокойтесь о разделе // cleanup POST variables .
  2. Измените раздел //Load and run query для использования подготовленного оператора.
  3. Во-первых, мы хотим его подготовить: http://php.net/manual/en/mysqli.prepare.php

    $query = mysqli_prepare($mysqli, "SELECT * FROM auth WHERE username=? AND password=?");

  4. Тогда мы хотим дать Mysqli, что? Знаки: http://www.php.net/manual/en/mysqli-stmt.bind-param.php

    $query->bind_param('ss', $username, $password);

Затем используйте bind_result и fetch (см. Индекс по адресу http://www.php.net/manual/en/class.mysqli-stmt.php ), чтобы получить результат и сохранить в переменных сеанса.