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

news/2024/5/20 12:28:42/文章来源:https://blog.csdn.net/weixin_34194551/article/details/90223874

前言

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

本人的看法是在这个技术日新月异的时代,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的主页中。

附录

实例点击代码下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_717507.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站分析参数(实例分析)SimilarWeb插件参数

网站分析参数&#xff08;实例分析&#xff09;SimilarWeb插件参数 那么这些指标是什么意思呢&#xff1f; SimilarWeb Rank&#xff1a;类似网站排名Global Rank&#xff1a;全球网站排名第三栏一般是类别&#xff0c;大概网站从事范围&#xff0c;比如进入知乎就是Internet a…

redis应用场景(1)一个文字投票网站

构建一个文章投票网站&#xff0c;一般具备下面几个功能发布文章文章投票评分&#xff08;按投票多少进行评分&#xff09;文章排序&#xff08;按发布时间&#xff0c;按评分高低&#xff09;文章分组&#xff08;如专题&#xff09;...1.关系型数据库设计其中用户&#xff0c…

Google Analytics SEO 实时 网站 访问量 统计

/**************************************************************************** Google Analytics SEO 实时 网站 访问量 统计* 说明&#xff1a;* 之前一直在想要怎么才能让aplexos.com域名网站能够统计访问量&#xff0c;网站是使用* github.io搭建&…

URLOS实战入门—制作LAP网站环境

1、制作LAP镜像 1.1.使用ssh登录宿主机器&#xff0c;创建Dockerfiel文件并填充以下内容 FROM php:7.2.16-apache-stretch ENV TIME_ZONE Asiz/Shanghai RUN sed -i s~//.*.debian.org~//mirrors.aliyun.com~ /etc/apt/sources.list \ && apt-get update \ && …

【网站优化实例教程】怎样运用分类信息网做网站优化【网优谷经验】

什么叫归类网络信息的营销推广&#xff1f;知道58个市和甘吉网知道什么叫分类信息网。 分类信息网现阶段其实早已被赶集网、58同城网那样的超大型网址垄断性&#xff0c;可是对于地区的分类信息网&#xff0c;還是有做头的。运用冷门行业的分类信息网开展提升&#xff0c;运用社…

分享12个非常好的免费矢量资源网站(转)

http://www.cnblogs.com/lhb25/archive/2011/04/08/2003802.html 在工作中&#xff0c;Web设计师经常需要到网上查找一些免费资源以更快更好的完成设计任务。这些资源都是到用时方恨少啊&#xff0c;所以今天本文与大家分享12个非常好的免费矢量资源网站&#xff0c;大家可收藏…

一个优秀的响应式网站能够给你带来什么?

网站作为你在互联网上的“门面”&#xff0c;这个脸一个要争&#xff01;那该怎么样才能把自己在互联网的”脸面”整理的漂漂亮亮呢&#xff1f;打造一个优质的网站&#xff0c;不但让你“长脸”&#xff0c;还能让用户认得你&#xff0c;爱上你。提起优质的网站&#xff0c;说…

支付宝接口开发-手机网站支付-沙箱测试

前面一段时间&#xff0c;因为公司业务需求&#xff0c;需要使用支付宝的手机网站支付接口&#xff0c;因为自己也是第一次使用这个&#xff0c;中间走了不少弯路&#xff0c;现在总结一下&#xff0c;希望对遇到同样问题的朋友有帮助。 第一步&#xff1a;登录蚂蚁金服开放平台…

互联网安全和数据挖掘网站

检测、踩点网站&#xff1a;https://www.netcraft.com/ 转载于:https://www.cnblogs.com/ZQWelcomeIndex/p/11442145.html

为程序员准备的7个国外社交网站

本文主要分享了国外的7个社交网站&#xff0c;为开发人员和设计师提供一个新兴的地方&#xff0c;技术分享&#xff0c;代码分享&#xff0c;开发建议以及一些有趣的产品和最新的趣文。 -- 前言 Forrst Forrest是为开发人员和设计师提供的一个新兴的地方&#xff0c;在这里可…

KNN算法应用(约会网站数据分析手写数字图片识别)(一)

KNN算法应用&#xff08;约会网站数据分析&手写数字图片识别&#xff09;&#xff08;一&#xff09; KNN应用例子&#xff1a;使用K-近邻算法改进约会网站的配对效果。 &#xff08;github&#xff1a;https://github.com/suferyang/KNN/tree/master/KNN&#xff09; 数据…

Strace诊断CPU跑高问题(java/php网站)

早些年&#xff0c;如果你知道有个 strace 命令&#xff0c;就很牛了&#xff0c;而现在大家基本都知道 strace 了&#xff0c;如果你遇到性能问题求助别人&#xff0c;十有八九会建议你用 strace 挂上去看看&#xff0c;不过当你挂上去了&#xff0c;看着满屏翻滚的字符&#…

一个300多万人玩的闯关趣味Python网站 !

如今Python在编程语言的世界里&#xff0c;已经具有举足轻重的地位&#xff0c;而今年&#xff0c;算是Python语言的30岁的生日。没错&#xff0c;从1989年&#xff0c;Python之父Guido开始写Python语言的编译/解释器&#xff0c;到今天&#xff0c;已经是第三十年。 随着Pyth…

个人网站搭建时linux中的相关配置记录(mysql,jdk,nginx,redis)

一、开发计划&#xff08;包括准备工作&#xff0c;网站大致需求等&#xff09; 二、服务器&#xff08;linux/centos&#xff09;购买、相应环境配置(jdk)&#xff0c;软件安装(mysql, nginx, redis)、域名解析 三、原型图、代码开发&#xff08;vue.js,  springboot&#x…

给大家介绍一款反爬教科书级别的网站!爬下这个网站就是大牛了!

具体的数据如下 查看页面源代码发现&#xff0c;一个好玩的事情&#xff0c;源代码中使用了大量的CSS3的语法 下图&#xff0c;我标注的部分就是关键的一些数据了&#xff0c;大概在600行之后。 反爬措施展示 源文件数据 刹车/<span classhs_kw86_baikeIl></span&g…

使用Django搭建个人博客网站

创建项目 首先要在命令行创建Django项目&#xff1a; $ django-admin startproject my_blog 初始化设置 在my_blog/my_blog/setting.py中修改下面几个选项&#xff1a; 添加等待要创建的应用&#xff1a; 创建应用 现在来创建博客应用进入刚刚创建的my_blog项目后执行&#xff…

dva开发一个cnode网站(1)

dva 首先是一个基于 redux 和 redux-saga 的数据流方案&#xff0c;然后为了简化开发体验&#xff0c;dva 还额外内置了 react-router 和 fetch&#xff0c;所以也可以理解为一个轻量级的应用框架。本教程是利用cnode的开放api来做一个一样的网站&#xff0c;以此来学习dva框架…

jq点击事件多次响应_营销型网站建设与响应式网站建设有什么区别?

除专业人士&#xff0c;普遍人对网站的种类区分概念都是很模糊的&#xff0c;只想着我想做一个网站&#xff0c;或是我想做一个很炫的网站&#xff0c;再或是我想做个网站帮助提高公司业绩。然而网站本身并没有区别&#xff0c;无论是标准型网站、营销型网站或是品牌型网站&…

前嗅ForeSpider教程:同一个网站中从另一页面采集数据

2019独角兽企业重金招聘Python工程师标准>>> 以图中网站的企业动态部分为入口地址&#xff0c;来展示如何在同一个网站从另一页面采集相关数据。 第一步&#xff1a;新建任务 ①点击左上角“加号”新建任务&#xff0c;如图1&#xff1a; 【图1】 ②在弹窗里填写采集…

web服务之Nginx网站服务

目录一、关于Nginx二、编译安装Nginx服务1、关闭防火墙2、安装依赖包3、创建运行用户、组4、编译安装Nginx5、检查、启动、重启、停止 nginx服务三、认识Nginx服务的主配置文件 nginx.conf1、编辑主配置文件2、全局配置3、HTTP 配置一、关于Nginx 一款高性能、轻量级Web服务软…