Реализация правильного доступа к базе данных php для входа/регистрации модального

Я пытаюсь перепроектировать страницу входа в систему, чтобы включить как регистрационные формы, так и регистры на одной странице и не иметь 2 отдельных страницы. Раньше у меня были мои логин и регистрация страниц, которые правильно обращались к моей базе данных через php. Я попытался просто скопировать элементы, которые мне нужны, из того, что я раньше работал для каждого человека, но страницы для учебника ниже, однако мое соединение с базой данных /php, похоже, ничего не делает.

Я следую этому методу, описанному по адресу http://codyhouse.co/gem/loginsignup-modal-window/

Новый index.php

<!--?php

session_start();

?-->

<!--?php


//Log out and delete cookie
 /* if(isset($_GET['logout'])){
 session_destroy();

 }*/

//After validation, then check the entered data 
 if( isset($_POST['log_username']) && isset($_POST['log_password'])) {


 $log_username = $_POST['log_username'];
 $log_password = $_POST['log_password'];

 $con =mysql_connect("localhost", "user4321", "4321");
 mysql_select_db('supernatural',$con);

 $sql = "SELECT * FROM user WHERE user_username='$log_username' AND user_password2='$log_password'";
 $sql_E = "SELECT * FROM user WHERE user_username='$log_username'";

 $loginShow = mysql_query($sql);
 $loginShow_E = mysql_query($sql_E);

 $lookOver=mysql_num_rows($loginShow);
 $lookOver_E=mysql_num_rows($loginShow_E);

 $row = mysql_fetch_array($loginShow);
 $row_E = mysql_fetch_array($loginShow_E);

 $myuser = $row['user_fn'];
 //$cookie_name = "cook_name";
 if($lookOver == 1){ 
 //Set Cookie for 1 day
 //setcookie($cookie_name,"$myuser", time() + 86400,"/");
 $_SESSION['loggedin'] = true;
 $_SESSION['user'] = $myuser;
 $_SESSION['userid'] = $row['user_id'];
 $_SESSION['userlevel'] = $row['level'];

 header("location: map.php");



 /*
if(!isset($_COOKIE[$cookie_name])) {
 echo "Cookie name does not exist!";
 } else {
 echo "Cookie is named: <br-->" . $_COOKIE[$cookie_name]."<a href="?logout" target="_blank">Log Out</a>";

 }
*/


 } else {
 //If only password is wrong, then it will send an email with password.
 if($lookOver_E == 1){

 echo "Don't remember your password?  <a href="register.php" target="_blank">Register a new account with a new email</a>";
 /*href='found.php '>Send me a email with my password."; */ 
 //If there is not one data relevant to, then it requires users reset.
 }else{
 echo "Don't remember your Username?  <a href="register.php" target="_blank">Register a new account with a new email</a>";

 }

 }


 mysql_close($con);

 }

 //echo json_encode($_SESSION['loggedin'] ? 'true' : 'false');


?>
<!--doctype html-->


 
 

 

  <!-- CSS reset -->
  <!-- Gem style -->
  <!-- Modernizr -->

 <title>Log In & Sign Up Form</title>


 <header role="banner">
 

 <nav>
 <ul>
 <!-- inser more links here -->
 <li><a href="#0" target="_blank">Sign in</a></li>
 <li><a href="#0" target="_blank">Sign up</a></li>
 </ul>
 </nav>
 </header>

 <div> <!-- this is the entire modal form, including the background -->
 <div> <!-- this is the container wrapper -->
 <ul>
 <li><a href="#0" target="_blank">Sign in</a></li>
 <li><a href="#0" target="_blank">New account</a></li>
 </ul>

 <div id="cd-login"> <!-- log in form -->
 <form action="index.php" method="post">
 <p>
 <label for="log_username">Login</label>
 
 <span>Please enter a username!</span>
 </p>

 <p>
 <label for="log_password">Password</label>
 
 <span>Please enter a password!</span>
 </p>

 <p>
 
 <label for="remember-me">Remember me</label>
 </p>

 <!--p class="fieldset"-->
 
 <!--/p-->
 </form>

 <p><a href="#0" target="_blank">Forgot your password?</a></p>
 <!-- <a href="#0" class="cd-close-form">Close</a> -->
 </div> <!-- cd-login -->






 <div id="cd-signup"> <!-- sign up form -->
 <form>
 <p>
 <label for="signup-username">Username</label>
 
 <span>Error message here!</span>
 </p>

 <p>
 <label for="signup-email">E-mail</label>
 
 <span>Error message here!</span>
 </p>

 <p>
 <label for="signup-password">Password</label>
 
 <a href="#0" target="_blank">Hide</a>
 <span>Error message here!</span>
 </p>

 <p>
 
 <label for="accept-terms">I agree to the <a href="#0" target="_blank">Terms</a></label>
 </p>

 <p>
 
 </p>
 </form>

 <!-- <a href="#0" class="cd-close-form">Close</a> -->
 </div> <!-- cd-signup -->

 <div id="cd-reset-password"> <!-- reset password form -->
 <p>Lost your password? Please enter your email address. You will receive a link to create a new password.</p>

 <form>
 <p>
 <label for="reset-email">E-mail</label>
 
 <span>Error message here!</span>
 </p>

 <p>
 
 </p>
 </form>

 <p><a href="#0" target="_blank">Back to log-in</a></p>
 </div> <!-- cd-reset-password -->
 <a href="#0" target="_blank">Close</a>
 </div> <!-- cd-user-modal-container -->
 </div> <!-- cd-user-modal -->

 <!-- Gem jQuery -->

Новый main.js

$(window).load(function(){
 var $form_modal = $('.cd-user-modal'),
 $form_login = $form_modal.find('#cd-login'),
 $form_signup = $form_modal.find('#cd-signup'),
 $form_forgot_password = $form_modal.find('#cd-reset-password'),
 $form_modal_tab = $('.cd-switcher'),
 $tab_login = $form_modal_tab.children('li').eq(0).children('a'),
 $tab_signup = $form_modal_tab.children('li').eq(1).children('a'),
 $forgot_password_link = $form_login.find('.cd-form-bottom-message a'),
 $back_to_login_link = $form_forgot_password.find('.cd-form-bottom-message a'),
 $main_nav = $('.main-nav');

 //open modal
 $main_nav.on('click', function(event){

 if( $(event.target).is($main_nav) ) {
 // on mobile open the submenu
 $(this).children('ul').toggleClass('is-visible');
 } else {
 // on mobile close submenu
 $main_nav.children('ul').removeClass('is-visible');
 //show modal layer
 $form_modal.addClass('is-visible'); 
 //show the selected form
 ( $(event.target).is('.cd-signup') ) ? signup_selected() : login_selected();
 }

 });

 //close modal
 $('.cd-user-modal').on('click', function(event){
 if( $(event.target).is($form_modal) || $(event.target).is('.cd-close-form') ) {
 $form_modal.removeClass('is-visible');
 } 
 });
 //close modal when clicking the esc keyboard button
 $(document).*****(function(event){
 if(event.which=='27'){
 $form_modal.removeClass('is-visible');
 }
 });

 //switch from a tab to another
 $form_modal_tab.on('click', function(event) {
 event.preventDefault();
 ( $(event.target).is( $tab_login ) ) ? login_selected() : signup_selected();
 });


 //show forgot-password form 
 $forgot_password_link.on('click', function(event){
 event.preventDefault();
 forgot_password_selected();
 });

 //back to login from the forgot-password form
 $back_to_login_link.on('click', function(event){
 event.preventDefault();
 login_selected();
 });

 function login_selected(){
 $form_login.addClass('is-selected');
 $form_signup.removeClass('is-selected');
 $form_forgot_password.removeClass('is-selected');
 $tab_login.addClass('selected');
 $tab_signup.removeClass('selected');
 }

 function signup_selected(){
 $form_login.removeClass('is-selected');
 $form_signup.addClass('is-selected');
 $form_forgot_password.removeClass('is-selected');
 $tab_login.removeClass('selected');
 $tab_signup.addClass('selected');
 }

 function forgot_password_selected(){
 $form_login.removeClass('is-selected');
 $form_signup.removeClass('is-selected');
 $form_forgot_password.addClass('is-selected');
 }

 //$form_login.find('input[id="submitBtn"]').on('click', function(event){
 //validate();
//console.log("YO");
 //event.preventDefault();

$('#submitBtn').click(function(){
 var loginUsername = $('#log_username');
 var loginPass = $('#log_password');
 var logintext = false;
 var passwordtext = false;
 if (loginUsername.val() != 0){
 loginUsername.removeClass('has-error').next('span').removeClass('is-visible');
 logintext = true;
 } else {
 loginUsername.addClass('has-error').next('span').addClass('is-visible');
 logintext = false; 
 //console.log("NO");
 }

 if (loginPass.val() != 0){
 loginPass.removeClass('has-error').next('span').removeClass('is-visible');
 passwordtext = true;
 } else {
 loginPass.addClass('has-error').next('span').addClass('is-visible');
 passwordtext = false;
 //console.log("NO");
 }



 if (logintext == true && passwordtext == true){
 console.log("Both");
 return true;
 } else {
 console.log("Missing");
 return false;
 }



 });

Старый Login.php для справки

<!--?php

session_start();

?-->

<!--?php


//Log out and delete cookie
 if(isset($_GET['logout'])){
 session_destroy();

 }

//After validation, then check the entered data 
 if( isset($_POST['log_username']) && isset($_POST['log_password'])) {


 $log_username = $_POST['log_username'];
 $log_password = $_POST['log_password'];

 $con =mysql_connect("localhost", "user4321", "4321");
 mysql_select_db('supernatural',$con);

 $sql = "SELECT * FROM user WHERE user_username='$log_username' AND user_password2='$log_password'";
 $sql_E = "SELECT * FROM user WHERE user_username='$log_username'";

 $loginShow = mysql_query($sql);
 $loginShow_E = mysql_query($sql_E);

 $lookOver=mysql_num_rows($loginShow);
 $lookOver_E=mysql_num_rows($loginShow_E);

 $row = mysql_fetch_array($loginShow);
 $row_E = mysql_fetch_array($loginShow_E);

 $myuser = $row['user_fn'];
 //$cookie_name = "cook_name";
 if($lookOver == 1){ 
 //Set Cookie for 1 day
 //setcookie($cookie_name,"$myuser", time() + 86400,"/");
 $_SESSION['loggedin'] = true;
 $_SESSION['user'] = $myuser;
 $_SESSION['userid'] = $row['user_id'];
 $_SESSION['userlevel'] = $row['level'];

 header("location: map.php");



 /*
if(!isset($_COOKIE[$cookie_name])) {
 echo "Cookie name does not exist!";
 } else {
 echo "Cookie is named: <br-->" . $_COOKIE[$cookie_name]."<a href="?logout" target="_blank">Log Out</a>";

 }
*/


 } else {
 //If only password is wrong, then it will send an email with password.
 if($lookOver_E == 1){

 echo "Don't remember your password?  <a href="register.php" target="_blank">Register a new account with a new email</a>";
 /*href='found.php '>Send me a email with my password."; */ 
 //If there is not one data relevant to, then it requires users reset.
 }else{
 echo "Don't remember your Username?  <a href="register.php" target="_blank">Register a new account with a new email</a>";

 }

 }


 mysql_close($con);

 }

 //echo json_encode($_SESSION['loggedin'] ? 'true' : 'false');


?>




 
 
 
 
 
 <title>Login</title>
 



 <div id="logo-area">
 
 </div>
 <form action="login.php" method="post">

 <table>
 <tbody><tr id="msgBox">
 
 
 </tr>
 <tr>
 <td>
 <label>Username</label>
 </td>
 <td>
 
 </td>
 </tr>

 <tr>
 <td>
 <label>Password</label>
 </td>
 <td>
 
 </td>
 </tr>

 </tbody></table>

 <button type="submit" id="submitBtn">Log In</button>



 </form>
 <button onclick="location.href='index.php'">Cancel</button>

Старый validation2.js (эквивалент того, что main.js делает выше) для справки

$(window).load(function() {

 $('#submitBtn').click(function() {
 return validate(); 
 });

 //Assign two functions for acting displaying message and removing it
 function displayMsg(msg) {
 $('.msg').html(msg);
 }

 function clearMsg() {
 $('.msg').html("");
 }

 function validate() {

 var loginUsername = $('#log_username');
 var loginPass = $('#log_password');
 //the rule of validating letters and email format
 // var emailRegex = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/;
 //Login validation:Email
 //if (emailRegex.test(loginEmail.val())) {
 if (loginUsername.val() != 0){
 loginUsername.removeClass("erroB");
 } else {
 loginUsername.addClass("erroB");
 displayMsg("Please check your username");
 return false;
 } 


 //Login validation:Password
 if (loginPass.val() != 0) {
 loginPass.removeClass("erroB");
 } else {
 loginPass.addClass("erroB");
 displayMsg("Password is required");
 return false;
 }

 clearMsg();
 return true;

 }
 //make the validation be immidiatelly.
 $('input').*****(function() {
 validate();
 });

 });

Я только пробовал, чтобы начать работу с регистрационной частью (а не с регистром), но даже это ничего не делает.

Я в основном копировал именно то, что у меня было из предыдущего входа, но не могу понять, почему он не работает! Все учетные данные базы данных верны. Я пропустил что-то действительно простое здесь?

1 ответ

Проблема заключается в том, что запросы не обрабатываются. У вас нет атрибута name в форме входа. Добавьте в name="log_username" и name="log_username" а затем значения $log_username = $_POST['log_username'] и $log_password = $_POST['log_password'] будут иметь значения.

Также в форме action оставить его пустым, и форма представит его самому себе. Сделайте то же самое, добавив атрибуты имени для всех полей ввода в форме входа в систему и в форме регистра.

Вот исправление для формы входа:

div id="cd-login"> <!-- log in form -->
 <form action="" method="post">
 <p>
 <label for="log_username">Login</label>
 
 <span>Please enter a username!</span>
 </p>

 <p>
 <label for="log_password">Password</label>
 
 <span>Please enter a password!</span>
 </p>

 <p>
 
 <label for="remember-me">Remember me</label>
 </p>

 <!--p class="fieldset"-->
 
 <!--/p-->
 </form>

 <p><a href="#0" target="_blank">Forgot your password?</a></p>
 <!-- <a href="#0" class="cd-close-form">Close</a> -->

licensed under cc by-sa 3.0 with attribution.