Ajax ошибка вызова, не позволяющая мне просмотреть недостающие детали из формы - PullRequest
0 голосов
/ 27 февраля 2020

Я не знаю, что я сделал, но мне кажется, что в моем запросе ajax есть какая-то ошибка. Я ожидаю, что смог увидеть недостающие детали, не введенные в форму регистрации. Я получаю 500 ошибок сервера и неопределенных $("#signupform") ошибок.

Я попытался выполнить поиск здесь и попытался вставить различные комментарии в мой код, чтобы попытаться выяснить, помогает ли это. Я занимаюсь программированием всего 10 недель, поэтому для меня все это ново. Я взял онлайн-курс, который обещал землю, но не имеет никакой поддержки.

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

У меня есть эти страницы, размещенные на поддомене, вот ссылка http://welcomer.offyoucode.co.uk/WEBSITES/9.Notes%20App/ на случай, если оттуда легче разобраться.

<!--connect to the database-->
<?php
$link = mysqli_connect("#", "#", "#", "#");
if(mysqli_connect_error()){
    die("ERROR: Unable to connect:" . mysqli_connect_error());

echo "<script>window.alert('Hi!')</script>";
}
?>



<!DOCTYPE html>
<html lang="en">
  <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Online Notes</title>

        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
        <link href="styling.css" rel="stylesheet">
      <link href="https://fonts.googleapis.com/css?family=Arvo&display=swap" rel="stylesheet">

        <style>



        </style>

  </head>
        <body>

            <!--navbar-->
<nav role="navigation" class="navbar navbar-custom navbar-fixed-top">
            <div class="container-fluid">
                <div class="navbar-header">
                <a class="navbar-brand">Online Notes</a>
                <button type="button" class="navbar-toggle" data-target="#navbarCollapse" data-toggle="collapse">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                </div>
                <div class="navbar-collapse collapse" id="navbarCollapse">
                    <ul class="nav navbar-nav">
                    <li class="active"><a href="Home.php">Home<span class="caret"></span></a></li>
                    <li><a href="Help.php">Help</a></li>
                    <!--<li><a href="sign-up.php">Sign-Up</a></li>-->
                        <li><a href="20.contactform.php">Contact Us</a></li>
                    </ul>
                    <ul class="nav navbar-nav navbar-right">
                        <li><a href="#loginModal" data-toggle="modal">Login</a></li>
                    </ul>
                  </div>
            </div>
        </nav>

                <!--jumbotron with signup button-->
            <div class="jumbotron" id="myContainer">
                <h1>Online Notes App</h1>
                <p>Your notes with you, wherever you go.</p>
                <p>Easy to use, protects all your notes!</p>
                <button type="button" class="btn btn-lg green signup" data-target="#signupModal" data-toggle="modal">Sign up - Its free</button>

              </div>

            <!--login form-->
            <form method="post" id="loginform">
                <div class="modal" id="loginModal" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                <div class="modal-dialog">
                    <div class="modal-content">
                        <div class="modal-header">
                            <button class="close" data-dismiss="modal">&times;</button>
                            <h4 id="myModalLabel">Login:</h4>
                        </div>

                        <div class="modal-body">

                            <!--login message from php file-->
                        <div id="loginmessage"></div>

                            <div class="form-group">
                                <label for="loginemail" class="sr-only">Email:</label>
                                <input class="form-control" type="email" name="loginemail" id="loginemail" placeholder="Email" maxlength="50">
                            </div>
                            <div class="form-group">
                                <label for="loginpassword" class="sr-only">Password</label>
                                <input class="form-control" type="password" name="loginpassword" id="loginpassword" placeholder="Password" maxlength="40">
                            </div>
                           <div class="checkbox">
                               <label>
                                   <input type="checkbox" name="rememberme" id="rememberme">
                                Remember me
                               </label>
                               <a class="pull-right" style="cursor: pointer" data-dismiss="modal" data-target="#forgotpasswordModal" data-toggle="modal">
                            Forgot Password?
                            </a>
                            </div>

                        </div>

                        <div class="modal-footer">
                            <input class="btn green" name="login" type="submit" value="Login">
                            <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
                            <button type="button" class="btn btn-default pull-left" data-dismiss="modal" data-target="signupModal" data-toggle="modal">Register</button>



                        </div>

                    </div>


                </div>

            </div>
            </form>

            <!--signup form-->
            <form method="post" id="signupform">
                <div class="modal" id="signupModal" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                <div class="modal-dialog">
                    <div class="modal-content">
                        <div class="modal-header">
                            <button class="close" data-dismiss="modal">&times;</button>
                            <h4 id="myModalLabel">Sign up today and start using our Online Notes App! </h4>
                        </div>

                        <!--signup message from php file-->
                        <div id="signupmessage"></div>

                        <div class="modal-body">
                            <div class="form-group">
                                <label for="username" class="sr-only">Username:</label>
                                <input class="form-control" type="text" name="username" id="username" placeholder="Username" maxlength="35">
                            </div>
                            <div class="form-group">
                                <label for="email" class="sr-only">Email:</label>
                                <input class="form-control" type="email" name="email" id="email" placeholder="Email" maxlength="50">
                            </div>
                            <div class="form-group">
                                <label for="password" class="sr-only">Password:</label>
                                <input class="form-control" type="password" name="password" id="password" placeholder="Choose a password" maxlength="40">
                            </div>
                            <div class="form-group">
                                <label for="password2" class="sr-only">ConfirmPassword:</label>
                                <input class="form-control" type="password" name="password2" id="password2" placeholder="Confirm password" maxlength="40">
                            </div>
                        </div>

                        <div class="modal-footer">
                            <input class="btn green" name="signup" type="submit" value="Sign up">
                            <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>



                        </div>

                    </div>


                </div>

            </div>
            </form>

            <!--forgot password form-->
            <form method="post" id="forgotpasswordForm">
                <div class="modal" id="forgotpasswordModal" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                <div class="modal-dialog">
                    <div class="modal-content">
                        <div class="modal-header">
                            <button class="close" data-dismiss="modal">&times;</button>
                            <h4 id="myModalLabel">Forgot Password? Enter your Email address:</h4>
                        </div>

                        <div class="modal-body">

                            <!--forgot password message from php file-->
                        <div id="forgotpasswordMessage"></div>

                            <div class="form-group">
                                <label for="forgotpasswordEmail" class="sr-only">Email:</label>
                                <input class="form-control" type="email" name="forgotpasswordEmail" id="forgotpasswordEmail" placeholder="Email" maxlength="50">
                            </div>


                        </div>

                        <div class="modal-footer">
                            <input class="btn green" name="login" type="submit" value="Login">
                            <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
                            <button type="button" class="btn btn-default pull-left" data-dismiss="modal" data-target="signupModal" data-toggle="modal">Register</button>



                        </div>

                    </div>


                </div>

            </div>
            </form>


<?php 
include "footer.php";
?>

        <script src="https://code.jquery.com/jquery-1.12.4.js"></script>

        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>  

        <script src="index.js"></script>

        </body>
</html>


//Ajax Call for the sign up form
//once the form is submitted
$("#signupform").submit(function(event){
    //prevent default php processing
    event.preventDefault();
    //collect user inputs
    var datatopost =
    $(this).serializeArray();
    console.log(datatopost);

    //send them to signup.php using ajax
    $.ajax({
        url: "signup.php",
        type: "POST",
        data: datatopost,
        success: function(data){
           if(data){
               $("#signupmessage").html(data);
           }

        },


        error: function(){
            $("#signupmessage").html("<div class='alert alert-danger'>There was an error with the Ajax Call. Please try again later.</div>");
        },

    });

    //    $.post({}).done().fail();
});

        //ajax call successful: show error or success message
        //ajax call fails: show ajax call error

//ajax call for the login form
//once the form is submitted
    //prevent default php processing
    //collect user inputs
    //send them to login.php using ajax
        //if php files return "success": redirect user to notes page
        //otherwise show error message
        //ajax call fails: show ajax call error

//ajax call for the forgot password form
//once the form is submitted
    //prevent default php processing
    //collect user inputs
    //send them to login.php using ajax
        //ajax call successful: show error or success message
        //ajax call fails: show ajax call error

<?php
//<!--start session-->
session_start();
include("connection.php");

//<!--check user inputs-->
//    <!--define error messages-->
$missingUsername='<p><strong>Please enter a username</strong></p>';
$missingEmail='<p><strong>Please enter an email address</strong></p>';
$invalidEmail='<p><strong>Please enter a valid email address</strong></p>';
$missingPassword='<p><strong>Please enter a password</strong></p>';
$invalidPassword='<p><strong>Your password should be at least 8 characters long and contain at least 1 capital letter and 1 number!</strong></p>';
$differentPassword='<p><strong>Passwords do not match! </strong></p>';
$missingPassword2='<p><strong>Please confirm your password</strong></p>';

$errors = "";
$username = "";
$email = "";
$password = "";

$myFile = "db.json";
$arr_data = array(); //create empty array
//    <!--get username, email, password, password2-->
//get username
if(empty($_POST["username"])){
    $errors .= $missingUsername;
}else{
    $username = filter_var($_POST["username"], FILTER_SANITIZE_STRING);
}
//get email
if(empty($_POST(["email"]))){
    $errors .= $missingEmail;
}else{
    $email = filter_var($_POST["email"],
                          FILTER_SANITIZE_EMAIL);
    if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
        $errors .= $invalidEmail;
    }
}
//   get passwords
if(empty($_POST["password"])){
    $errors .= $missingPassword;
}elseif(!(strlen($_POST["password"])>= 8 and preg_match('/[A-Z]/', $_POST["password"])and 
preg_match('/[0-9]/', $_POST["password"])
        )
       ){
    $errors .= $invalidPassword;
}else{
    $password = filter_var($_POST["password"], FILTER_SANITIZE_STRING);
    if(empty($_POST["password2"])){
        $errors .= $missingPassword2;
    }else{
        $password2 = filter_var($_POST["password2"], FILTER_SANITIZE_STRING);
        if($password !== $password2){
            $errors .= $differentPassword;
        }
    }
}

//    <!--if there are any errors print errors-->
if($errors){
    $resultMessage = '' . $errors . '';
    echo $resultMessage;
    exit;
}    

//<!--no errors-->

//    <!--prepare variables for the query-->
$username = mysqli_real_escape_string($link, $username);
$email = mysqli_real_escape_string($link, $email);
$password = mysqli_real_escape_string($link, $password);
   $password = md5($password);
   //128 bits -> 32 characters
//    <!--if username exists in the table print error-->
   $sql = "SELECT * FROM users WHERE username = '$username'";
   mysqli_query($link, $sql);
   if($!result){
       echo '<div class="alert alert-danger">Error running the query!</div>';
//       echo '<div class="alert alert-danger">' . mysqli_error($link) . '</div>';
       exit;
   }
  $results = mysqli_num_rows($results);
   if($results){
       echo '<div class="alert alert-danger">That username is already in use. Do you want to log in?</div>'; exit;
   }
//    <!--else-->
//        <!--if email exists in the users table print error-->
   $sql = "SELECT * FROM users WHERE email = '$email'";
   mysqli_query($link, $sql);
   if(!$result){
       echo '<div class="alert alert-danger">Error running the query!</div>';
       exit;
   }
  $results = mysqli_num_rows($results);
   if($results){
       echo '<div class="alert alert-danger">That email is already in use. Do you want to log in?</div>'; exit;
   }
//        <!--else-->
//            <!--create a unique activation code-->
   $activationKey = bin2hex(openssl_random_pseudo_bytes(16));
    //byte: unit of data = 8 bits
    //bit: 0 or 1
    //16 bytes = 16*8 = 128 bits
    //2*2*2*2*2*2....*2
    //16*16.......*16
    //32 characters

//            <!--insert user details and activation code in the users table-->
   $sql = "INSERT INTO users ('username', 'email', 'password', 'activation') VALUES ('$username', '$email', '$password', '$activationKey')";
   mysqli_query($link, $sql);
   if(!$result){
       echo '<div class="alert alert-danger">There was an error inserting the user details into the database</div>';exit;
   }
//            <!--send the user an email with a link to activate.php with their email and activation code-->
   $message = "Please click on this link to activate your account:\n\n";
   $message = "http://https://welcomer.offyoucode.co.uk/WEBSITES/9.Notes%20App/activate.php?email=" . urlencode($email) . "&key=$activationKey"; if(mail($email, 'Confirm your Registration', $message, 'From:'.'onlinenotes@gmail.com')){
       echo '<div class="alert alert-success">Thank you for registering. A confirmation email address has been sent to $email. Please click on the activation link to activate your account.</div>';
   }


?>     

1 Ответ

1 голос
/ 28 февраля 2020

Решено! В строке 34 при регистрации. php дополнительные скобки вокруг ввода электронной почты. Решено с помощью ERROR_REPORTING (E_ALL); ini_set ('display_errors', 1), чтобы сузить мою ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...