Предупреждение: mysqli_query() ожидает по крайней мере 2 параметра, 1 из которых задан в строках 88 и 89
Два предупреждения показывают, но я едва ли могу указать, что сделало следующие коды ошибочными:
1 <?php 2 session_start(); 3 ?> 4 <!DOCTYPE html> 5 <head> 6 <meta charset="UTF-8" /> 7 <!-- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> --> 8 <title>LRMS Login</title> 9 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 10 <!--<link rel="shortcut icon" href="../favicon.ico">--> 11 <link rel="stylesheet" type="text/css" href="css/login.css" /> 12 <link rel="stylesheet" type="text/css" href="css/animate-custom.css" /> 13 </head> 14 <body> 15 <div class="container"> 16 <section> 17 <div id="container_demo" > 18 <a class="hiddenanchor" id="toregister"></a> 19 <a class="hiddenanchor" id="tologin"></a> 20 <div id="wrapper"> 21 <div id="login" class="animate form"> 22 <form action="filter.php" autocomplete="on" method="post"> 23 <h1>System Security</h1> 24 <p> 25 <label for="username" class="uname" data-icon="u" >Username </label> 26 <input id="username" name="username" required="required" type="text" placeholder="John"/> 27 </p> 28 <p> 29 <label for="password" class="youpasswd" data-icon="p">Password </label> 30 <input id="password" name="password" required="required" type="password" placeholder="secret01" /> 31 </p> 32 <p class="keeplogin"> 33 <input type="checkbox" name="loginkeeping" id="loginkeeping" value="loginkeeping" /> 34 <label for="loginkeeping">Keep me logged in</label> 35 </p> 36 <p class="login button"> 37 <input type="submit" value="Login" /> 38 </p> 39 <p class="change_link"> 40 Not a member yet ? 41 <a href="#toregister" class="to_register">Register</a> 42 </p> 43 </form> 44 </div> 45 46 <div id="register" class="animate form"> 47 <form action="filter.php" autocomplete="on" method="post"> 48 <h1>Register Here</h1> 49 <p> 50 <label for="firstnamesignup" class="fname" data-icon="u">Your firstname</label> 51 <input id="firstnamesignup" name="firstnamesignup" required="required" type="text" placeholder="Admin Firstname" /> 52 </p> 53 <p> 54 <label for="lastnamesignup" class="lname" data-icon="u">Your lastname</label> 55 <input id="lastnamesignup" name="lastnamesignup" required="required" type="text" placeholder="Admin Lastname" /> 56 </p> 57 <p> 58 <label for="emailsignup" class="email" data-icon="e">Your email</label> 59 <input id="emailsignup" name="emailsignup" required="required" type="email" placeholder="Admin Email Address" /> 60 </p> 61 <p> 62 <label for="usernamesignup" class="uname" data-icon="u">Your username</label> 63 <input id="usernamesignup" name="usernamesignup" required="required" type="text" placeholder="Admin Username" /> 64 </p> 65 <p> 66 <label for="passwordsignup" class="youpasswd" data-icon="p">Your password </label> 67 <input id="passwordsignup" name="passwordsignup" required="required" type="password" placeholder="Admin Password"/> 68 </p> 69 <p class="signin button"> 70 <input type="submit" value="Sign up"/> 71 </p> 72 <p class="change_link"> 73 Already a member ? 74 <a href="#tologin" class="to_register"> Go and log in </a> 75 </p> 76 </form> 77 </div> 78 79 </div> 80 </div> 81 </section> 82 </div> 83 <?php 84 include "db.php"; 85 86 function register($id,$uname,$pass,$fname,$lname,$email){ 87 $q="insert into users values ('$id','$uname','$pass','$fname','$lname','$email')"; 88 mysqli_query("alter table users auto_increment = 1"); 89 if(mysqli_query($q)){ 90 mkdir("$dir", 0700); 91 echo "<script language='javascript'> 92 alert('User Registered'); 93 window.location = 'filter.php'; 94 </script> 95 "; 96 97 } 98 else{ 99 echo "<script language='javascript'> 100 alert('Registration Failed Or User Already Registered'); 101 window.location = 'filter.php'; 102 </script> 103 "; 104 } 105 } 106 if(isset($_POST['usernamesignup'])){ 107 $uname=$_POST['usernamesignup']; 108 $pass=$_POST['passwordsignup']; 109 $pass_crypt=md5($pass); 110 $fname=$_POST['firstnamesignup']; 111 $lname=$_POST['lastnamesignup']; 112 $email=$_POST['emailsignup']; 113 114 register('',$uname,$pass_crypt,$fname,$lname,$email); 115 } 116 if(isset($_POST['username'])){ 117 include "db.php"; 118 $username=$_POST['username']; 119 $password=$_POST['password']; 120 $pass_crypt=md5($password); 121 122 $q ="SELECT * FROM users WHERE username = '$username' and password = '$pass_crypt'"; 123 $query=mysqli_query($config,$q); 124 // Check username and password match 125 if (mysqli_num_rows($query) == 1){ 126 // Set username session variable 127 $_SESSION['username']=$_POST['username']; 128 // Jump to secured page 129 //header("Location: home.php"); 130 echo '<script type="text/javascript"> 131 location.replace("home.php"); 132 </script>'; 133 } 134 else{ 135 echo " 136 <script language='javascript'> 137 alert('Invalid Credentials'); 138 </script> 139 "; 140 } 141 } 142 ?> 143 </body> 144 </html>
Что я уже пробовал:
Ошибка возникает здесь:
88 mysqli_query("alter table users auto_increment = 1"); 89 if(mysqli_query($q)){
Мне очень жаль. Я не знаю, как поставить номера строк (я не знаю, как это называется) :) .
Я не пробовал ничего подобного. Но если кто-нибудь здесь может поделиться, как решить эту проблему (Я думаю, что это довольно просто для вас) проблема, я был бы очень благодарен. Спасибо всем.
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
PHP: SQL-инъекция - руководство пользователя[^]
РНР: Подготовленные инструкции и хранимые процедуры - руководство пользователя[^]
Richard Deeming
Вы также храните несоленый MD5-хэш паролей ваших пользователей. Не делай этого. MD5 уже много десятилетий не считается "безопасным".
Используйте встроенные функции PHP,чтобы делать правильные вещи при хранении / проверке паролей:
PHP: password_hash[^]
РНР: функцию password_verify[^]