开发者

My php script does not work as it should

开发者 https://www.devze.com 2023-02-18 18:39 出处:网络
Hey everyone, I\'m what you call \"Thick\". And I\'m trying to create a PHP register page. I seem to have got it to do something but it doesn\'t seem to register the information in to MY SQL PHPmyAdmi

Hey everyone, I'm what you call "Thick". And I'm trying to create a PHP register page. I seem to have got it to do something but it doesn't seem to register the information in to MY SQL PHPmyAdmin. For example: It states once you have filled out the form, that the information has been registered, but there's nothing in the DB, I was wondering if someone could give me a hand and see what it is I'm doing wrong.

I am new to website building, but I've been at it now for a year or so, and I'm now trying to put my proper site together. But I'm totally stuck on this part. If anyone could help... I would really appreciate it. Here are my codes.

FORM

<form action="##########" name="########" id="###########" method="POST">
<table border="0" width="625" align="left" cellpadding="15" cellspacing="0"开发者_如何学编程 bgcolor="#000000">
<tr>
  <td class="text4" align="right">
    Nickname:
  </td>
  <td>
    <div id='################' class="error_strings"></div>
    <input type="text" name="nickname" />
  </td>
</tr>
<tr>
  <td class="text4" align="right">
    E-mail:
  </td>
  <td>
    <div id='###############' class="error_strings"></div>
    <input type="text" name="email" />
  </td>
</tr>
  <tr>
      <td class="text4" align="right">
  Password:
  </td>
  <td>
      <div id='###############' class="error_strings"></div>
      <input type="password" name="password" />
  </td>
  <tr>
      <td class="text4" align="right">
  Date of birth:
  </td>
  <td>
        <inputtype="hidden" name="date_of_bith">

        <select name="bday">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>

        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>

        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
        <option value="13">13</option>
        <option value="14">14</option>
        <option value="15">15</option>

        <option value="16">16</option>
        <option value="17">17</option>
        <option value="18">18</option>
        <option value="19">19</option>
        <option value="20">20</option>
        <option value="21">21</option>

        <option value="22">22</option>
        <option value="23">23</option>
        <option value="24">24</option>
        <option value="25">25</option>
        <option value="26">26</option>
        <option value="27">27</option>

        <option value="28">28</option>
        <option value="29">29</option>
        <option value="30">30</option>
        <option selected value="31">31</option>
      </select>    

      <select name="bmonth" >
        <option selected value="1">1</option>
    <option value=""></option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>

        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
        </select>    
      <select name="byear">

        <option value="2005">Year</option>
        <option value="2004">2004</option>
        <option value="2003">2003</option>
        <option value="2002">2002</option>
        <option value="2001">2001</option>
        <option value="2000">2000</option>

        <option value="1999">1999</option>
        <option value="1998">1998</option>
        <option value="1997">1997</option>
        <option value="1996">1996</option>
        <option value="1995">1995</option>
        <option value="1994">1994</option>

        <option value="1993">1993</option>
        <option value="1992">1992</option>
        <option value="1991">1991</option>
        <option value="1990">1990</option>
        <option value="1989">1989</option>
        <option value="1988">1988</option>

        <option value="1987">1987</option>
        <option value="1986">1986</option>
        <option value="1985">1985</option>
        <option value="1984">1984</option>
        <option value="1983">1983</option>
        <option value="1982">1982</option>

        <option value="1981">1981</option>
        <option value="1980">1980</option>
        <option value="1979">1979</option>
        <option value="1978">1978</option>
        <option value="1977">1977</option>
        <option value="1976">1976</option>

        <option value="1975">1975</option>
        <option value="1974">1974</option>
        <option value="1973">1973</option>
        <option value="1972">1972</option>
        <option value="1971">1971</option>
        <option selected value="1970">1970</option>

        <option value="1969">1969</option>
        <option value="1968">1968</option>
        <option value="1967">1967</option>
        <option value="1966">1966</option>
        <option value="1965">1965</option>
        <option value="1964">1964</option>

        <option value="1963">1963</option>
        <option value="1962">1962</option>
        <option value="1961">1961</option>
        <option value="1960">1960</option>
        <option value="1959">1959</option>
        <option value="1958">1958</option>

        <option value="1957">1957</option>
        <option value="1956">1956</option>
        <option value="1955">1955</option>
        <option value="1954">1954</option>
        <option value="1953">1953</option>
        <option value="1952">1952</option>

        <option value="1951">1951</option>
        <option value="1950">1950</option>
        <option value="1949">1949</option>
        <option value="1948">1948</option>
        <option value="1947">1947</option>
        <option value="1946">1946</option>

        <option value="1945">1945</option>
        <option value="1944">1944</option>
        <option value="1943">1943</option>
        <option value="1942">1942</option>
        <option value="1941">1941</option>
        <option value="1940">1940</option>

        <option value="1939">1939</option>
        <option value="1938">1938</option>
        <option value="1937">1937</option>
        <option value="1936">1936</option>
        <option value="1935">1935</option>
        <option value="1934">1934</option>

        <option value="1933">1933</option>
        <option value="1932">1932</option>
        <option value="1931">1931</option>
        <option value="1930">1930</option>
        <option value="1929">1929</option>
        <option value="1928">1928</option>

        <option value="1927">1927</option>
        <option value="1926">1926</option>
        <option value="1925">1925</option>
        <option value="1924">1924</option>
        <option value="1923">1923</option>
        <option value="1922">1922</option>

        <option value="1921">1921</option>
        <option value="1920">1920</option>
        <option value="1919">1919</option>
        <option value="1918">1918</option>
        <option value="1917">1917</option>
        <option value="1916">1916</option>

        <option value="1915">1915</option>
        <option value="1914">1914</option>
        <option value="1913">1913</option>
        <option value="1912">1912</option>
        <option value="1911">1911</option>
        <option value="1910">1910</option>

        <option value="1909">1909</option>
        <option value="1908">1908</option>
        <option value="1907">1907</option>
        <option value="1906">1906</option>
        <option value="1905">1905</option>
        <option value="1904">1904</option>

        <option value="1903">1903</option>
        <option value="1902">1902</option>
        <option value="1901">1901</option>
        <option value="1900">1900</option>
      </td>
  </td>
</tr>
<tr>
  <td class="text4" align="right">
      Country:
  </td>
  <td>
<div id='################' class="error_strings"></div>
    <align="left" valign="top">
    <select name="country" value="000" select="select" class="INPUT">
          <option value=""></option>
                  <option value="3">Africa</option>                
                  <option value="1">Australia</option>
                  <option value="2">Canada</option>
                  <option value="3">China</option>
                  <option value="3">European Union</option>
                  <option value="3">Greenland</option>
                  <option value="3">Iceland</option>
                  <option value="3">Israel</option>
                  <option value="3">Japan</option>
                  <option value="3">New Zealand</option>
                  <option value="3">Norway</option>
                  <option value="3">Russia</option>
                  <option value="3">South America</option>
                  <option value="3">Thailand</option>
                  <option value="3">Turkey</option>
                  <option value="3">Switzerland</option>
                  <option value="3">United States of America</option>
                  <option value="3">Other</option>

      </select>
    </td>
</tr>
<tr>
    <td class="text4" align="right">
    Terms and conditions:
    </td>
    <td>
    <div id='##############' class="error_strings"></div>
    <input type='checkbox' name='features[]' id='features_item_0' value='terms'/><label for='features_item_0'class="text4"> I agree </label>
  </td>
</tr>
<tr>
  <td align="right"></td>
    <td>
      <input type="submit" value="Sign up" />
    </td>
</tr>

</table>

</form>

PHP File:

<?php 
 // Connects to Database 

include("connect.php");
/*
 mysql_connect("http://#############", "nickname", "password", "date_of_bith", "country", "terms") or die(mysql_error()); 
 mysql_select_db("#########") or die(mysql_error()); 
*/

 //This code runs if the form has been submitted

 if (isset($_POST['submit'])) { 



         //This makes sure they did not leave any fields blank

         if (!$_POST['nickname'] | !$_POST['email'] | !$_POST['passwords'] | !$_POST['date_of_birth'] | !$_POST['country'] | !$_POST['terms']) {

                die('You did not complete all of the required fields');

            }



         // checks if the username is in use

            if (!get_magic_quotes_gpc()) {

                $_POST['nickname'] = addslashes($_POST['nickname']);

            }

         $usercheck = $_POST['nickname'];

         $check = mysql_query("SELECT user FROM userlogin WHERE nickname = '$nickname'") 

        or die(mysql_error());

         $check2 = mysql_num_rows($check);



         //if the name exists it gives an error

         if ($check2 != 0) {

                die('Sorry, the nickname '.$_POST['nickname'].' is already in use.');

                        }

            // here we encrypt the password and add slashes if needed

            $_POST['password'] = md5($_POST['password']);

            if (!get_magic_quotes_gpc()) {

                $_POST['terms'] = addslashes($_POST['terms']);

                        $_POST['country'] = addslashes($_POST['password']);

                        $_POST['date_of_birth'] = addslashes($_POST['date_of_birth']);

                        $_POST['password'] = addslashes($_POST['password']);

                        $_POST['email'] = addslashes($_POST['email']);

                $_POST['nickname'] = addslashes($_POST['nickname']);

                    }



         // now we insert it into the database

            $insert = "INSERT INTO ###### (nickname, email, password, date_of_birth, country, terms)

                    VALUES ('".$_POST['nickname']."', '".$_POST['email']."', '".$_POST['password']."', '".$_POST['date_of_birth']."', '".$_POST['country']."', '".$_POST['terms']."')";

            $add_member = mysql_query($insert);


}

    ?>

 <h1>Registered</h1>

 <p>Thank you, you have registered - you may now login <a href="http://##########"> Click here to go to login page</a></p>

Thanks for any tips or help you can give me.


Your form has no input with the name "submit" so if (isset($_POST['submit'])) will always be false. Try adding name="submit" to the submit button's attributes, that should get it working at least a bit further.

EDIT: Also, WHERE nickname = '$nickname' will always return 0 rows (unless you have a user with an empty username which is bad too) because you don't have a PHP variable with that name. It should be WHERE nickname = '$usercheck'.


   if (isset($_POST['submit'])) { 
    //....
    }

the problem is there, you don't have an input or any thing named submit, so it don't go through the if


What is the following supposed to do?

"INSERT INTO ###### 

You need to give INSERT a table name. I suspect whatever source you found this at meantfor you to replace ###### with the name of your users/accounts table.

There are a lot of other problems with your code, but a few major ones are:

  • Instead of checking for $_POST['submit'], which doesn't exist in your form, you should check to see which the HTTP verb used to make the request with $_SERVER['REQUEST_METHOD']
  • Don't use addslashes to escape data for your queries. You should be checking if get_magic_quotes_gpc is enabled, and if it is, removing slashes with stripslashes and then escaping them properly with mysql_real_escape_string. Better just use PDO.
  • Don't use MD5 for password hashing, it is broken. Use a real password hashing library like phppass.

A final request, please please learn to format so that it is actually readable. Use consistent indenting and spacing.


Try after adding

<input name="submit" type="submit" value="Sign up" />


Add or die(mysql_error()) to get the SQL error.

0

精彩评论

暂无评论...
验证码 换一张
取 消