If else statement that redirects to another page

41,679

Solution 1

This will do the trick:

<?php

$con = mysql_connect( "localhost", "site", "xxxxxxxx" );
if ( !$con ) {
    die('Could not connect: ' . mysql_error());
}

mysql_select_db("site", $con);

1st, remove the sql injection part at least like this:

$firstname = strip_tags( $_POST[ 'firstname' ] );
$surname = strip_tags( $_POST[ 'surname' ] );

2nd, I didn't change it, but you need to remove the * and enter only specific values you want to load. Even if those are all the values, still write them manually.

$query = "SELECT * FROM Members WHERE firstname='" . $firstname . "' and surname=' " . $surname. "'";  
$result = mysql_query( $query );

3rd, you can check for row count, if you got some value, there is an entry with those variables

if ( mysql_num_rows($result) >= 1 ) {
    // the page you want
} else {
    // redirect user to another page
    header( "Location: signup.php" ); die;
}

?>

Edit:

Think adding some unique requests to your query. What will happen if two users have identical names and surnames or if a new one wants to join, but the name and lastname is already in the db ...

Solution 2

if (mysql_num_rows($result) == 1)
   {
   echo "great success"; //user continues loading page
   }
else
   {
   echo "fail"; //user is redirected to sign up page
   }

Also, you're query is prone to SQL injection big time

Solution 3

$rows = mysql_num_rows($results);

if ($rows == 1)
{
   echo "login successful"; //user continues loading page
}
else
{
   header ('location: signup.php'); //user is redirected to sign up page
}
Share:
41,679
tenderloin
Author by

tenderloin

I have no idea what I'm talking about, you probably shouldn't read any of my advice.

Updated on May 14, 2020

Comments

  • tenderloin
    tenderloin almost 4 years

    I'm terrible with PHP/SQL, so any help would be appreciated.

    Basically I have a form that posts the values 'firstname' & 'surname' to another page. What I want that page to do, is check to see if the user's name is already on the table 'Members'. If it is I want it to continue loading this page, but if they aren't on the database, I want the viewer to be re-directed to an existing sign up page.

    Here is the code I've been working on, I'm not sure if I'm heading in the right direction or not.

    <?php
    $con = mysql_connect("localhost","site","xxxxxxxx");
    if (!$con)
       {
       die('Could not connect: ' . mysql_error());
       }
    
    mysql_select_db("site", $con);
    
    $query = "SELECT * FROM Members WHERE firstname='$_POST[firstname]' and surname='$_POST[surname]'";  
    $result = mysql_query($query);
    
    if ($result==$something)
       {
       echo "great success"; //user continues loading page
       }
    else
       {
       echo "fail"; //user is redirected to sign up page
       }
    ?>