开发者社区> xinxinitblog> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

PHP搭建网站登录页面(一个iOS开发者的PHP之路)

简介: 前言 最近几年各个技术论坛流传着一句话:未来是全栈程序员的世界!程序员作为社会的一门职业,越来越多的人加入这个行业,在这个行业内分工很明晰的情况下,越来越多的程序员开始不安分追求一门编程语言,开始在工作之余学习其他领域,渴望在不久的将来能在整个软件行业游刃有余。
+关注继续查看

前言

最近几年各个技术论坛流传着一句话:未来是全栈程序员的世界!程序员作为社会的一门职业,越来越多的人加入这个行业,在这个行业内分工很明晰的情况下,越来越多的程序员开始不安分追求一门编程语言,开始在工作之余学习其他领域,渴望在不久的将来能在整个软件行业游刃有余。当然网上反对的声音也很高,这些人认为术业有专攻,应该精通一门,一个人在公司也只会负责一门技术,精力有限。

本人的看法是在这个技术日新月异的时代,iOS取代塞班也是一瞬间的事情,所以作为一名程序员强大的学习能力才是最重要的,一专多强才是非常保险的,再加上每个人走的路线是不一样的,所以没有谁对谁错,只有适不适合自己。

说明

语言基础

HTTML +CSS+ PHP

适应人群

  • 非PHP开发者涉猎PHP技术

  • PHP开发新手

重要说明:本人是一名iOS开发者,正在PHP的道路上爬坑,PHP界的大牛大侠请绕路,谢谢!

技术准备

搭建PHP、MySQL、Apache服务器环境

说明:

服务器环境可以在Mac、Linux、Windows环境下均可进行搭建,搭建的过程网上资料一堆又一堆的,其中Mac上搭建环境可以参考我这一篇iOS开发–Mac下服务器搭建,搭建的过程对于新手来说也是比较繁琐和麻烦的,所以对于新手推荐 使用phpStudy软件进行一键式的搭建环境,如图

这里写图片描述

由于csdn上传资料只有60M的限制,所以需要这个软件的可以在下方评论区留下你的邮箱发给你。

这次我们做的是一个登陆页面,效果图如下:

这里写图片描述

功能实现介绍

页面运用的是HTML+CSS进行编写,验证码封装了成了一个PHP类,当用户输入账号密码以及验证码后会,先验证验证码是否正确,当验证码正确的时候php访问数据库Myuser表与用户输入的账号密码进行匹对,匹对成功后跳转到网站主页。

验证码自动生成的文件代码如下:

<?php
//验证码类
class ValidateCode {
private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';//随机因子
private $code;//验证码
private $codelen =4;//验证码长度
private $width = 130;//宽度
private $height = 50;//高度
private $img;//图形资源句柄
private $font;//指定的字体
private $fontsize = 20;//指定字体大小
private $fontcolor;//指定字体颜色
//构造方法初始化
public function __construct() {
$this->font = dirname(__FILE__).'/font/elephant.ttf';//注意字体路径要写对,否则显示不了图片
}
//生成随机码
private function createCode() {
$_len = strlen($this->charset)-1;
for ($i=0;$i<$this->codelen;$i++) {
$this->code .= $this->charset[mt_rand(0,$_len)];
}
}
//生成背景
private function createBg() {
$this->img = imagecreatetruecolor($this->width, $this->height);
$color = imagecolorallocate($this->img, mt_rand(157,255), mt_rand(157,255), mt_rand(157,255));
imagefilledrectangle($this->img,0,$this->height,$this->width,0,$color);
}
//生成文字
private function createFont() {
$_x = $this->width / $this->codelen;
for ($i=0;$i<$this->codelen;$i++) {
$this->fontcolor = imagecolorallocate($this->img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156));
imagettftext($this->img,$this->fontsize,mt_rand(-30,30),$_x*$i+mt_rand(1,5),$this->height / 1.4,$this->fontcolor,$this->font,$this->code[$i]);
}
}
//生成线条、雪花
private function createLine() {
//线条
for ($i=0;$i<6;$i++) {
$color = imagecolorallocate($this->img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156));
imageline($this->img,mt_rand(0,$this->width),mt_rand(0,$this->height),mt_rand(0,$this->width),mt_rand(0,$this->height),$color);
}
//雪花
for ($i=0;$i<100;$i++) {
$color = imagecolorallocate($this->img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
imagestring($this->img,mt_rand(1,5),mt_rand(0,$this->width),mt_rand(0,$this->height),'*',$color);
}
}
//输出
private function outPut() {
header('Content-type:image/png');
imagepng($this->img);
imagedestroy($this->img);
}
//对外生成
public function doimg() {
$this->createBg();
$this->createCode();
$this->createLine();
$this->createFont();
$this->outPut();
}
//获取验证码
public function getCode() {
return strtolower($this->code);
}
}
?>

登陆页面的代码如下:

<?php
session_start();
session_destroy();

?>
<html>
<head>
<title>高考成绩查询系统</title>
<style type="text/css">
#login p{
margin-top: 15px;
line-height: 20px;
font-size: 14px;
font-weight: bold;
}

body {
    background-color: #0d3b5d;
    margin: 0;
    padding: 0;
    font: Arial, Helvetica, sans-serif;
    text-align:center;
    text-align-last: center;
    font-size:20px;
}
#login img{
cursor:pointer;
}
form{
margin-left:20px;
}
</style>
</head> 
<body> 

<form id="login" action="" method="post">
<p>高考成绩查询系统</p>
<p>
    <span>账号:</span>
    <input type="text" name="account" value="" size=15> <br/>
    <br/>
    <span>密码:</span>

    <input type="text" name="password" value="" size=15> <br/>

<br/>
    <span>验证码:</span>
<input type="text" name="validate" value="" size=10> 
<img  title="点击刷新" src="./captcha.php" align="absbottom" onclick="this.src='captcha.php?'+Math.random();"></img>
</p>
<p>
<input type="submit">
</p>
</form>
</body>
<?php
//打印上一个session;
//echo "上一个session:<b>".$_SESSION["authnum_session"]."</b><br>";
$validate="";
/*&&isset($_POST["account"])&&isset($_POST["password"])*/
if(isset($_POST["validate"])){
$validate=$_POST["validate"];
if($validate!=$_SESSION["authnum_session"]){
//判断session值与用户输入的验证码是否一致;
echo "<font color=red>验证码错误</font>";

}else{
    require_once 'LinkDatabase.php';
    $sql = mysql_query("select * from Myuser ", $connID);

        while( $result = mysql_fetch_array($sql))
        {

            if($_POST['account']==$result['uname']&&$_POST['password']==$result['upass'])
            {
                include "SecondView.html";
                echo "登陆成功";
                header("location:SecondView.html");
            }


    }

}
}
?>

当用户账号密码与MySql数据库进行匹配成功的时候,会调用header("location:SecondView.html");方法,将跳转到名字为SecondView.html的主页中。

附录

实例点击代码下载

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《阿里云栖开发者沙龙PHP技术专场-深入浅出网络编程与swoole内核-吴镇宇》电子版地址
阿里云栖开发者沙龙PHP技术专场-深入浅出网络编程与swoole内核-吴镇宇
0 0
阿里云栖开发者沙龙PHP技术专场-直面PHP微服务架构挑战-高驰涛
阿里云栖开发者沙龙PHP技术专场-直面PHP微服务架构挑战-高驰涛
0 0
《阿里云栖开发者沙龙PHP技术专场-RabbitMQ 的延时队列和镜像队列原理与实战-钱文品》电子版地址
阿里云栖开发者沙龙PHP技术专场-RabbitMQ 的延时队列和镜像队列原理与实战-钱文品
0 0
《阿里云栖开发者沙龙PHP技术专场-聊聊服务稳定性保障这些事-信海龙》电子版地址
阿里云栖开发者沙龙PHP技术专场-聊聊服务稳定性保障这些事-信海龙
0 0
2022 开发者调查报告:Rust 语言、Phoenix 框架最受欢迎|PHP 薪酬倒数
2022 开发者调查报告:Rust 语言、Phoenix 框架最受欢迎|PHP 薪酬倒数
0 0
2022 软件工程师状况报告:Go 最抢手|开发者最“嫌弃” PHP、Swift、Scala/R/Objective-C
2022 软件工程师状况报告:Go 最抢手|开发者最“嫌弃” PHP、Swift、Scala/R/Objective-C
0 0
PHP 开发者应了解的 24 个库
作为一个PHP开发者,现在是一个令人激动的时刻。每天有许许多多有用的库分发出来,在 Github 上很容易发现和使用这些库。下面是我曾经遇到过最酷的24个库。你最喜欢的库没有在这个列表里面?那就在评论中分享吧!
0 0
PHP 开发者该知道的 5 个 Composer 小技巧
Composer是新一代的PHP依赖管理工具。其介绍和基本用法可以看这篇《Composer PHP依赖管理的新时代》。本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方便。
0 0
如何成为专业的PHP开发者
对于初学者来说,PHP之道是一个非常有用的资源,提供及时的指引。通过此书,你可以熟悉最新的最佳实践,面向对象的基本概念,安全,部署,代码标准,等等。
0 0
阿里云栖开发者沙龙PHP技术专场-静态扫描为你的PHP项目上线保驾护航
摘要:在4月20日的阿里云栖开发者沙龙PHP技术专场上,阿里云资深研发工程师周梦康(楚松)为大家分享了如何借助静态扫描来为我们的PHP项目上线保驾护航,他从Why、How和What三个角度为大家分享了静态扫描的落地实践和最终成果。
964 0
+关注
xinxinitblog
C++和iOS码农
文章
问答
文章排行榜
最热
最新
相关电子书
更多
阿里云栖开发者沙龙PHP技术专场-RabbitMQ 的延时队列和镜像队列原理与实战-钱文品
立即下载
阿里云栖开发者沙龙PHP技术专场-聊聊服务稳定性保障这些事-信海龙
立即下载
阿里云栖开发者沙龙PHP技术专场-静态扫描为你的项目上线保驾护航-周梦康
立即下载