佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1670|回复: 48

PHP 如何check validation..

[复制链接]
发表于 30-6-2008 03:42 PM | 显示全部楼层 |阅读模式
我现在做着一个用php写的系统.....

我第一面有这样的code...

<input name="name" type="text" id="name">

然后会pass value 去另外一面...

然后
$name  = $_POST['name'];

我打什么名字就会是 $name...

那如果...
我要check user有没有打 name的 text field, 我应该怎么做呢?
要知道这个field是不是blank....
如果是blank就给提示user..这个不能留空...

我不知道如何check 那个 textfield是不是 blank 哦...
回复

使用道具 举报


ADVERTISEMENT

发表于 30-6-2008 11:45 PM | 显示全部楼层
isset 这个 用来检查 incoming parameter
回复

使用道具 举报

 楼主| 发表于 1-7-2008 11:10 AM | 显示全部楼层
原帖由 vampcheah 于 30-6-2008 11:45 PM 发表
isset 这个 用来检查 incoming parameter


但是..
如果我有5 个 textfield...
有三个没有填... 但是我又必须他们填上..
我该怎么做呢???
我该如何check它们呢???
要每一个去check??

我这样写可以吗?

if($_POST['name'] != '')
{
     $name = $_POST['name'];
}

以此类推...

但是... 我该怎样让那个error message给user知道呢??
回复

使用道具 举报

发表于 1-7-2008 11:12 AM | 显示全部楼层
if(!empty($name )){

echo "<script language='Javascript' type='text/javascript'>location.href='home.php';</script>";

}
else{

echo "<script language='Javascript' type='text/javascript'>alert('please input your name!');</script>";

}
谨供参考,请记得使用mysql_escape_real_string来verify你的input
回复

使用道具 举报

 楼主| 发表于 1-7-2008 12:44 PM | 显示全部楼层
原帖由 lkw84 于 1-7-2008 11:12 AM 发表
if(!empty($name )){

echo "location.href='home.php';";

}
else{

echo "alert('please input your name!');";

}
谨供参考,请记得使用mysql_escape_real_string来verify你的input


如果我不要用到javascript呢?
我想用php code来做validation...
而且, 我不只是有name,还有address, phone以此类推的个人资料...
那我要怎样check完全部是没有blank的呢??

[ 本帖最后由 wcpon 于 1-7-2008 12:59 PM 编辑 ]
回复

使用道具 举报

发表于 1-7-2008 04:33 PM | 显示全部楼层
你可以用&&啊!就像这样:
if(!empty($_POST['name'] ) && !empty($_POST['address'] ) && !empty($_POST['phone'] ) && !empty($_POST['input4'] ) && !empty($_POST['input5'] ) ){

$time=3; //多少秒才转入你的page
$url='http://www.google.com.my';        
header("refresh: $time; url=$url");

}
else{

echo 'please input your name!';

}

其实用javascript 还是 php 都是一样的我说过谨供参考
我比较喜欢pop-up box 啊!
回复

使用道具 举报

Follow Us
发表于 1-7-2008 04:49 PM | 显示全部楼层
全部放进 array 然后用 array_walk 来跑 (如果要快的话)
回复

使用道具 举报

 楼主| 发表于 1-7-2008 07:06 PM | 显示全部楼层
原帖由 lkw84 于 1-7-2008 04:33 PM 发表
你可以用&&啊!就像这样:
if(!empty($_POST['name'] ) && !empty($_POST['address'] ) && !empty($_POST['phone'] ) && !empty($_POST['input4'] ) && !empty($_POST['input5'] ) ){

$time=3; //多少秒才转入你 ...


但是如果这样..
如果我的address或name或phone
没有填...
怎么办??
我觉得不能用&&...
试了很久都不行
回复

使用道具 举报


ADVERTISEMENT

发表于 1-7-2008 08:17 PM | 显示全部楼层
if(!empty(input1,input2,input3,input4, input5))
{
//do something
}
回复

使用道具 举报

发表于 1-7-2008 11:34 PM | 显示全部楼层
其实。。。
你用
if($name == "") // name = empty
  //do you code here
else if($address== "") // address= empty
  //do you code here
else if($phone== "") // phone= empty
  //do you code here
参考下....

上面的code,只要其中一个是空的。。。。
都不会过。。。。。

不知道是不是你要的。。。。。
回复

使用道具 举报

 楼主| 发表于 2-7-2008 11:25 AM | 显示全部楼层
原帖由 lawty 于 1-7-2008 11:34 PM 发表
其实。。。
你用
if($name == "") // name = empty
  //do you code here
else if($address== "") // address= empty
  //do you code here
else if($phone== "") // phone= empty
  //do you code here
参考 ...


很谢谢你们的帮助...
我在试试....
因为...
我要check完全部textfield..
然后就一起告诉user哪一个还没有填.....
回复

使用道具 举报

 楼主| 发表于 2-7-2008 12:09 PM | 显示全部楼层
原帖由 Aoiro 于 1-7-2008 08:17 PM 发表
if(!empty(input1,input2,input3,input4, input5))
{
//do something
}


这个和这个是一样吗?

if(!empty($_POST['name'] ) && !empty($_POST['address'] ) && !empty($_POST['phone'] ) && !empty($_POST['input4'] ) && !empty($_POST['input5'] ) ){

我试了..
有error...

我这样试
if(!empty($username,$password))
{
     //do something
}

error message...
Parse error: syntax error, unexpected ',', expecting ')'
回复

使用道具 举报

发表于 2-7-2008 01:18 PM | 显示全部楼层
原帖由 wcpon 于 2-7-2008 11:25 AM 发表


很谢谢你们的帮助...
我在试试....
因为...
我要check完全部textfield..
然后就一起告诉user哪一个还没有填.....


原来你的要的是那样。。。。
那么就
$errorMessage = "";
if($name == "")
    $errorMessage .= "you forgot to fill in your name<br>";
if($address== "")
    $errorMessage .= "you forgot to fill in your address<br>";
if($phone== "")
    $errorMessage .= "you forgot to fill in your phone<br>";

然后就把那$errorMessage显示出来。。。。
就能够一次过告诉用户什么东西漏了哦。。。。
回复

使用道具 举报

 楼主| 发表于 2-7-2008 03:13 PM | 显示全部楼层
原帖由 lawty 于 2-7-2008 01:18 PM 发表


原来你的要的是那样。。。。
那么就
$errorMessage = "";
if($name == "")
    $errorMessage .= "you forgot to fill in your name";
if($address== "")
    $errorMessage .= "you forgot to fill in y ...


谢谢你...

那如果..
我要redirect去一页...
比如说是error.php 用来显示error msg 的...
可以用什么方法??

我一直带不到没有填field的value过去..
告诉error.php那一个没有填....
如果可以带过去, 然后就可以决定出示什么error msg.
回复

使用道具 举报

发表于 2-7-2008 10:36 PM | 显示全部楼层
你是form post到另外一面来做validation。。。
那么你可以这样。。。。

$errorMessage = "";
if($name == "")
    $errorMessage .= "you forgot to fill in your name<br>";
if($address== "")
    $errorMessage .= "you forgot to fill in your address<br>";
if($phone== "")
    $errorMessage .= "you forgot to fill in your phone<br>";

if($errorMessage != "") //就是说有问题咯......
{
         include("error.php"); exit;
}



*****************************************************
那么在你的error.php里面。。。
你可以直接用$errorMessage来显示了。。。。

<? echo $errorMessage; ?>

就是这样。。。。
回复

使用道具 举报

 楼主| 发表于 3-7-2008 12:19 PM | 显示全部楼层
原帖由 lawty 于 2-7-2008 10:36 PM 发表
你是form post到另外一面来做validation。。。
那么你可以这样。。。。

$errorMessage = "";
if($name == "")
    $errorMessage .= "you forgot to fill in your name";
if($address== "")
    $errorMessa ...


想问你...
为什么 $errorMessage 可以存那么多error message?
是不是这个 ( .= ) 点等于
是什么用途??

其实,
大致上是可以解决了...

但是我想用 header 带去error.php.. 却不想用include("error.php")
然后由error.php define那个error message...
那我的header... 应该怎样pass parameter去 error.php呢???

header ("Location: error.php?xxxxx")
我一直带不到那些parameter过去..
error.php就不知道哪一个有错....
回复

使用道具 举报


ADVERTISEMENT

发表于 3-7-2008 01:05 PM | 显示全部楼层
(.=) 就是像 (+=) 那样....
(+=) 用在数字, (.=)用在string。。。。

为什么要用header呢?
header的用途你可以google下。。。。

像你这种情况呢。。。。
是不建议用header来处理。。。。
有可能你要带的东西很大。。。。
到时候会有问题。。。。

老实说。。简单点好。。。。
回复

使用道具 举报

 楼主| 发表于 3-7-2008 04:48 PM | 显示全部楼层
原帖由 lawty 于 3-7-2008 01:05 PM 发表
(.=) 就是像 (+=) 那样....
(+=) 用在数字, (.=)用在string。。。。

为什么要用header呢?
header的用途你可以google下。。。。

像你这种情况呢。。。。
是不建议用header来处理。。。。
有可能你要带的东 ...


谢谢你...
因为想用这样的方法做...
学多一样新的东西..
但是做了很久..还是不行...
不知道怎么搞的...
唉..
回复

使用道具 举报

发表于 3-7-2008 04:52 PM | 显示全部楼层

回复 18# wcpon 的帖子

把你code丢上来,一目了然
回复

使用道具 举报

发表于 4-7-2008 07:47 AM | 显示全部楼层
原帖由 wcpon 于 3-7-2008 04:48 PM 发表


谢谢你...
因为想用这样的方法做...
学多一样新的东西..
但是做了很久..还是不行...
不知道怎么搞的...
唉..



你如果还是要用header的话。。
那么就把那个$errorMessage从URL那里带过去咯.......

要不然你就把它放进session。。。
显示完了就清除它。。。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 23-12-2025 10:35 PM , Processed in 0.143295 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表