0

我遇到了一个错误,我的注册是允许用户注册带有空格的用户名,即“用户名”,而它应该只是没有空格的“用户名”。

我已经尝试搜索和阅读许多教程,但大多数都对我没有帮助。

谁能指出我正确的工作教程方向,或者告诉我我做错了什么。

注册页面

<?
session_start();
include("config.php");
include("clean.php");
$act = clean($_GET[act]); 
$sqlcontent = mysql_query("select * from usr_config");
$content = mysql_fetch_array($sqlcontent);
$rand = rand(0,999);
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" href="css.css" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Usersystem Register Page &bull; <? echo("$content[site]");?></title>
</head>

<body>
    <tr>
      <? if($content[regen]==1) { 
      if($act!=register)
      { ?>
      <form action="register_new.php?act=register" method="post">
        <div align="center">Username:<br />
            <input type="text" name="username" class="login" maxlength="20" />
          <br />
          <br />
          Password:<br />
          <input type="password" name="password" />
          <br />
          <br />
          Email Address:<br />
          <input type="text" name="email" />
          <br />
          <br />
    Country:<br />
        <SELECT name="countrywhere">
    <option value="Afghanistan">Afghanistan</option>
    <option value="&#197;land&nbsp;Islands">&#197;land Islands</option>
    <option value="Albania">Albania</option>
    <option value="Algeria">Algeria</option>
    <option value="American&nbsp;Samoa">American Samoa</option>
    <option value="Andorra">Andorra</option>
    <option value="Angola">Angola</option>
    <option value="Anguilla">Anguilla</option>
    <option value="Antarctica">Antarctica</option>
    <option value="Antigua&nbsp;and&nbsp;Barbuda">Antigua and Barbuda</option>
    <option value="Argentina">Argentina</option>
    <option value="Armenia">Armenia</option>
    <option value="Aruba">Aruba</option>
    <option value="Australia">Australia</option>
    <option value="Austria">Austria</option>
    <option value="Azerbaijan">Azerbaijan</option>
    <option value="Bahamas">Bahamas</option>
    <option value="Bahrain">Bahrain</option>
    <option value="Bangladesh">Bangladesh</option>
    <option value="Barbados">Barbados</option>
    <option value="Belarus">Belarus</option>
    <option value="Belgium">Belgium</option>
    <option value="Belize">Belize</option>
    <option value="Benin">Benin</option>
    <option value="Bermuda">Bermuda</option>
    <option value="Bhutan">Bhutan</option>
    <option value="Bolivia">Bolivia</option>
    <option value="Bosnia&nbsp;and&nbsp;Herzegovina">Bosnia and Herzegovina</option>
    <option value="Botswana">Botswana</option>
    <option value="Bouvet&nbsp;Island">Bouvet Island</option>
    <option value="Brazil">Brazil</option>
    <option value="British&nbsp;Indian&nbsp;Ocean&nbsp;Territory">British Indian Ocean Territory</option>
    <option value="Brunei&nbsp;Darussalam">Brunei Darussalam</option>
    <option value="Bulgaria">Bulgaria</option>
    <option value="Burkina&nbsp;Faso">Burkina Faso</option>
    <option value="Burundi">Burundi</option>
    <option value="Cambodia">Cambodia</option>
    <option value="Cameroon">Cameroon</option>
    <option value="Canada">Canada</option>
    <option value="Cape&nbsp;Verde">Cape Verde</option>
    <option value="Cayman&nbsp;Islands">Cayman Islands</option>
    <option value="Central&nbsp;African&nbsp;Republic">Central African Republic</option>
    <option value="Chad">Chad</option>
    <option value="Chile">Chile</option>
    <option value="China">China</option>
    <option value="Christmas&nbsp;Island">Christmas Island</option>
    <option value="Cocos&nbsp;(Keeling)&nbsp;Islands">Cocos (Keeling) Islands</option>
    <option value="Colombia">Colombia</option>
    <option value="Comoros">Comoros</option>
    <option value="Congo">Congo</option>
    <option value="Congo,&nbsp;The&nbsp;Democratic&nbsp;Republic&nbsp;of&nbsp;the">Congo, The Democratic Republic of the</option>
    <option value="Cook&nbsp;Islands">Cook Islands</option>
    <option value="Costa&nbsp;Rica">Costa Rica</option>
    <option value="C&#244;te&nbsp;d'Ivoire">C&#244;te d'Ivoire</option>
    <option value="Croatia">Croatia</option>
    <option value="Cuba">Cuba</option>
    <option value="Cyprus">Cyprus</option>
    <option value="Czech&nbsp;Republic">Czech Republic</option>
    <option value="Denmark">Denmark</option>
    <option value="Djibouti">Djibouti</option>
    <option value="Dominica">Dominica</option>
    <option value="Dominican&nbsp;Republic">Dominican Republic</option>
    <option value="Ecuador">Ecuador</option>
    <option value="Egypt">Egypt</option>
    <option value="El&nbsp;Salvador">El Salvador</option>
    <option value="Equatorial&nbsp;Guinea">Equatorial Guinea</option>
    <option value="Eritrea">Eritrea</option>
    <option value="Estonia">Estonia</option>
    <option value="Ethiopia">Ethiopia</option>
    <option value="Falkland&nbsp;Islands&nbsp;(Malvinas)">Falkland Islands (Malvinas)</option>
    <option value="Faroe&nbsp;Islands">Faroe Islands</option>
    <option value="Fiji">Fiji</option>
    <option value="Finland">Finland</option>
    <option value="France">France</option>
    <option value="French&nbsp;Guiana">French Guiana</option>
    <option value="French&nbsp;Polynesia">French Polynesia</option>
    <option value="French&nbsp;Southern&nbsp;Territories">French Southern Territories</option>
    <option value="Gabon">Gabon</option>
    <option value="Gambia">Gambia</option>
    <option value="Georgia">Georgia</option>
    <option value="Germany">Germany</option>
    <option value="Ghana">Ghana</option>
    <option value="Gibraltar">Gibraltar</option>
    <option value="Greece">Greece</option>
    <option value="Greenland">Greenland</option>
    <option value="Grenada">Grenada</option>
    <option value="Guadeloupe">Guadeloupe</option>
    <option value="Guam">Guam</option>
    <option value="Guatemala">Guatemala</option>
    <option value="Guinea">Guinea</option>
    <option value="Guinea-Bissau">Guinea-Bissau</option>
    <option value="Guyana">Guyana</option>
    <option value="Haiti">Haiti</option>
    <option value="Heard&nbsp;Island&nbsp;and&nbsp;McDonald&nbsp;Islands">Heard Island and McDonald Islands</option>
    <option value="Holy&nbsp;See&nbsp;(Vatican&nbsp;City&nbsp;State)">Holy See (Vatican City State)</option>
    <option value="Honduras">Honduras</option>
    <option value="Hong&nbsp;Kong">Hong Kong</option>
    <option value="Hungary">Hungary</option>
    <option value="Iceland">Iceland</option>
    <option value="India">India</option>
    <option value="Indonesia">Indonesia</option>
    <option value="Iran,&nbsp;Islamic&nbsp;Republic&nbsp;of">Iran, Islamic Republic of</option>
    <option value="Iraq">Iraq</option>
    <option value="Ireland">Ireland</option>
    <option value="Israel">Israel</option>
    <option value="Italy">Italy</option>
    <option value="Jamaica">Jamaica</option>
    <option value="Japan">Japan</option>
    <option value="Jordan">Jordan</option>
    <option value="Kazakhstan">Kazakhstan</option>
    <option value="Kenya">Kenya</option>
    <option value="Kiribati">Kiribati</option>
    <option value="Korea,&nbsp;Democratic&nbsp;People's&nbsp;Republic&nbsp;of">Korea, Democratic People's Republic of</option>
    <option value="Korea,&nbsp;Republic&nbsp;of">Korea, Republic of</option>
    <option value="Kuwait">Kuwait</option>
    <option value="Kyrgyzstan">Kyrgyzstan</option>
    <option value="Lao&nbsp;People's&nbsp;Democratic&nbsp;Republic">Lao People's Democratic Republic</option>
    <option value="Latvia">Latvia</option>
    <option value="Lebanon">Lebanon</option>
    <option value="Lesotho">Lesotho</option>
    <option value="Liberia">Liberia</option>
    <option value="Libyan&nbsp;Arab&nbsp;Jamahiriya">Libyan Arab Jamahiriya</option>
    <option value="Liechtenstein">Liechtenstein</option>
    <option value="Lithuania">Lithuania</option>
    <option value="Luxembourg">Luxembourg</option>
    <option value="Macau">Macau</option>
    <option value="Macedonia">Macedonia</option>
    <option value="Madagascar">Madagascar</option>
    <option value="Malawi">Malawi</option>
    <option value="Malaysia">Malaysia</option>
    <option value="Maldives">Maldives</option>
    <option value="Mali">Mali</option>
    <option value="Malta">Malta</option>
    <option value="Marshall&nbsp;Islands">Marshall Islands</option>
    <option value="Martinique">Martinique</option>
    <option value="Mauritania">Mauritania</option>
    <option value="Mauritius">Mauritius</option>
    <option value="Mayotte">Mayotte</option>
    <option value="Mexico">Mexico</option>
    <option value="Micronesia,&nbsp;Federated&nbsp;States&nbsp;of">Micronesia, Federated States of</option>
    <option value="Moldova,&nbsp;Republic&nbsp;of">Moldova, Republic of</option>
    <option value="Monaco">Monaco</option>
    <option value="Mongolia">Mongolia</option>
    <option value="Montserrat">Montserrat</option>
    <option value="Morocco">Morocco</option>
    <option value="Mozambique">Mozambique</option>
    <option value="Myanmar">Myanmar</option>
    <option value="Namibia">Namibia</option>
    <option value="Nauru">Nauru</option>
    <option value="Nepal">Nepal</option>
    <option value="Netherlands">Netherlands</option>
    <option value="Netherlands&nbsp;Antilles">Netherlands Antilles</option>
    <option value="New&nbsp;Caledonia">New Caledonia</option>
    <option value="New&nbsp;Zealand">New Zealand</option>
    <option value="Nicaragua">Nicaragua</option>
    <option value="Niger">Niger</option>
    <option value="Nigeria">Nigeria</option>
    <option value="Niue">Niue</option>
    <option value="Norfolk&nbsp;Island">Norfolk Island</option>
    <option value="Northern&nbsp;Mariana&nbsp;Islands">Northern Mariana Islands</option>
    <option value="Norway">Norway</option>
    <option value="Oman">Oman</option>
    <option value="Pakistan">Pakistan</option>
    <option value="Palau">Palau</option>
    <option value="Palestinian&nbsp;Territory,&nbsp;Occupied">Palestinian Territory, Occupied</option>
    <option value="Panama">Panama</option>
    <option value="Papua&nbsp;New&nbsp;Guinea">Papua New Guinea</option>
    <option value="Paraguay">Paraguay</option>
    <option value="Peru">Peru</option>
    <option value="Philippines">Philippines</option>
    <option value="Pitcairn">Pitcairn</option>
    <option value="Poland">Poland</option>
    <option value="Portugal">Portugal</option>
    <option value="Puerto&nbsp;Rico">Puerto Rico</option>
    <option value="Qatar">Qatar</option>
    <option value="R&#233;union">R&#233;union</option>
    <option value="Romania">Romania</option>
    <option value="Russian&nbsp;Federation">Russian Federation</option>
    <option value="Rwanda">Rwanda</option>
    <option value="Saint&nbsp;Helena">Saint Helena</option>
    <option value="Saint&nbsp;Kitts&nbsp;and&nbsp;Nevis">Saint Kitts and Nevis</option>
    <option value="Saint&nbsp;Lucia">Saint Lucia</option>
    <option value="Saint&nbsp;Pierre&nbsp;and&nbsp;Miquelon">Saint Pierre and Miquelon</option>
    <option value="Saint&nbsp;Vincent&nbsp;and&nbsp;the&nbsp;Grenadines">Saint Vincent and the Grenadines</option>
    <option value="Samoa">Samoa</option>
    <option value="San&nbsp;Marino">San Marino</option>
    <option value="Sao&nbsp;Tome&nbsp;and&nbsp;Principe">Sao Tome and Principe</option>
    <option value="Saudi&nbsp;Arabia">Saudi Arabia</option>
    <option value="Senegal">Senegal</option>
    <option value="Serbia&nbsp;and&nbsp;Montenegro">Serbia and Montenegro</option>
    <option value="Seychelles">Seychelles</option>
    <option value="Sierra&nbsp;Leone">Sierra Leone</option>
    <option value="Singapore">Singapore</option>
    <option value="Slovakia">Slovakia</option>
    <option value="Slovenia">Slovenia</option>
    <option value="Solomon&nbsp;Islands">Solomon Islands</option>
    <option value="Somalia">Somalia</option>
    <option value="South&nbsp;Africa">South Africa</option>
    <option value="Spain">Spain</option>
    <option value="Sri&nbsp;Lanka">Sri Lanka</option>
    <option value="Sudan">Sudan</option>
    <option value="Suriname">Suriname</option>
    <option value="Svalbard&nbsp;and&nbsp;Jan&nbsp;Mayen">Svalbard and Jan Mayen</option>
    <option value="Swaziland">Swaziland</option>
    <option value="Sweden">Sweden</option>
    <option value="Switzerland">Switzerland</option>
    <option value="Syrian&nbsp;Arab&nbsp;Republic">Syrian Arab Republic</option>
    <option value="Taiwan,&nbsp;Province&nbsp;of&nbsp;China">Taiwan, Province of China</option>
    <option value="Tajikistan">Tajikistan</option>
    <option value="Tanzania,&nbsp;United&nbsp;Republic&nbsp;of">Tanzania, United Republic of</option>
    <option value="Thailand">Thailand</option>
    <option value="Timor-Leste">Timor-Leste</option>
    <option value="Togo">Togo</option>
    <option value="Tokelau">Tokelau</option>
    <option value="Tonga">Tonga</option>
    <option value="Trinidad&nbsp;and&nbsp;Tobago">Trinidad and Tobago</option>
    <option value="Tunisia">Tunisia</option>
    <option value="Turkey">Turkey</option>
    <option value="Turkmenistan">Turkmenistan</option>
    <option value="Turks&nbsp;and&nbsp;Caicos&nbsp;Islands">Turks and Caicos Islands</option>
    <option value="Tuvalu">Tuvalu</option>
    <option value="Uganda">Uganda</option>
    <option value="Ukraine">Ukraine</option>
    <option value="United&nbsp;Arab&nbsp;Emirates">United Arab Emirates</option>
    <option value="United&nbsp;Kingdom">United Kingdom</option>
    <option value="United&nbsp;States">United States</option>
    <option value="United&nbsp;States&nbsp;Minor&nbsp;Outlying&nbsp;Islands">United States Minor Outlying Islands</option>
    <option value="Uruguay">Uruguay</option>
    <option value="Uzbekistan">Uzbekistan</option>
    <option value="Vanuatu">Vanuatu</option>
    <option value="Venezuela">Venezuela</option>
    <option value="Viet&nbsp;Nam">Viet Nam</option>
    <option value="Virgin&nbsp;Islands,&nbsp;British">Virgin Islands, British</option>
    <option value="Virgin&nbsp;Islands,&nbsp;U.S.">Virgin Islands, U.S.</option>
    <option value="Wallis&nbsp;and&nbsp;Futuna">Wallis and Futuna</option>
    <option value="Western&nbsp;Sahara">Western Sahara</option>
    <option value="Yemen">Yemen</option>
    <option value="Zambia">Zambia</option>
    <option value="Zimbabwe">Zimbabwe</option>
        </SELECT>
          <br />
          <br />
          Username Colour:<br />
          <select name="usercolour">
        <OPTION value="#000000">Black</OPTION>
        <OPTION value="#FF0000">Red</OPTION>
        <OPTION value="#00FF00">Green</OPTION>
        <OPTION value="#0000FF">Blue</OPTION>
        <OPTION value="#FFFF00">Yellow</OPTION>
        <OPTION value="#FF00FF">Pink</OPTION>
        <OPTION value="#C0C0C0">Grey</OPTION>
        <OPTION value="#FF6600">Orange</OPTION>
        <OPTION value="#990066">Purple</OPTION>
        <OPTION value="#4682B4">Steelblue</OPTION>
        <OPTION value="#DDA0DD">Plum</OPTION>
        <OPTION value="#AFEEEE">Paleturquoise</OPTION>
        <OPTION value="#D87093">Palevioletred</OPTION>
        <OPTION value="#191970">Midnightblue</OPTION>
        <OPTION value="#8A2BE2">Blue Violet</OPTION>
        <OPTION value="#7FFF00">Chartreuse</OPTION>
        <OPTION value="#DC143C">Crimson</OPTION>
        <OPTION value="#008B8B">Dark Cyan</OPTION>
        <OPTION value="#8B0000">Dark Red</OPTION>
        <OPTION value="#FF1493">Deep Pink</OPTION>
          </select>
          <br />
          <br />
          Gender:<br />
         <SELECT name="sexmalefemale">
         <OPTION value="Boy">Boy</OPTION>
         <OPTION value="Girl">Girl</OPTION>
         </SELECT>
          <br />
          <br />
    About Yourself:<br />
        <textarea name="abouturself" cols=30 rows=5 wrap=physical></textarea>
          <br />
          <br />
          <input type="hidden" name="random" value="<? echo("$rand");?>" />
          Special word<br />
          <input type="text" name="word" />
          <input type="hidden" name="dateofjoin" value="<? print(Date("F d, Y")); ?>" />
          <input type="hidden" name="msg" value="Welcome" />
          <br />
          <br />
          Enter the number shown below<br />
          <strong><? echo("$rand");?></strong><br />
          <input type="text" name="rand" />
    <input type="hidden" name="lastedited" value="Registered an account @ <?php 

/** 
 * Just add this in your page where you 
 * want the date/time to appear 
 * 
 * For more configuration options look 
 * in the PHP manual at http://uk2.php.net/date 
 */ 

// Displays in the format Saturday, November 22, 2003 11.38 
echo date("l, F d, Y h:i" ,time()); 

?> " />
          <br />
          <br />
          <input type="submit" value="Register" />
            </div>
      </form>
      <? 
      }
      if($act==register)
      {
      $username = clean($_POST[username]);
          $msg = clean($_POST[msg]);
          $subject = "Welcome";
          $sendto = $username;
          $sentfrom = "admin";
          $user = "$username";
          $reason = "joining the site";
          $badge = "member.png";
          $display = "1";
          $privmsg = $msg;
      $password2 = clean($_POST[password]);
      $password = md5($_POST[password]);
      $email = clean($_POST[email]);
      $countrywhere = clean($_POST[countrywhere]);
      $avator = clean($_POST[avator]);
      $sexmalefemale = clean($_POST[sexmalefemale]);
      $usercolour = clean($_POST[usercolour]);
      $abouturself = clean($_POST[abouturself]);
      $rand = clean($_POST[rand]);
      $lastedited = clean($_POST[lastedited]);
      $random = $_POST[random];
      $word = clean($_POST[word]);
      $dateofjoin = clean($_POST[dateofjoin]);
      $check = mysql_query("select * from usr_users where username = '$username'");
      $check2 = mysql_num_rows($check);
      if($check2==0)
      {
      if($username!="" && $password!="")
      {
      if($rand==$random)
      {
          $qry = mysql_query("insert into usr_pm(subject, sendto, sentfrom, privmsg) values('$subject', '$sendto', '$sentfrom', '$privmsg')");
          $result = @mysql_query($qry);
      $gry2 = mysql_query("insert into usr_users(username, password, word, dateofjoin, email, countrywhere, avator, sexmalefemale, usercolour, abouturself, lastedited) values('$username', '$password', '$word', '$dateofjoin', '$email', '$countrywhere', '$avator', '$sexmalefemale', '$usercolour', '$abouturself', '$lastedited')");
          $result = @mysql_query($qry2);
          $qry3 = mysql_query("insert into usr_badge(user, reason, badge, display) values('$user', '$reason', '$badge', '$display')");
          $result = @mysql_query($qry3);
      echo("You are now signed up to our site!");
      if($content[emailvert]==1)
      {
      $emailbody = "Thanks for registering at the $content[site] usersystem! \n \n We'd like to take this chance to confirm all of your details, just so you know how to log in and get the most out of your experience! \n \n --- \n username: $username \n Password: $password2 \n Your secret code: $sec \n Your secret word: $word \n \n -- \n \n Thanks, \n $content[site] Management --";
     $mail =  mail($email,"Welcome to the $content[site] usersystem!", $emailbody, "From: <$content[email]>");
     if(!$mail)
     echo("<br />Could not send the email at this time, please check you filled out the previous page completely and try again..");
     else echo("<br /></br></br><b>Please go to the email you provided to us and confirm your account, after 1 week we will suspend your account if you do not confirm.</b>");
      }
      }
      else echo("The number you entered did not match that displayed!");
      }
      else echo("You have not entered filled out all the required fields, you need to do so in order to continue..");
      }
      else
      echo("username is already in use!");
      }
      ?>
      <? }
      else echo("Register disabled"); ?>

clean.php (意味着去除空格)

<?php
function clean($str)
{
$cleaned = strip_tags(htmlspecialchars(addslashes(stripslashes( $str ))));

return $cleaned;
}
?>

功能

/*
Clean Variables
*/
function clean($str)
{
$cleaned = strip_tags(htmlspecialchars(addslashes(stripslashes( $str ))));
return $cleaned;
}
/*
End Function
*/

谢谢!

4

2 回答 2

1

欢迎来到 php 编程的美妙世界!

要回答您的直接问题:您可以使用

if (substr_count($username,' ') > 0) { 
   // Output an appropriate error message
}

但是您可能想检查用户名是否仅包含对于您网站上的用户名而言实际上合法的字符 - 或者您是否还希望能够在这些名称中包含任何 UTF 字符?

但还有两句话:

  1. 请查看有关将数据插入数据库的准备好的语句 ( mysqli_prepare())。有很多关于这方面的教程,它会让你省去很多麻烦,尤其是关于清理和绑定变量的时候。
  2. 通常认为不仅提示输入密码一次,而是提示两次的好形式。如果用户碰巧在输入时输错了密码,使用您的解决方案,他只会将自己锁定在应用程序之外。
于 2012-06-26T08:50:02.707 回答
1

我不会删除空格并继续注册,而是检查空格,然后将错误返回给用户。

if ( strpos($username, " ") !== false ) {
   /* error */
}

您也可以在客户端快速发送消息,但它必须始终在服务器端。

于 2012-06-26T08:52:22.360 回答