Why I See Blank Page After Submitting Form And Why Echoing Fails ?

sunny_pro

New member
Joined
Jun 18, 2017
Messages
86
Points
0
Php Gurus,

I built a registration.php but I know not why I see a blank page after clicking "Register" button.
Ignore the <center> tag for the time being. Will replace that with <p align> tag. I put echoes on conditions to see which part of the conditions get triggered. But the echoes don't occur.

And, out of the following 2, which one suits my context ?

PHP:
$row = mysqli_fetch_array($result, MYSQLI_ASSOC); // Use this line or next ?
$row = mysqli_stmt_fetch($stmt); //Use this line or previous ?
registration.php

PHP:
    <?php

    /*
    ERROR HANDLING
    */
    declare(strict_types=1);
    ini_set('display_errors', '1');
    ini_set('display_startup_errors', '1');
    error_reporting(E_ALL);
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

    include 'config.php';

    //Step 1: Before registering User account, check if User is already 
    registered or not.

    //Check if User is already logged-in or not.
    if (is_logged() === true) {
        die("You are already logged-in! No need to register again!");
    }

    if ($_SERVER['REQUEST_METHOD'] == "POST")
    {
    //Step 2: Check User Submitted Details.
    
        //Check if user made all the required inputs or not.
        if (isset($_POST["username"]) && 
           isset($_POST["password"]) &&
           isset($_POST["password_confirmation"]) && 
           isset($_POST["email"]) && 
           isset($_POST["email_confirmation"]) && 
           isset($_POST["first_name"]) && 
           isset($_POST["surname"]) && 
           isset($_POST["gender"])) {
           
    //Step  3: Check User details for matches against database. If no matches 
    then validate inputs and register User account.
           
            //Create variables based on user inputs.
            $username     = trim($_POST["username"]);
            $password     = $_POST["password"];
            $password_confirmation = $_POST["password_confirmation"];
            $email         = trim($_POST["email"]);
            $email_confirmation = trim($_POST["email_confirmation"]);
            $first_name    = trim($_POST["first_name"]);
            $surname     = trim($_POST["surname"]);
            $gender     = $_POST["gender"];    
               $account_activation_code = sha1( (string) mt_rand(5, 30)); //Type 
    Casted the INT to STRING on the 1st parameter of sha1 as it needs to be a 
    STRING.
            $account_activation_link = 
    "http://www.".$site_domain."/".$social_network_name."/activate_account.php?
  
  email=".$_POST['email']."&account_activation_code=".$account_activation_code."";
            $account_activation_status = 0; // 1 = active; 0 = not active.
            $hashed_password = password_hash($password, PASSWORD_DEFAULT); 
    //Encrypt the password.
        
            //Select Username and Email to check against Mysql DB if they are 
    already registered or not.
            $stmt = mysqli_prepare($conn, "SELECT usernames, emails FROM users 
    WHERE usernames = ? OR emails = ?");
            mysqli_stmt_bind_param($stmt, 'ss', $username, $email);
            mysqli_stmt_execute($stmt);
            $result = mysqli_stmt_bind_result($stmt, $db_username, $db_email);    
            //$row = mysqli_fetch_array($result, MYSQLI_ASSOC); // Use this line 
    or next ?
            $row = mysqli_stmt_fetch($stmt); //Use this line or previous ?    
        
            // Check if inputted Username is already registered or not.
            if ($row['usernames'] == $username) {
                $_SESSION['error'] = "That username is already registered.";
                exit();
            // Check if inputted Username is between the required 8 to 30 
    characters long or not.
            } elseif (strlen($username) < 8 || strlen($username) > 30) {
                $_SESSION['error'] = "Username must be between 8 to 30 
    characters long!";
                exit();
            // Check if both inputted Emails match or not.
            } elseif ($email != $email_confirmation) {
                $_SESSION['error'] = "Emails don't match!";
                exit();
            // Check if inputed Email is valid or not.
            } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
                $_SESSION['error'] = "Invalid email! Insert your real Email in 
    order for us to email you your account activation details.";
                exit();
            // Check if inputted Email is already registered or not.
            } elseif ($row['emails'] == $email) {
                $_SESSION['error'] = "That email is already registered.";
                exit();
            // Check if both inputted Passwords match or not.
            } elseif ($password != $password_confirmation) {
                $_SESSION['error'] = "Passwords don't match.";
                exit();
            // Check if Password is between 8 to 30 characters long or not.
            } elseif (strlen($password) < 8 || strlen($password) > 30) {
                $_SESSION['error'] = "Password must be between 6 to 30 
    characters long!";
                exit();
                echo "line 88";
            } 
            else 
            {
                //Insert the user's inputs into Mysql database using php's sql 
    injection prevention method "Prepared Statements".
                $stmt = mysqli_prepare($conn, "INSERT INTO users(usernames, 
    passwords, emails, first_names, surnames, genders, 
    accounts_activations_codes, accounts_activations_statuses) VALUES (?, ?, ?, 
    ?, ?, ?, ?, ?)");
                mysqli_stmt_bind_param($stmt, 'sssssssi', $username, 
    $hashed_password, $email, $first_name, $surname, $gender, 
    $account_activation_code, $account_activation_status);
                mysqli_stmt_execute($stmt);
                echo "line 96";
            
                //Check if user's registration data was successfully submitted 
    or not.
                if (!$stmt)
                {
                    $_SESSION['error'] = "Sorry! Our system is currently 
    experiencing a problem registering your account! You may try registering 
    some other time.";
                    echo "line 102";
                    exit();
                }
                else 
                {
                    echo "line 107";
                    //Email the account activation link for user to click it to 
    confirm their email and activate their new account.
                    $to = $email;
                    $subject = "Your ".$site_name." account activation 
    details!";
                    $body  = nl2br("
                    ===============================\r\n
                    ".$site_name." \r\n
                    ===============================\r\n
                    From: ".$site_admin_email."\r\n
                    To: ".$email."\r\n
                    Subject: Yours ".$subject." \r\n
                    Message: ".$first_name." ".$surname."\r\n You need to click 
    on this following <a href=".$account_activation_link.">link</a> to activate 
    your account. \r\n");
                    $headers = "From: " . $site_admin_email . "\r\n";
            
                    if (!mail($to,$subject,$body,$headers)) 
                    {
                        $_SESSION['error'] = "Sorry! We have failed to email you 
    your account activation details. Please contact the website administrator!";
                        exit();
                    }
                    else
                    {
                        echo "<h3 style='text-align:center'>Thank you for your 
    registration!<br /> Check your email for details on how to activate your 
    account which you just registered.</h3>";
                        exit();
                    }
                }
            }
        }
    }

    ?>

    <!DOCTYPE html>
    <html>
        <head>
            <title><?php $social_network_name ?> Signup Page</title>
        </head>
    <body>
    <div class ="container">

    <?php
    // Error Messages.
    if (isset($_SESSION['error']) && !empty($_SESSION['error'])) {
        echo '<p style="color:red;">'.$_SESSION['error'].'</p>';
    }
    ?>

    <?php
    //Session Messages.
    if (isset($_SESSION['message']) && !empty($_SESSION['message'])) {
        echo '<p style="color:red;">'.$_SESSION['error'].'</p>';
    }
    ?>

    <?php
    //Clear Registration Session.
    function clear_registration_session()
        {
            //Clear the User Form inputs, Session Messages and Session Errors so 
    they can no longer be used.
            unset($_SESSION['message']);
            unset($_SESSION['error']);
            unset($_POST);
            exit();
        }
    ?>

    <form method="post" action="">
        <center><h2>Signup Form</h2></center>
        <div class="form-group">
            <center><label>Username:</label>
            <input type="text" placeholder="Enter a unique Username" 
    name="username" required [A-Za-z0-9] value="<?php 
    if(isset($_POST['username'])) { echo htmlentities($_POST['username']); }?>">
    </center>
        </div>
        <div class="form-group">
            <center><label>Password:</label>
            <input type="password" placeholder="Enter a new Password" 
    name="password" required [A-Za-z0-9]></center>
        </div>
        <div class="form-group">
            <center><label>Repeat Password:</label>
            <input type="password" placeholder="Repeat a new Password" 
    name="password_confirmation" required [A-Za-z0-9]></center>
        </div>
            <div class="form-group">
            <center><label>Email:</label>
            <input type="email" placeholder="Enter your Email" name="email" 
    required [A-Za-z0-9] value="<?php if(isset($_POST['email'])) { echo 
    htmlentities($_POST['email']); }?>"></center>
        </div>
        <div class="form-group">
            <center><label>Repeat Email:</label>
            <input type="email" placeholder="Repeat your Email" 
    name="email_confirmation" required [A-Za-z0-9] value="<?php 
    if(isset($_POST['email_confirmation'])) { echo 
    htmlentities($_POST['email_confirmation']); }?>"></center>
        </div>
        <div class="form-group">
            <center><label>First Name:</label>
            <input type="text" placeholder="Enter your First Name" 
    name="first_name" required [A-Za-z] value="<?php 
    if(isset($_POST['first_name'])) { echo htmlentities($_POST['first_name']); 
    }?>"></center>
        </div>
        <div class="form-group">
            <center><label>Surname:</label>
            <input type="text" placeholder="Enter your Surname" name="surname" 
    required [A-Za-z] value="<?php if(isset($_POST['surname'])) { echo 
    htmlentities($_POST['surname']); }?>"></center>
        </div>
        <div class="form-group">
            <center><label>Gender:</label>
            <input type="radio" name="gender" value="male" <?php 
    if(isset($_POST['gender'])) { echo 'checked'; }?> required>Male<input 
    type="radio" name="gender" value="female" <?php if(isset($_POST['gender'])) 
    { echo 'checked'; }?> required>Female</center>
        </div>
        <center><button type="submit" class="btn btn-default" 
        name="submit">Register!</button></center>
        <center><font color="red" size="3"><b>Already have an account ?</b><br>
    <a href="login.php">Login here!</a></font></center>
    </form>
    </div>
    </body>
    </html>
 

Rob Whisonant

Moderator
Joined
May 24, 2016
Messages
2,489
Points
113
First thing to do is check the error_log file in the folder the script is running from. See if it show any errors. Could be the script is just not completing.

Next step would be to add an echo further up the code and see if the code reaches it. If it does, move it down some until you can isolate the problem area either in the code our the logic.
 
Older threads
Replies
4
Views
1,907
Replies
1
Views
3,277
Replies
2
Views
2,042
Newer threads
Replies
1
Views
4,813
Replies
6
Views
3,312
Replies
3
Views
3,136
Replies
1
Views
2,238
Replies
7
Views
5,347
Latest threads
Recommended threads
Replies
1
Views
3,454
Replies
1
Views
4,070
Replies
3
Views
5,928
Replies
4
Views
1,798
Replies
5
Views
1,888
Similar threads

Referral contests

Referral link for :

Sponsors

Popular tags

You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an alternative browser.

Top