我的PHP脚本不能正常工作

时间:2011-03-20 13:57:04

标签: php

嘿大家,我就是你所谓的“厚”。我正在尝试创建一个PHP注册页面。我似乎已经做了一些事情,但它似乎没有将信息注册到MY SQL PHPmyAdmin。例如:它说明一旦你填写了表格,信息已经注册,但数据库中没有任何内容,我想知道是否有人可以帮助我,看看我做错了什么。

我是网站建设的新手,但我现在已经使用了一年左右,我现在正试图将我的网站放在一起。但我完全坚持这一部分。如果有人可以提供帮助......我会非常感激。这是我的代码。

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文件:

<?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>

感谢您提供给我的任何提示或帮助。

5 个答案:

答案 0 :(得分:3)

您的表单没有名称为“提交”的输入,因此if (isset($_POST['submit']))始终为false。尝试将name="submit"添加到提交按钮的属性中,这样可以使其至少进一步工作。

编辑:此外,WHERE nickname = '$nickname'将始终返回0行(除非您的用户名为空用户名也不好),因为您没有PHP变量名称。它应该是WHERE nickname = '$usercheck'

答案 1 :(得分:1)

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

问题出在那里,你没有输入或任何名为submit的东西,所以它没有通过if

答案 2 :(得分:0)

以下应该做什么?

"INSERT INTO ###### 

您需要为INSERT提供一个表名。我怀疑您发现此内容的任何来源意味着您将######替换为您的用户/帐户表的名称。

您的代码还有很多其他问题,但有一些主要问题是:

  • 您应该检查用$_POST['submit']
  • 查看用于发出请求的HTTP动词,而不是检查表单中不存在的$_SERVER['REQUEST_METHOD']
  • 请勿使用addslashes来转义查询数据。您应该检查是否已启用get_magic_quotes_gpc,如果已启用,请使用stripslashes删除斜杠,然后使用mysql_real_escape_string正确转义斜杠。最好只使用PDO
  • 不要使用MD5进行密码散列,它会被破坏。使用真实的密码哈希库,如phppass

最后一个请求,请学习格式化,以便它实际上是可读的。使用一致的缩进和间距。

答案 3 :(得分:0)

添加

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

答案 4 :(得分:0)

添加或死(mysql_error())以获取SQL错误。