php - 阻止用户注册带有空格的用户名

标签 php mysql html

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

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

任何人都可以为我指明工作教程的正确方向,或者告诉我我做错了什么。

注册页面

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

谢谢!

最佳答案

欢迎来到 PHP 编程的奇妙世界!

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

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

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

还有两点说明:

  1. 请查看有关将数据插入数据库的准备语句 (mysqli_prepare())。有很多关于这方面的教程,它会帮你省去很多麻烦,特别是关于清理和绑定(bind)变量的教程。
  2. 通常认为,不仅提示输入密码一次,而且提示输入密码两次,这也是一种良好的形式。如果用户在输入时碰巧输错了密码,使用您的解决方案,他就会将自己锁定在应用程序之外。

关于php - 阻止用户注册带有空格的用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11203668/

相关文章:

php array_map 回调参数作用域

php - sql mysql 选择列 IF

php - 发生数据库错误 key '119867-en_GB' 的重复条目 'PRIMARY'

mysql - 有没有可能mysql查询之一会中断?

html - 如何将水平线放在两个兄弟 <p> 标签下

php - 合并所有表以获得结果

c# - 如何在 C# Crystal 报表中总结具有十进制值的列

mysql - SQL:INNER JOIN SELECT 使整个查询不返回任何内容

javascript - 将一个类的元素加在一起

android - 从android中的<img>标签中提取图片src