찾다
php教程php手册php非空验证
php非空验证Jun 06, 2016 pm 07:46 PM
php방법용적비어 있지 않음확인하다

我想说这种方法是不是很常用的非空验证,现在的普遍使用的是javascript来验证非空,但是作为学习php的一些知识点,还是可以看看的。 先来看看commit.php中的方法 ? php $db = mysql_connect ('localhost','root','Ctrip07185419' ); mysql_select_db ('movie

  我想说这种方法是不是很常用的非空验证,现在的普遍使用的是javascript来验证非空,但是作为学习php的一些知识点,还是可以看看的。

先来看看commit.php中的方法

<span>php 
</span><span>$db</span> = <span>mysql_connect</span>('localhost','root','Ctrip07185419'<span>);
</span><span>mysql_select_db</span>('moviesite',<span>$db</span>) or <span>die</span>(<span>mysql_error</span>(<span>$db</span><span>));
</span><span>mysql_query</span>('set names "gb2312"',<span>$db</span><span>);
</span>?>
<!--
<html>
    <head></head>
    <title>Commit</title>
    <body>
-->
<span>php
</span><span>switch</span>(<span>$_GET</span>['action'<span>])
{
    </span><span>case</span> "add":<span>
    {
        </span><span>switch</span>(<span>$_GET</span>['type'<span>])
        {
            </span><span>case</span> 'movie':
                <span>$error</span> = <span>array</span><span>();
                </span><span>$movie_name</span> = <span>isset</span>(<span>$_POST</span>['movie_name']) ? <span>trim</span>(<span>$_POST</span>['movie_name']) : ''<span>;
                </span><span>if</span>(<span>empty</span>(<span>$movie_name</span><span>))
                {
                    </span><span>$error</span>[] = <span>urlencode</span>('Please enter an movie name'<span>);
                }
                
                </span><span>$movie_type</span> = <span>isset</span>(<span>$_POST</span>['movie_type']) ? <span>trim</span>(<span>$_POST</span>['movie_type']) : ''<span>;
                </span><span>if</span>(<span>empty</span>(<span>$movie_type</span><span>))
                {
                    </span><span>$error</span>[] = <span>urldecode</span>('Please enter an movie type'<span>);
                }
                
                </span><span>$movie_year</span> = <span>isset</span>(<span>$_POST</span>['movie_year']) ? <span>trim</span>(<span>$_POST</span>['movie_year']) : ''<span>;
                </span><span>if</span>(<span>empty</span>(<span>$movie_year</span><span>))
                {
                    </span><span>$error</span>[] = <span>urldecode</span>('Please enter an movie year'<span>);
                }
                
                </span><span>$movie_leadactor</span> = <span>isset</span>(<span>$_POST</span>['movie_leadactor']) ? <span>trim</span>(<span>$_POST</span>['movie_leadactor']) : ''<span>;
                </span><span>if</span>(<span>empty</span>(<span>$movie_leadactor</span><span>))
                {
                    </span><span>$error</span>[] = <span>urldecode</span>('Please enter an movie leadactor'<span>);
                }
                
                </span><span>$movie_director</span> = <span>isset</span>(<span>$_POST</span>['movie_director']) ? <span>trim</span>(<span>$_POST</span>['movie_director']) : ''<span>;
                </span><span>if</span>(<span>empty</span>(<span>$movie_director</span><span>))
                {
                    </span><span>$error</span>[] = <span>urldecode</span>('Please enter an movie director'<span>);
                }
                
                </span><span>$movie_release</span> = <span>isset</span>(<span>$_POST</span>['movie_release']) ? <span>trim</span>(<span>$_POST</span>['movie_release']) : ''<span>;
                </span><span>if</span>(<span>empty</span>(<span>$movie_release</span><span>))
                {
                    </span><span>$error</span>[] = <span>urldecode</span>('Please enter an movie release'<span>);
                }
                </span><span>else</span> <span>if</span>(!<span>preg_match</span>('|^\d{2}-\d{2}-\d{4}$|' , <span>$movie_release</span><span>))
                {
                    </span><span>$error</span>[] = <span>urlencode</span>('Please enter a date in dd-mm-yyyy format'<span>);
                }
                </span><span>else</span><span>
                {
                    </span><span>list</span>(<span>$day</span>, <span>$month</span>, <span>$year</span>) = <span>explode</span>('-', <span>$movie_release</span><span>);
                    </span><span>if</span>(!<span>checkdate</span>(<span>$month</span> , <span>$day</span> , <span>$year</span><span>))
                    {
                        </span><span>$error</span>[] =  <span>urldecode</span>('please enter a validate date'<span>);
                    }
                    </span><span>else</span><span>
                    {
                        </span><span>$movie_release</span> = <span>mktime</span>(0, 0, 0, <span>$month</span>, <span>$day</span>, <span>$year</span><span>);
                    }
                }

                </span><span>$movie_rating</span> = <span>isset</span>(<span>$_POST</span>['movie_rating']) ? <span>trim</span>(<span>$_POST</span>['movie_rating']) : ''<span>;
                </span><span>if</span>(<span>empty</span>(<span>$movie_rating</span><span>))
                {
                    </span><span>$error</span>[] = <span>urldecode</span>('Please enter an movie leadactor'<span>);
                }
                </span><span>else</span> <span>if</span>(!<span>is_numeric</span>(<span>$movie_rating</span><span>))
                {
                    </span><span>$error</span>[] = <span>urlencode</span>('Please enter a numeric rating'<span>);
                }
                </span><span>else</span> <span>if</span>(<span>$movie_rating</span> $movie_rating > 10<span>)
                {
                    </span><span>$error</span>[] = <span>urlencode</span>('Please enter a rating between 1 and 10'<span>);
                }
                
                </span><span>if</span>(<span>empty</span>(<span>$error</span><span>))
                {    
                    </span><span>//</span><span>var_dump($movie_rating);
                    //注意是movie_type不是mvioe_type,大错特错</span>
                    <span>$query</span> = '<span>insert into movie(movie_name,movie_year,movie_type,movie_leadactor,movie_director,movie_release,movie_rating) 
                    values("</span>'.<span>$movie_name</span>.'",'.<span>$movie_year</span>.','.<span>$movie_type</span>.','.<span>$movie_leadactor</span>.','.<span>$movie_director</span>.','.<span>$movie_release</span>.','.<span>$movie_rating</span>.')'<span>;
                
                    
                }
                </span><span>else</span><span>
                {
                    </span><span>//</span><span>注意是Location不是Lacotion,大错特错</span>
                    <span>header</span>('Location:movie_checkformat.php?action=add&error=' . <span>join</span>(<span>$error</span> , <span>urlencode</span>('<br>'<span>)));
                    </span><span>//</span><span>var_dump($error);    
                    //var_dump($_POST);</span>
<span>                }
            </span><span>break</span><span>;
        }
        </span><span>break</span><span>;
    }
    </span><span>case</span> 'edit':
        <span>switch</span>(<span>$_GET</span>['type'<span>])
        {
            </span><span>case</span> 'movie':<span>
            {
                </span><span>$error</span> = <span>array</span><span>();
                </span><span>$movie_name</span> = <span>isset</span>(<span>$_POST</span>['movie_name']) ? <span>trim</span>(<span>$_POST</span>['movie_name']) : ''<span>;
                </span><span>if</span>(<span>empty</span>(<span>$movie_name</span><span>))
                {
                    </span><span>$error</span>[] = <span>urlencode</span>('Please enter an movie name'<span>);
                }
                
                </span><span>$movie_type</span> = <span>isset</span>(<span>$_POST</span>['movie_type']) ? <span>trim</span>(<span>$_POST</span>['movie_type']) : ''<span>;
                </span><span>if</span>(<span>empty</span>(<span>$movie_type</span><span>))
                {
                    </span><span>$error</span>[] = <span>urldecode</span>('Please enter an movie type'<span>);
                }
                
                </span><span>$movie_year</span> = <span>isset</span>(<span>$_POST</span>['movie_year']) ? <span>trim</span>(<span>$_POST</span>['movie_year']) : ''<span>;
                </span><span>if</span>(<span>empty</span>(<span>$movie_year</span><span>))
                {
                    </span><span>$error</span>[] = <span>urldecode</span>('Please enter an movie year'<span>);
                }
                
                </span><span>$movie_leadactor</span> = <span>isset</span>(<span>$_POST</span>['movie_leadactor']) ? <span>trim</span>(<span>$_POST</span>['movie_leadactor']) : ''<span>;
                </span><span>if</span>(<span>empty</span>(<span>$movie_leadactor</span><span>))
                {
                    </span><span>$error</span>[] = <span>urldecode</span>('Please enter an movie leadactor'<span>);
                }
                
                </span><span>$movie_director</span> = <span>isset</span>(<span>$_POST</span>['movie_director']) ? <span>trim</span>(<span>$_POST</span>['movie_director']) : ''<span>;
                </span><span>if</span>(<span>empty</span>(<span>$movie_director</span><span>))
                {
                    </span><span>$error</span>[] = <span>urldecode</span>('Please enter an movie director'<span>);
                }
                
                </span><span>$movie_release</span> = <span>isset</span>(<span>$_POST</span>['movie_release']) ? <span>trim</span>(<span>$_POST</span>['movie_release']) : ''<span>;
                </span><span>if</span>(<span>empty</span>(<span>$movie_release</span><span>))
                {
                    </span><span>$error</span>[] = <span>urldecode</span>('Please enter an movie release'<span>);
                }
                </span><span>else</span> <span>if</span>(!<span>preg_match</span>('|^\d{2}-\d{2}-\d{4}$|' , <span>$movie_release</span><span>))
                {
                    </span><span>$error</span>[] = <span>urlencode</span>('Please enter a date in dd-mm-yyyy format'<span>);
                }
                </span><span>else</span><span>
                {
                    </span><span>list</span>(<span>$day</span>, <span>$month</span>, <span>$year</span>) = <span>explode</span>('-', <span>$movie_release</span><span>);
                    </span><span>if</span>(!<span>checkdate</span>(<span>$month</span> , <span>$day</span> , <span>$year</span><span>))
                    {
                        </span><span>$error</span>[] =  <span>urldecode</span>('please enter a validate date'<span>);
                    }
                    </span><span>else</span><span>
                    {
                        </span><span>$movie_release</span> = <span>mktime</span>(0, 0, 0, <span>$month</span>, <span>$day</span>, <span>$year</span><span>);
                    }
                }

                </span><span>$movie_rating</span> = <span>isset</span>(<span>$_POST</span>['movie_rating']) ? <span>trim</span>(<span>$_POST</span>['movie_rating']) : ''<span>;
                </span><span>if</span>(<span>empty</span>(<span>$movie_rating</span><span>))
                {
                    </span><span>$error</span>[] = <span>urldecode</span>('Please enter an movie leadactor'<span>);
                }
                </span><span>else</span> <span>if</span>(!<span>is_numeric</span>(<span>$movie_rating</span><span>))
                {
                    </span><span>$error</span>[] = <span>urlencode</span>('Please enter a numeric rating'<span>);
                }
                </span><span>else</span> <span>if</span>(<span>$movie_rating</span> $movie_rating > 10<span>)
                {
                    </span><span>$error</span>[] = <span>urlencode</span>('Please enter a rating between 1 and 10'<span>);
                }                
                
                </span><span>if</span>(<span>empty</span>(<span>$error</span><span>))
                {
                    </span><span>//</span><span>var_dump($_POST);</span>
                    <span>$query</span> = '<span>update movie set 
                    movie_name="</span>'.<span>$_POST</span>['movie_name'].'<span>", 
                    movie_type=</span>'.<span>$_POST</span>['movie_type'].'<span>, 
                    movie_year=</span>'.<span>$_POST</span>['movie_year'].'<span>, 
                    movie_leadactor=</span>'.<span>$_POST</span>['movie_leadactor'].'<span>, 
                    movie_director=</span>'.<span>$_POST</span>['movie_director']. '<span> 
                    movie_release=</span>'.<span>$_POST</span>['movie_release'].'<span> 
                    movie_rating=</span>'.<span>$_POST</span>['movie_rating'].'<span> 
                    where movie_id=</span>'.<span>$_POST</span>['movie_id'<span>];            
                }
                </span><span>else</span><span>
                {
                    </span><span>//</span><span>注意是Location不是Lacotion,大错特错</span>
                    <span>header</span>('Location:movie_checkformat.php?action=add&error=' . <span>join</span>(<span>$error</span> , <span>urlencode</span>('<br>'<span>)));
                }
            }
            </span><span>break</span><span>;
        }
        </span><span>break</span><span>;
    </span><span>default</span>:
    <span>break</span><span>;
}
</span><span>if</span>(<span>isset</span>(<span>$query</span><span>))
{
    </span><span>mysql_query</span>(<span>$query</span>,<span>$db</span>) or <span>die</span>(<span>mysql_error</span>(<span>$db</span><span>));
}
</span>?>

    
        <title>Commit</title>
    
    
        <p><span>Done</span>!</p>
    

其实逻辑很简答的,看下面的代码

$movie_leadactor = isset($_POST['movie_leadactor']) ? trim($_POST['movie_leadactor']) : '';
if(empty($movie_leadactor))
{
$error[] = urldecode('Please enter an movie leadactor');
}

其实就是使用isset方法来验证输入是否为空,如果是空的话把错误信息记入到一个数组$error中,然后使用header方法跳转到填写信息的页面中,跳转的方法看上去有点糟糕,如下header('Location:movie_checkformat.php?action=add&error=' . join($error , urlencode('
')));,是将所有错误信息使用换行符来连接起来放到url中来跳转,很我觉得这个有点不合适的。

 

来看填写信息的页面movie_checkformat.php,

<span>php 
</span><span>$db</span> = <span>mysql_connect</span>('localhost','root','Ctrip07185419') or <span>die</span>('can not connect to mysql'<span>);
</span><span>mysql_select_db</span>('moviesite',<span>$db</span>) or <span>die</span>(<span>mysql_error</span>(<span>$db</span><span>));
</span><span>mysql_query</span>('set names gbk',<span>$db</span><span>);
</span><span>if</span>(<span>isset</span>(<span>$_GET</span>['action']) && <span>$_GET</span>['action'] == 'edit'<span>) 
{
    </span><span>$query</span> = 'SELECT movie_name,movie_type,movie_year,movie_leadactor,movie_director,movie_release,movie_rating FROM movie WHERE movie_id='.<span>$_GET</span>['id'<span>];
    </span><span>//</span><span>echo $query;</span>
    <span>$result</span> = <span>mysql_query</span>(<span>$query</span> , <span>$db</span>) or <span>die</span>(<span>mysql_error</span>(<span>$db</span><span>));
    </span><span>extract</span>(<span>mysql_fetch_assoc</span>(<span>$result</span><span>));
}
</span><span>else</span><span>
{
    </span><span>$movie_name</span>=''<span>;
    </span><span>$movie_type</span>=0<span>;
    </span><span>$movie_year</span>=<span>date</span>('Y'<span>);
    </span><span>$movie_leadactor</span>=0<span>;
    </span><span>$movie_director</span>=0<span>;
    </span><span>$movie_release</span>=<span>time</span><span>();
    </span><span>$movie_rating</span>=5<span>;
}
</span>?>

    
        <title>
<?php <span>echo <span>ucfirst</span>(<span>$_GET</span>['action']);?> Movie</title>
        <style type="text/css">
         <!--
            <span>#<span>error { background-color: #600; border: 1px solid #FF0; color: #FFF; text-align: center; margin: 10px; padding: 10px; }
        -->
        </style>
    
     
        <span>php 
            </span><span>if</span>(<span>isset</span>(<span>$_GET</span>['error']) && <span>$_GET</span>['error'] != ''<span>)
            {
                </span><span>echo</span> '<div id="error">'.<span>$_GET</span>['error'].'</div>'<span>;
            }
        </span>?>
        
Movie Name
Movie Type
Movie Year
Lead actor
Director
Movie release date
(dd-mm-YYYY)
Movie rating
php if('edit' == $_GET['action']) { echo ''; } ?>

在html中的body开始的时候如果传递的error参数不为空则输出错误信息,代码如下:

if(isset($_GET['error']) && $_GET['error'] != '')
{
echo '

'.$_GET['error'].'
';
}
?>

很简单,这种写法也很糟糕,完全可以放在javascript中来实现,估计实际生产中很少会有人这么写的。

这里顺便看看一些常见的判断方法:

is_array():判断变量是否是一个数组
is_binary(): 判断变量是否是一个二进制串
is_bool():判断布尔类型变量true还是false,1还是0
is_callable(): 判断变量是否是一个可以访问的函数,估计就是判断是否是代理类型

is_int(): 判断整型
is_null(): 判断是否为空
is_numeric():判断是否是数字或者数字形式的字符串吧
is_object(): 判断变量是否是一个对象
is_resource(): 判断资源类型
is_string(): 判断是否是字符串类型
is_unicode(): 判断是否是unicode字符串

某些时候使用is_xx方法比较慢,使用ctype_xx类型的方法较快,但是它只能检验字符串类型,不能检验对象,数组,资源类型。ctype_xx方法举例如下:

ctype_alnum(): 判断变量是否是数字类型字符串
ctype_alpha(): 判断变量全是字符串
ctype_cntrl(): 判断是控制字符,就是转移字符如"\n"
ctype_digit(): 判断字符串全部是数字字符,不包含任何非数组字符"."这样的也不包含
ctype_graph(): 检查是否有任何可打印字符,除了空格(补)
ctype_lower() : 检查小写字母
ctype_print(): 检查是否都是可打印字符,就是不包含转移字符,和ctype_control()是相斥的
ctype_punct(): 检查是否有任何可打印字符而不是空格或字母数字字符
ctype_space(): 检查是否都是空白字符
ctype_upper() : 检查是否都是大写字符
ctype_xdigit(): 检查是否是16进制的字符串,只能包括 “0123456789abcdef”

 

还可以使用preg_match来检验输入,这个是用正则表达式的方式来进行检验的。

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace("&nbsp;","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么判断有没有小数点php怎么判断有没有小数点Apr 20, 2022 pm 08:12 PM

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么读取字符串后几个字符php怎么读取字符串后几个字符Apr 22, 2022 pm 08:31 PM

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경