首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  PHP与模板与代码加密/优化 » [求助]关于格式化字符串  


  作者:slopesun
  注册时间:2004-09-07
  主题/回复:58/67
  积分:753
  等级:★★★(六级)
  称号:声名鹊起

  ken.wang@esolux...
  185627321
  www.

 

 发表:2004-09-30 18:56:16 阅读 2461 次 回复 5 次 得分1  |   字号 字色
[求助]关于格式化字符串
下面是reg.html的主要代码
<form name="form" method="post" action="reg.php">
  <table width="350" border="0" cellspacing="0" cellpadding="0">
    <tr>
  <td>用户名:</td>
  <td><input name="customerid" type="text" id="customerid"></td>
    </tr>
    <tr>
  <td>密码:</td>
  <td><input name="password1" type="text" id="password1"></td>
    </tr>

    <tr>
  <td>电子邮件</td>
  <td><input name="email" type="text" id="email"></td>
    </tr>
    <tr>
  <td> </td>
  <td><input type="submit" name="Submit" value="注册">
  <input type="reset" name="Submit2" value="重置"></td>
    </tr>
  </table>
</form>
下面是reg.php的一写代码
<?php

session_start();
$host="localhost";
$database="slopesun";
$dbusername="root";
$dbpassword="123456";

$connect=mysql_pconnect($host,$dbusername,$dbpassword);
if(!$connect)
{
echo "<script language=\"JavaScript\">alert(\"联接数据库失败\");</script>";
include 're.php';
exit();
};
$link=mysql_select_db($database);

$customerid = $_POST["customerid"]; 

$password1 = $_POST["password1"]; 

$email = $_POST["email"];



if(!$email || !$customerid) 

  include 're.php'; 
exit();}
$sql_email_check = mysql_query("SELECT email FROM reg 
    WHERE email='$email'"); 
$sql_username_check = mysql_query("SELECT customerid FROM reg
    WHERE customerid='$customerid'"); 

$email_check = mysql_num_rows($sql_email_check); 
$username_check = mysql_num_rows($sql_username_check); 

if(($email_check > 0 ) || ($username_check > 0)){ 
    if($email_check > 0){ 
 
echo "<script language=\"JavaScript\">alert(\"对不起,该邮箱已注册过\");</script>"; 

 .....

$password1=md5("$password1");

  $query="INSERT into reg VALUES('".$customerid."','".$password1."','".$email."')";
     
.......
  
    
?>
在注册的时候就可能会出现像  a空格b  这样的用户名。好像用trim()可以消除那种情况。可是我用
 $customerid=trim($customerid);
 $password1=trim($password1);
 $email=trim($email);
后依然不起作用。我想可能是位置放的不对,也可能是别的原因。
谁能告诉我该怎么解决这个问题?






 
 1#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 1#楼 发表于2004-09-30 19:10:33  评分:1 

可以直接这么做:
$customerid = trim($_POST["customerid"]); 
$password1 = trim($_POST["password1"]); 
$email = trim($_POST["email"]);

这样肯定可以去掉首尾的空格。如果要去掉中间的连续空格,比如a____b,可以用chop()函数。
需要注意的是,用这两个函数处理掉的是半角的,英文的空格。
如果要去掉全角的中文空格,可以使用str_replace()函数将中文空格替换成为""
 2#楼  
 
  回复人:slopesun
  注册时间:2004-09-07
  主题/回复:58/67
  积分:753
  等级:★★★(六级)
  称号:声名鹊起

   
 2#楼 发表于2004-09-30 22:03:04  评分:× 

站长直接用
$customerid = trim($_POST["customerid"]); 
$password1 = trim($_POST["password1"]); 
$email = trim($_POST["email"]);
代替
$customerid = $_POST["customerid"]; 

$password1 = $_POST["password1"]; 

$email = $_POST["email"];
不起作用。
是不是这样用阿。
 3#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 3#楼 发表于2004-10-01 03:54:41  评分: 

我不知道你说的“不起作用”是什么意思。

应该是绝对没有问题的。

我刚才给你测试了一下。用你的reg.html代码,然后我写了如下的reg.php代码。
------------------------------------
<?php
$customerid = $_POST["customerid"]; 

$password1 = $_POST["password1"]; 

$email = $_POST["email"];

echo "没用trim()函数处理之前:<br>";
echo "\$customerid的值:[".$customerid."]"."整个变量值长度:[".strlen($customerid)."]<br>";
echo "\$password1的值:[".$password1."]"."整个变量值长度:[".strlen($password1)."]<br>";
echo "\$email的值:[".$email."]"."整个变量值长度:[".strlen($email)."]<br>";

$email=trim($email);
$customerid=trim($customerid);
$password1=trim($password1);

echo "用trim()函数处理之后:<br>";
echo "\$customerid的值:[".$customerid."]"."整个变量值长度:[".strlen($customerid)."]<br>";
echo "\$password1的值:[".$password1."]"."整个变量值长度:[".strlen($password1)."]<br>";
echo "\$email的值:[".$email."]"."整个变量值长度:[".strlen($email)."]<br>";

    
?>
-----------------------------------
结果当你输入 [ a][ b][ c ]测试之后,输入如下:
---------------------------------------
没用trim()函数处理之前:
$customerid的值:[ a]整个变量值长度:[2]
$password1的值:[ b]整个变量值长度:[2]
$email的值:[ c ]整个变量值长度:[3]
用trim()函数处理之后:
$customerid的值:[a]整个变量值长度:[1]
$password1的值:[b整个变量值长度:[1]
$email的值:[c]整个变量值长度:[1]
------------------------------------
可见整个程序运行是完全正确的!
如果你不信,可以自己看一下测试页
http://www.17php.com/reg.html
自己输入一些数据看看,是不是完全正常。
 4#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 4#楼 发表于2004-10-01 03:57:06  评分: 

忘了解释一下。
上面我写的说明中的[]是为了把要输入的内容隔离开来,目的是看清楚我在什么地方输入了空格。[ ] 这两个符号本身不是输入的内容。
 5#楼  
 
  回复人:slopesun
  注册时间:2004-09-07
  主题/回复:58/67
  积分:753
  等级:★★★(六级)
  称号:声名鹊起

   
 5#楼 发表于2004-10-01 19:44:03  评分:× 

搞定了!!
太谢谢站长了!!
顺便祝站长国庆快乐


  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.012sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版