ritika
ritika

Reputation: 61

getting white screen after executing php code

Hi I am working on a simple php registration. But everytime I am submitting the registration page, i am getting a blank screen, no error, no display.

The code in my php file is :

<?php

if($_SERVER['REQUEST_METHOD']=="POST"){
$IP = //my hostname
$dbuser = "my user id";

$conn = new mysqli_connect($IP, $dbuser, "","my databse name");
if(! $conn )
{
  die('Could not connect: ' . mysqli_error());
}

$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$pass1 = $_POST['pass1'];
$pass2 = $_POST['pass2'];
$address = $_POST['address'];


$query = "SELECT email FROM user where email='".$email."'";
$result = mysqli_query($conn,$query);
$numResults = mysqli_num_rows($result);

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) // Validate email address
        {
            $message =  "Invalid email address please type a valid email!!";
        }


        elseif($numResults>=1)
        {
            $message = $email." Email already exist!!";
        }


else
        {
            mysqli_query("(insert into user(name,phone_number, email,pass1, pass2, address) values
            ('".$name."','".$phone."', '".$email."', '".$pass1."','".$pass2."','".$address."')");


            echo $message = "Signup Sucessfully!!";
        }


mysqli_close($conn);

}

print_r(error_get_last());

?>

there is no issue in establishing connection as i am using this connection method in other pages and they are working fine. Also i should specify that currently i am working on cloud 9 and my mysql database is on cloud9 itself.

please help me in undersstanding the trouble.

Upvotes: 1

Views: 1732

Answers (3)

Malcolm Kindermans
Malcolm Kindermans

Reputation: 337

You say your line 42 has the insert query. I suppose you mean this query:

mysqli_query("(insert into user(name,phone_number, email,pass1, pass2, address) values
        ('".$name."','".$phone."', '".$email."', '".$pass1."','".$pass2."','".$address."')");

As your error says "2 parameters expected", you are missing here your connection parameter. You should have this:

mysqli_query($conn, "(insert into user(name,phone_number, email,pass1, pass2, address) values
        ('".$name."','".$phone."', '".$email."', '".$pass1."','".$pass2."','".$address."')");

Upvotes: 1

olvlvl
olvlvl

Reputation: 2474

Also your code is incredibly unsafe and will suffer from SQL injection. Please consider the following lines:

$email = $_POST['email'];

$query = "SELECT email FROM user where email='".$email."'";

Basically you put whatever the user is passing into your SQL statement. What if he enters "' OR 1; DROP TABLE user". You would lose all your data.

Please read about SQL injection and use PDO:

Upvotes: 0

Derek Merren
Derek Merren

Reputation: 1

Put this in on the first line of your script

ini_set('display_errors', '1');

This will then display the errors on the page and you will be able to see what is going wrong.

Also rather than the IP address try "localhost"

$conn = new mysqli_connect("localhost", $dbuser, "","my databse name");

If the database is on the same machine this may solve your problem.

Upvotes: 0

Related Questions