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的主页中。

附录

实例点击代码下载

时间: 2024-08-04 14:45:15

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

网站登录页面,验证码的一个生成方法

验证码|页面 //生成随机数函数中从strchar 数组中随机抽取//字母区分大小写//参数n为生成随机数的位数,一般取四位public string RandomNum(int n) //{ string strchar = "0,1,2,3,4,5,6,7,8,9" ; string[] VcArray = strchar.Split(',') ; string  VNum = "" ;//由于字符串很短,就不用StringBuilder了 int temp =

.net开发网站登录页面,调试之后无法登录

问题描述 请大神看看是什么原因,附后台代码:usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI

Flash如何成为一个合法的iOS开发者

  iOS开发者的申请流程 如果你是一个开发团队,在你打算掏腰包购买iOS开发者授权之前,最好先问一下你的同事,是否已经有人获得了开发许可,因为一个开发许可一年内最多可以授权给111个设备来开发测试.如果你没有授权许可可以借用,或者你打算最终在iTunes Store中以自己的名义发布你的应用,那么就准备一张国际信用卡,准备支付99美元来申请一个iOS开发者授权. 点击下面链接进入Apple Developer Center http://developer.apple.com/ 点击页面左边中

iOS 开发者一定要知道的 14 个知识点

本文讲的是iOS 开发者一定要知道的 14 个知识点, 作为一个 iOS 开发者(现在对 Swift 中毒颇深 ).我从零开始创建应用.维护应用,并且在很多团队待过.在我的职业生涯中,一句话一直响彻耳边:"如果你不能解释一件事情,那你根本就不理解它." 所以为了充分的理解我每天的日常,我创建了一个清单,在我看来,它适合任何 iOS 开发者.我会试着清晰的解释每一个观点.[请随时纠正我,提出你的意见,或者干脆也来一发你觉得应该在列表上的"必须知道"的知识] Topic

Bob,我要怎样才能成为一名 iOS 开发者

本文讲的是Bob,我要怎样才能成为一名 iOS 开发者, iOS 开发虽不易,但别怕尽管上就是了. 然而这并不是我的桌面 自我驱动 我经常收到类似的邮件跟私信, "Bob,我怎样才能成为一个超酷的开发者?" "Bob,我想转行了.我好喜欢你的文章跟视频.我要怎样才能成为一个 iOS 开发者呢?" "Bob,我不知道应该如何开始学.而且我之前也从来没写过代码,你能帮帮我吗?" 好啦我知道啦.但我会实话实说.我尽量去回答这些一般问题.我叫这种问题叫做

[Js插件]使用JqueryUI的弹出框做一个“炫”的登录页面

引言 查看项目代码的时候,发现项目中用到JqueryUi的弹出框,可拖拽,可设置模式对话框,就想着使用它弄一个登录页面. 弹出框 在Jquery Ui官网可定制下载弹出框,下载和弹出框下载相关的js文件,css文件. 官方网站:http://jqueryui.com/ 项目结构:   Login.html 引入文件: 1 <link href="Scripts/css/redmond/jquery-ui-1.10.4.custom.css" rel="styleshee

java-在Android中写一个浏览器,加载一个登录页面如何获取用户名和密码框

问题描述 在Android中写一个浏览器,加载一个登录页面如何获取用户名和密码框 在Android中写一个浏览器,记住密码功能怎么写?大神,请指教. 解决方案 webview加载你的登录页面,登录完了后取cookie或其他认证信息(这个和你登录的网站是如何设计的有关) 解决方案二: 用webview 啊 解决方案三: 用sharedpreference来保存密码或者是账号 解决方案四: 这两个输入框是浏览器的还是网页的?

打开一个页面要是没有cookies,会自动跳转到登录页面

问题描述 打开一个页面要是没有cookies,会自动跳转到登录页面 我做个网站,想要通过cookie实现登录.如果复制该网址在浏览器中打开的时候会自动跳转到login页面,怎么写 解决方案 cookie不能跨浏览器共享,标签式浏览器,你在一个标签登录保存cookie后,其他标签都会共享cookie,你要判断直接输入的地址不允许访问自己加个来源判断,不允许为空,要不cookie是存在肯定可以访问你页面的 解决方案二: 你用什么技术做的网站呢?jQuery提供了cookie插件 jquery.coo

c#网站发布后,用IE打开登录页面,点击登录没反应,用火狐和谷歌都好用

问题描述 c#网站发布后,用IE打开登录页面,点击登录没反应,用火狐和谷歌都好用 解决方案 解决方案二:那个大神帮着看看解决方案三:什么版本的IE估计是js有错误你把调试打开ie6789最容易出现这种问题解决方案四:点击登录时总是提示说_doPostBack没有定义,但是其他浏览器都好用解决方案五:用IE兼容模式看看,这个貌似在IE10下面是有兼容性问题的解决方案六:在兼容模式下好用了,但是页面就完全变了啊解决方案七:你提交的页面中,至少有一个服务端控件的autopostback=true,as