3

I have the following code that I got from a video tutorial series. (I've heard that some parts of the code below are considered bad practice...). I've been trying to get it to save my Registration info but it just won't work. It detects errors in filling the form just fine, it also displays the "please login to get started"! When I submit everything correctly, but it just won't save any data to the database:

PHP

<?php include ("./inc/connect.inc.php"); ?>
    <?php
    $reg = @$_POST['reg'];
    //declaring variables to prevent errors
    $fn = ""; //First Name
    $ln = ""; //Last Name
    $un = ""; //Username
    $em = ""; //Email
    $em2 = ""; //Email 2
    $pswd = ""; //Password
    $pswd2 = ""; //Password 2
    $d = ""; //Sign up date
    $u_check = ""; //Check if username exists
    //registration form
    $fn = strip_tags(@$_POST['fname']);
    $ln = strip_tags(@$_POST['lname']);
    $un = strip_tags(@$_POST['username']);
    $em = strip_tags(@$_POST['email']);
    $em2 = strip_tags(@$_POST['email2']);
    $pswd = strip_tags(@$_POST['password']);
    $pswd2 = strip_tags(@$_POST['password2']);
    $d = date("Y-m-d"); //Year - Month - Day

    if ($reg) {
    if ($em==$em2) {
    // check if user already exists
    $u_check = mysqli_query($link,"SELECT username FROM users WHERE username='$un'");
    // count the amount of rows where username = $un
    $check = mysqli_num_rows($u_check);
    if ($check == 0) {
    // check all of the fields have been filled
    if ($fn&&$ln&&$un&&$em&&$em2&&$pswd&&$pswd2) {
    // check that passwords match
    if ($pswd==$pswd2) {
    // check the maximum length of username, first, and last name does not exceed 25 characters
    if (strlen($un)>25||strlen($fn)>25||strlen($ln)>25) {
    echo "The maximum limit for username, first, and last name is 25 characters!";
    }
    else
    {
    // check the length of password does not exceed 30 characters and is no less than 5 characters
    if (strlen($pswd)>30||strlen($pswd)<5) {
    echo "Your password must be between 5 and 30 charcters long!";
    }
    else
    {
    // encrypt password and password 2 using md5 before sending to database
    $pswd = md5($pswd);
    $pswd2 = md5($pswd2);
    $query = mysqli_query($link,"INSERT INTO users VALUES ('','$un','$fn','$ln','$em','$pswd','$d','0')");
    die("<h2>Welcome to findFriends</h2> Please login to get started!");
    }
    }
    }
    else {
    echo "Your passwords do not match!!";
    }
    }
    else {
    echo "Please Fill in all required fields.";
    }
    }
    else {
    echo "Sorry, that username is not available.";
    }
    }
    else {
    echo "Your email does not match!";
    }
    }
    ?>

HTML

<div style="width: 200px; margin-left: 550px; margin-top: 20px;">
        <table>
            <tr>
                <td width="90%" valign="top">
                    <h2>Join findfriends Today!</h2>
                </td>
                <td width="40%" valign="top"></td>
                    <h2>Sign Up Below!</h2>
                    <form action="index.php" method="POST">
                        <input type="text" name="fname" size="25" placeholder="First Name"><br /><br />
                        <input type="text" name="lname" size="25" placeholder="Last Name"><br /><br />
                        <input type="text" name="username" size="25" placeholder="Username"><br /><br />        
                        <input type="text" name="email" size="25" placeholder="Email"><br /><br />
                        <input type="text" name="email2" size="25" placeholder="Email"><br /><br />
                        <input type="text" name="password" size="25" placeholder="Password"><br /><br />
                        <input type="text" name="password2" size="25" placeholder="Password (again)"><br /><br />
                        <input type="submit" name="reg" value="Sign Up!">           
                    </form>
            </tr>
        </table>
</div>
</body>
</html>

MYSQL (added to phpmyadmin)

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT, /* AUTO_INCREMENT = 1st user, id 1, 2nd user, id 2....*/
  `username` varchar(255) NOT NULL,
  `first_name` varchar(255) NOT NULL,
  `last_name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `password` varchar(32) NOT NULL,
  `sign_up_date` date NOT NULL,
  `activated` enum('0','1') NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

And the connect.inc.php:

  <?php
    $link = mysqli_connect('localhost', 'user', 'pswd', 'socialnetwork') or die ("Couldn't connect to SQL server");
    ?>
8
  • 3
    If you're using MySQLi, then learn to use prepared statements with bind variables; DON'T simply inject data directly into your SQL statement Commented Mar 16, 2014 at 14:24
  • check mysqli_error after doing your query to make sure you are not getting an error Commented Mar 16, 2014 at 14:27
  • @MarkBaker The original code in the video was using MySQL. So I simply changed everything to MySQLi and added a $link to the query. Could you provide an example as to what I should do? Commented Mar 16, 2014 at 14:29
  • @PatrickEvans I just did and it didn't report any errors. Commented Mar 16, 2014 at 14:31
  • Did it work before you changed everything to mysqli? And where is connect.php "linked to the index.php"? Commented Mar 16, 2014 at 23:15

1 Answer 1

0

The best suggestion is you shoud see http log files(error and access logs) to find solution.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.