dqch34769 2014-03-16 14:20
浏览 9

PHP数据库不会保存数据

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");
    ?>
  • 写回答

1条回答 默认 最新

  • dougaimian1143 2015-05-06 16:09
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥100 iOS开发关于快捷指令截屏后如何将截屏(或从截屏中提取出的文本)回传给本应用并打开指定页面
  • ¥15 unity连接Sqlserver
  • ¥15 图中这种约束条件lingo该怎么表示出来
  • ¥15 VSCode里的Prettier如何实现等式赋值后的对齐效果?
  • ¥15 流式socket文件传输答疑
  • ¥20 keepalive配置业务服务双机单活的方法。业务服务一定是要双机单活的方式
  • ¥50 关于多次提交POST数据后,无法获取到POST数据参数的问题
  • ¥15 win10,这种情况怎么办
  • ¥15 如何在配置使用Prettier的VSCode中通过Better Align插件来对齐等式?(相关搜索:格式化)
  • ¥100 在连接内网VPN时,如何同时保持互联网连接