|
查看: 1669|回复: 48
|
PHP 如何check validation..
[复制链接]
|
|
|
我现在做着一个用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 哦...  |
|
|
|
|
|
|
|
|
|
|
发表于 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 啊! |
|
|
|
|
|
|
|
|
|
|
发表于 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
没有填...
怎么办??
我觉得不能用&&...
试了很久都不行  |
|
|
|
|
|
|
|
|
|
|
发表于 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就不知道哪一个有错.... |
|
|
|
|
|
|
|
|
|
|
发表于 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。。。
显示完了就清除它。。。。。。 |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|