PHP: как я могу получить неизвестный идентификатор имени пользователя и пароля в MySQL - PullRequest
0 голосов
/ 21 декабря 2018

Привет всем, с кого я создаю логин, и он работает отлично, поэтому в то же время я пытаюсь получить ID имени пользователя и пароля, которые я ввел, может кто-нибудь сказать мне, как я могу это сделать.Примечание: я не очень хорош в php.спасибо

<?php
   include("login.php");
   session_start();
   $notexist="";


   if($_SERVER["REQUEST_METHOD"] == "POST") {
      // username and password sent from form 


      $myusername = mysqli_real_escape_string($db,$_POST['email']);
      $mypassword = mysqli_real_escape_string($db,$_POST['password']); 
     $id;



      $sql = "SELECT ID FROM newdata WHERE  names = '$myusername' and password= '$mypassword' ";

      $result = mysqli_query($db,$sql);
      $row = mysqli_fetch_array($result,MYSQLI_ASSOC);


      $count = mysqli_num_rows($result);


      // If result matched $myusername and $mypassword, table row must be 1 row

      if($count == 1) {

        $notexist="";
        echo "yes";

        echo $myusername;
       $url = "test.php?username=".$myusername;


       $_SESSION['favcolor'] = 'green';
       exit();
      }else {
         $notexist="wrong username and password";
         echo  $notexist;
      }
   }
?>

1 Ответ

0 голосов
/ 21 декабря 2018

Редактировать: Извините, я один из первых раз отвечал на вопрос здесь.Я включу объяснение того, что происходит во всех будущих ответах.

В основном, когда вы используете функцию mysqli_fetch_array (), вы возвращаете два массива для первой строки запроса.Один ассоциативный массив, ключ = имя поля + значение = возвращаемое значение.Один пронумерованный массив, начиная с индекса 0. Вы указали, что у вас есть только ассоциативный массив, используя второй необязательный параметр.

Таким образом, для доступа к первому полю запроса в этом вы можете использовать $ row ['ID'] или $ row [0].Я предпочитаю использовать ассоциативный массив, так как он облегчает чтение кода.

Вы не можете использовать это для доступа к именам полей или паролям, поскольку их нет в предложении SELECT вашего запроса.Если вы хотите получить к ним доступ, вы можете использовать следующее

$sql = "SELECT ID, names, password FROM newdata WHERE  names = '$myusername' and password= '$mypassword' ";

Если вы возвращаете несколько строк данных, вы можете получить доступ к каждой строке, заключив свой fetch_array в цикл while

while($row = mysqli_fetch_array($result)){
  //do some stuff here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...