首页 > 编程知识 正文

后端php如何验证呢(php验证码代码怎么写)

时间:2023-12-03 11:56:28 阅读:311757 作者:BJAB

本文目录一览:

  • 1、php如何实现邮箱验证
  • 2、php怎样验证表单文本区域内容是否已存在数据库中?
  • 3、PHP 做的后台,如何“实名验证”
  • 4、把前端表单数据验证过了,后端PHP如何验证
  • 5、如何用PHP生成验证码

php如何实现邮箱验证

这是一个可以发送邮件的程序。程序是直接使用SMTP协议进行发送,用到了经典的phpMailer库。

请阅读apply.php文件。

发邮件之前你需要一个用来发送邮件的邮箱账号。但不能使用这个账号发送太多的邮件,否则会被当做垃圾邮件屏蔽。如果发送量较大,可以多申请几个邮箱。

关键变量说明:

subject: 邮件的主题

email: 邮件的内容

host: SMTP主机,与你申请的邮箱的服务商有关,详见代码内注释

fromname: 发件人的名字,可以任意写,对方收到时能看到这个名字

from: 发件人地址

to: 收件人地址,代码中写了$to = $from,请自行更改

username和password: 你邮箱的账号和密码,一般username都等于发件人地址。必须提供,否则无法发送邮件。

PHPMailer说明:

$mailer = new PHPMailer(true);

$mailer-IsHTML(true); // 这是一封HTML邮件

$mailer-IsSMTP(true); // 连接SMTP服务发送邮件

# $mailer-SMTPDebug = true; // 是否开启调试模式

$mailer-CharSet = 'UTF-8'; // 邮件内容的编码,和你程序的编码保持一致

$mailer-Encoding = 'base64'; // 邮件传递过程使用的编码

$mailer-FromName = $fromname; // 发件人

$mailer-Host = $host; // SMTP服务地址

$mailer-AddAddress($to); // 添加收件人

$mailer-From = $from; // 设置发件人

$mailer-Subject = $subject; // 设置主题

$mailer-MsgHTML($email); // 设置HTML邮件内容

$mailer-SMTPAuth = true; // 开启SMTP验证

$mailer-Username = $username; // 设置用户名

$mailer-Password = $passwd; // 设置密码

$mailer-Send(); // 发送邮件

php怎样验证表单文本区域内容是否已存在数据库中?

方法:查询数据,若数据存在则输出(前端这个要自己写,我只写了一个echo)

代码如下:

//$conn = new mysqli($sql_server_name, $sql_username, $sql_password, $sql_db);

$timu = $_GET["timu"];

$sql = $conn-query("查询 * from problems where timu

='". $timu . "'"); // 从problems库里查 注意把“查询”改成“select”,因为百度知道会屏蔽sql语句

if (mysqli_fetch_assoc($sql) 0) {

echo "已存在";

} else {

echo "不存在";

}

PHP 做的后台,如何“实名验证”

实名认证牵涉公安备案系统,请想公安机关申请接口进行验证。

否则只能用身份证生成规则进行验证,但是这样验证不是百分之百准确的

以下附上PHP 身份证规则验证代码

/*/

# CopyRight: zxing

# Document: 检查符合 GB11643-1999 标准的身份证号码的正确性

# File:gb11643_1999.func.php Fri Mar 28 09:42:41 CST 2008 zxing

# Updated:Fri Mar 28 09:42:41 CST 2008

# Note: 调用函数 check_id();

#/*///

$id =array();

$id[] = '370882198601064774';

$id[] = '420502198611281126';

$id[] = '370882198601064770';

$id[] = '370882860106477';

$id[] = '63212519850703214x';

$id[] = '429021198203221006';

$id[] = '429036198203211023';

foreach ($id as $key = $value){

echo check_id($value)?$value.' 是真的!br/': $value.' 是假的!br/';

}

#/*/

/*/

# 函数功能:计算身份证号码中的检校码

# 函数名称:idcard_verify_number

# 参数表 :string $idcard_base 身份证号码的前十七位

# 返回值 :string 检校码

# 更新时间:Fri Mar 28 09:50:19 CST 2008

/*/

function idcard_verify_number($idcard_base){

if (strlen($idcard_base) != 17){

   return false;

}

    $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); //debug 加权因子

    $verify_number_list = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); //debug 校验码对应值

    $checksum = 0;

    for ($i = 0; $i  strlen($idcard_base); $i++){

        $checksum += substr($idcard_base, $i, 1) * $factor[$i];

    }

    $mod = $checksum % 11;

    $verify_number = $verify_number_list[$mod];

    return $verify_number;

}

/*/

# 函数功能:将15位身份证升级到18位

# 函数名称:idcard_15to18

# 参数表 :string $idcard 十五位身份证号码

# 返回值 :string

# 更新时间:Fri Mar 28 09:49:13 CST 2008

/*/

function idcard_15to18($idcard){

    if (strlen($idcard) != 15){

        return false;

    }else{// 如果身份证顺序码是996 997 998 999,这些是为百岁以上老人的特殊编码

        if (array_search(substr($idcard, 12, 3), array('996', '997', '998', '999')) !== false){

            $idcard = substr($idcard, 0, 6) . '18'. substr($idcard, 6, 9);

        }else{

            $idcard = substr($idcard, 0, 6) . '19'. substr($idcard, 6, 9);

        }

    }

    $idcard = $idcard . idcard_verify_number($idcard);

    return $idcard;

}

/*/

# 函数功能:18位身份证校验码有效性检查

# 函数名称:idcard_checksum18

# 参数表 :string $idcard 十八位身份证号码

# 返回值 :bool

# 更新时间:Fri Mar 28 09:48:36 CST 2008

/*/

function idcard_checksum18($idcard){

    if (strlen($idcard) != 18){ return false; }

    $idcard_base = substr($idcard, 0, 17);

    if (idcard_verify_number($idcard_base) != strtoupper(substr($idcard, 17, 1))){

        return false;

    }else{

        return true;

    }

}

/*/

# 函数功能:身份证号码检查接口函数

# 函数名称:check_id

# 参数表 :string $idcard 身份证号码

# 返回值 :bool 是否正确

# 更新时间:Fri Mar 28 09:47:43 CST 2008

/*/

function check_id($idcard) {

if(strlen($idcard) == 15 || strlen($idcard) == 18){

   if(strlen($idcard) == 15){

    $idcard = idcard_15to18($idcard);

   }

   if(idcard_checksum18($idcard)){

    return true;

   }else{

    return false;

   }

}else{

   return false;

}

}

把前端表单数据验证过了,后端PHP如何验证

提交到一个php页面。比如check.php

$_POST接收数据。

$username = $_POST['username'];

$password = $_POST['password'];

$sql = "select id from user where username='$username' and password='$password'";

如果结果存在,说明有名字密码正确。

如何用PHP生成验证码

PHP生成验证码的原理:使用PHP的GD库,生成一张带验证码的图片,并将验证码保存在Session中。PHP生成验证码的大致流程有:

1、产生一张png的图片;

2、为图片设置背景色;

3、设置字体颜色和样式;

4、产生4位数的随机的验证码;

5、把产生的每个字符调整旋转角度和位置画到png图片上;

6、加入噪点和干扰线防止注册机器分析原图片来恶意破解验证码;

7、输出图片;

8、释放图片所占内存。

session_start(); 

getCode(4,60,20); 

 

function getCode($num,$w,$h) { 

    $code = ""; 

    for ($i = 0; $i  $num; $i++) { 

        $code .= rand(0, 9); 

    } 

    //4位验证码也可以用rand(1000,9999)直接生成 

    //将生成的验证码写入session,备验证时用 

    $_SESSION["helloweba_num"] = $code; 

    //创建图片,定义颜色值 

    header("Content-type: image/PNG"); 

    $im = imagecreate($w, $h); 

    $black = imagecolorallocate($im, 0, 0, 0); 

    $gray = imagecolorallocate($im, 200, 200, 200); 

    $bgcolor = imagecolorallocate($im, 255, 255, 255); 

    //填充背景 

    imagefill($im, 0, 0, $gray); 

 

    //画边框 

    imagerectangle($im, 0, 0, $w-1, $h-1, $black); 

 

    //随机绘制两条虚线,起干扰作用 

    $style = array ($black,$black,$black,$black,$black, 

        $gray,$gray,$gray,$gray,$gray 

    ); 

    imagesetstyle($im, $style); 

    $y1 = rand(0, $h); 

    $y2 = rand(0, $h); 

    $y3 = rand(0, $h); 

    $y4 = rand(0, $h); 

    imageline($im, 0, $y1, $w, $y3, IMG_COLOR_STYLED); 

    imageline($im, 0, $y2, $w, $y4, IMG_COLOR_STYLED); 

 

    //在画布上随机生成大量黑点,起干扰作用; 

    for ($i = 0; $i  80; $i++) { 

        imagesetpixel($im, rand(0, $w), rand(0, $h), $black); 

    } 

    //将数字随机显示在画布上,字符的水平间距和位置都按一定波动范围随机生成 

    $strx = rand(3, 8); 

    for ($i = 0; $i  $num; $i++) { 

        $strpos = rand(1, 6); 

        imagestring($im, 5, $strx, $strpos, substr($code, $i, 1), $black); 

        $strx += rand(8, 12); 

    } 

    imagepng($im);//输出图片 

    imagedestroy($im);//释放图片所占内存 

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。