Intel 8086 处理器 40 周年 —— 从 8086K 看 Intel 处理器性能提升

1978 年 Intel 推出 8086 系列处理器,开创了通用、高效的 x86 架构,一直沿用到现在,直接推动了个人电脑和整个计算机行业的发展。没错,就是下图这不起眼的小芯片。

40年之后,全新的 Core i7 – 8086K 诞生。作为一款 40 周年纪念处理器,相比于 8086 ,它的制程工艺、晶体管规模、时钟频率等等,都高了不知道多少倍,性能的提升更加恐怖;同时, i7 – 8086K 还是 Intel 历史上首款主频高达  5.0GHz 的处理器。

它变成了我们熟悉的样子。


包装盒内附了认证证书和 Intel CEO 的签名信,信仰满满:

接下来进入实际测试。

经过适当的调教,我让手头的这颗 8086K 跑在了全核 5.0GHz ,电压1.269V,温度 91 度(蓝天 P750DM2-G 原装散热模组) 。(CPU-Z 验证链接)

(这张是另外一次验证,为了让主频比下面的 4690K 高 233333 ,可惜因为温度压不住没跑到全核 5GHz )

对比手上的另一颗处理器 i5 – 4690K ,5.0GHz 频率下需要高达 1.429V 电压,温度同样高达 92 度(采用九州风神大霜塔散热器)。(CPU-Z 验证链接)

注意!这里的 8086K 可以通过 AIDA64 、 Intel XTU 、 Prime95 测试,而 4690K 仅仅限于亮机过认证,跑测试一定会过热降频。

8086K 处理器的体质普遍不错,1.2V 出头跑全核 5GHz 亮机是问题不大,但是想跑过测试还是要在 1.3V 附近找到合适的电压。

而我手上的这颗 4690K ,根据 PCeva 论坛 Royalk 大大给出的体质数据来看,体质是非常优秀了的(在 1.200V 双 4.6GHz 跑过测试,CPU-Z 验证链接),却还是被 8086K 拉开了很大的距离,不论是日常可用频率、温度控制还是功耗控制。

所以在制程和架构的双重进步下, Intel 处理器的效能提升还是非常迅速和明显的。

摩尔定律虽然还“没有失效”,但半导体制程提升的步伐已经相当缓慢。

让我们期待未来处理器的表现吧。

解决 Adobe Premiere Pro CC 2018 在 Windows 10 平台的卡死问题

Adobe 全家桶啥都好,就是本地化做得不太行。

之前在做个人向守望先锋集锦的时候,我的 Pr 不知道崩了多少次,每次都在导入媒体、输入时间之类的地方死掉。后来百度了一下,说是和 Win10 自带的输入法不兼容,要卸载掉换其他中文输入法才行。

可作为计科专业的男人,怎能轻易妥协低头(滑稽)?仔细研究了一下,每次在带有输入框的地方都会卡死,看来果然是输入法问题。

那不就是输入法不兼容,我切成英文输入法不就完事了?

按下 Shift + Alt 键(实际根据你系统的设定而定)切换到英文输入法(如图)

就完全搞定咯。

根本不需要卸载自带输入法!

根本不需要卸载自带输入法!

根本不需要卸载自带输入法!

完美,以后打开 Pr 之前记得切一下输入法就好。

什么?你要在 Pr 里输入中文?

那就还是装一个别的输入法吧……

【守望先锋】这三分半全是叮叮叮!黑百合 & 半藏个人向集锦

 

个人向的一个集锦,我就是卡节拍怪!

所有素材都是我自己打的,虽然换了好几个号。

希望大家多多支持鸭!

视频地址:https://www.bilibili.com/video/av32646555/

蓝天 P750DM2-G 升级支持 8 代 CPU 刷 BIOS 教程

再次感谢准系统吧各大佬的付出!

BIOS 作者 dsanke 原帖及 BIOS 下载地址:点击打开

本教程仅作为 dsanke 提供教程的补充,一些操作细节和常见问题请自行参考!

需要准备的内容:可 UEFI 引导、文件系统为 FAT32 的 U 盘(请自行寻找制作方法,较为简单,不再赘述),编程器(避免意外),待刷入的 BIOS 文件及刷入工具。

接下来就是刷入步骤。

刷入工具为一个 EFI 文件夹,将它整体放入制作好的引导 U 盘的根目录,然后将 BIOS 文件改名为 BIOS.BIN (不区分大小写,注意扩展名)放入 /EFI/BOOT 文件夹。

关闭电脑,拔掉电源,拆下电池,然后拔除所有硬盘。

插上电源、电池和 U 盘,开机。

由于已经拔除了所有可引导设备,所以系统会自动从 U 盘启动,进入 EFI Shell 。

在出现命令行之前(即下图最下面一行),不要按任何按键!

接着输入 U1 然后按下回车,以暂时禁用 ME、解除 BIOS 刷写保护。

这时电脑会自动重启,然后进入强冷模式;此次启动可能需要较长时间,所以看到黑屏不要惊慌,等一会儿即可再次进入 EFI Shell 界面。

接着输入 B1 并回车备份原来的 BIOS 文件,看到绿色的 “FPT Operation Successful” 即备份成功。备份文件在 U 盘 /EFI/Boot/BACKUP.BIN。

接着输入 B3 并回车来备份 MSDM 表(可能不存在),可以看到下图中我就没有 MSDM 表。这问题不大,主要原因是 Win10 的激活方式不同。

执行完毕之后,输入 F1 并回车来刷写整个 BIOS、ME ,然后输入 F3 并回车恢复 MSDM 表 (若备份时不存在,则此处回车将没有任何提示)。

只要看到绿色的 “FPT Operation Successful” 即为刷写成功。所有步骤完成之后,输入 R 回车恢复 ME 状态并重新上 BIOS 锁,之后会自动重启。

本次重启将会持续很长时间,不必担心,这是正常现象。一段时间后,屏幕将会出现以下几条提示信息,提示 BIOS 已被刷新并载入预设设置,按回车即可。

若等待一段时间后电脑自动重启并持续黑屏,则代表 BIOS 有问题,需要用编程器刷入。

到这里刷写工作就全部完成了,长按电源键关机,插入硬盘即可正常启动。

由于海淘的 i7 – 8086K 暂未到货,关于更换 CPU 的细节,下次再写咯。

来一张超频内存的截图, 威刚 XPG DDR4 2400 CL15 ( Spectek 颗粒),加压到 1.35V 之后,在 G4600 下,最高能来到 DDR4 2666 12-14-14-35-2T。这个时序可以通过自检,但无法正常启动 Win10. 能够正常启动 Win10 的时序为 12-15-15-34-2T,可以正常跑 After Effects、Premiere Pro、Media Encoder、Photoshop 等软件,但运行守望先锋的时候会崩溃,跑 MemTest 同样会很快报错。传说动一下 tRFC 会对提升稳定性有很大帮助,但求稳起见我还是调成了 13-15-15-34-2T。等 8086K 到货我再尝试冲一波频率和时序,看看到底是内存体质到头了还是奔腾 G4600 的 IMC 体质问题。

漫谈 · 说说淘宝客服态度对购买决定的影响

先说说起因。

比较爱好摄影,但是去到柯达冲印店冲印的照片质量就像薛定谔的猫一样,有时候很好,有时又很差。于是就打算自己在家喷墨输出。

说点题外话,喷墨输出有几个关键因素:打印机性能、墨水数量、墨水种类、纸张质量、纸张与墨水匹配度、色彩准确度。前几个都好说,一分钱一分货。重点就是最后一个:色彩准确度。一套完善的数字喷墨输出系统需要在照相机端、显示器端、打印机端进行一致的色彩校准,这样才能令色彩准确而统一,不会出现色差。色彩管理又是一个很大的命题,在这儿就不谈了。

问题就出在校色这里。淘宝其实有做专业校色的,卖家会让你打印指定的色靶,然后邮寄过去,用专业仪器读取,生成对应的色彩管理配置文件(即 icc )。我联系到一家比较专业的店,我随便发了几张打印的照片给他,说明要求,卖家很直截了当就告诉我问题出在墨水上,建议我换墨水,否则花钱校色治标不治本,浪费钱,然后很耐心地解答我的问题,还告诉我什么样的墨水比较好。说实话,这是我第一次在淘宝被“拒售”,但却非常感谢这位卖家,不仅为我解答了很多问题,还让我避免了一次不必要的花费,即使他会少赚一笔钱,还占用了他不少时间。

继续找其他校色方案,发现了一种用标准色靶 + 打印机打印色靶 的方案,即用标准色靶校准普通扫描仪输入的图像,然后利用打印的色靶校准打印机输出的色彩。卖这种标准色卡的卖家,不多不少,就两家,价格、销量、评价、信用还都差不多。先问第一家,简单问了两三个问题,卖家没变过一个字,统一用“这个不能保证”来回复我。那没啥好说的,我也不能保证购买,换一家就是了。同样的三个问题,卖家很仔细地回答,并给我一些参考链接供我参考。那同样也没啥好说的,买就完事了。

服务态度决定一切,真的。

从零开始写一个 PHP 站 (3) —— 密码的加密处理

5.密码加密处理

事实上,在前面的代码中,很容易就会发现一个大问题:密码是以明文保存的。显然这是一种极其不安全,也是极其不负责任的一种做法。所以我们需要在之前的代码中做出一定的修改,让密码不再以明文形式储存。如此一来,用户的密码明文将只有用户知道,这也是符合规范的。

(1)认识 PHP crypt() 函数

学习一个 PHP 函数最好的方法可能就是先看一看 W3School 了。虽然可能有些晦涩难懂,上面的表达也不是非常清晰,不过对于一个函数的工作方式的了解,还是很有用处的。

点击跳转到 W3School 页面

注意:不要使用标准DES加密算法,因其最大加密长度为8位,超过8位的密码加密结果将完全相同!同时切勿将加密循环次数设置过大,否则会使PHP线程过长时间运行,网页无法正常加载。

crypt() 函数的用法相当简单,重点讲一下盐值的问题。

指定不同加密算法的方式是设置相应的盐值前缀。每种加密算法对盐值的要求都不同,请根据具体加密算法要求设置符合要求的盐值( W3School 中非常详细)。盐值可以用变量拼凑,也可指定为固定字符串,但必须确保盐值始终已知,以免后期无法进行密码比对。

PHP 拼凑变量的方法比较简单,将不同变量用“.”分隔即可,就像下面这样:

1
$salt = "$name.$password"

假设 name 变量的值为 1 , password 变量的值为 2 ,那么 salt 变量在拼凑之后的值就是 12 .

(2)应用加密

应用加密说白了就是把原本保存明文密码的地方设置上加密函数而已。以下代码建立在已经设置好 salt 变量的基础上。盐值是作为 crypt() 函数的一个参数存在的,加进去就好。

1
$password=crypt(trim($_POST["password"]).$name, $salt);

这里面其实包含了一个小技巧:加密的字符串不是单纯的密码,而是密码和用户名拼凑出的新字符串。这样的好处是,即使加密后的字符串遭到破解,解密结果也不是密码。
其实在盐值里面混入用户名,使每个用户都有独立的盐值,会大大增加安全性——就算被拖库,也还需要挨个破解密码。
至于用密码做盐值加密密码的问题,我不是密码学的,所以并不知道会更安全还是更危险……
密码加密就到这儿了,下次写啥忘记了(等我回去看看便笺)

蓝天准系统 P750DM2-G 升级 4K 屏记

高端准系统的一大好处,就是各元件随便换。

不论是台式机还是笔记本,这么多年来,一直在用 6-bit TN 面板的显示器,最多也就是个 6-bit + FRC 的假 8-bit TN 面板,眼睛可以说是一直受到“摧残”了。

上大学,入准系统的时候,配了一块 72% NTSC 120Hz 刷新率的所谓“电竞屏”(型号为友达 B156HTN05.2 ),到手体验倒还不错,尤其是高刷新率带来的顺畅感的确够惊艳,即便是 6-bit TN 面板,由于 72% NTSC 色域的加持,效果在一众笔记本屏幕中,也算出色。

可是追求广色域的梦还在啊。

一次在网上瞎逛,意外发现一块来自夏普的原生 8-bit 4K 分辨率 IGZO IPS面板(型号 LQ156D1JW02 ,即SHP1430,实际到手为 LQ156D1JW02B/A01,即SHP1445 ),色域更是达到了 100% Adobe RGB 级别。谷歌一查,这面板专供惠普和戴尔的工作站笔记本,并且显示效果十分出色(毕竟这级别的工作站都配硬件校色,笑)。没啥犹豫的,当时就决定买了。

 

接下来就说怎么换屏咯。由于上面提到的两款屏幕接口不同,所以屏线也需要换。

重要提醒:拆机换屏不难,换屏线非常难,强烈建议动手能力不是特别强的朋友不要尝试换屏线,仅更换和原屏幕接口相同的屏幕即可(直接从第五步开始看),否则极易损坏笔记本!

所以我就不放拆屏线部分的照片了(其实是忘记拍)。

一、准备工作

电脑关机,拔出所有设备和线,拿出电池。

准备好匹配的螺丝刀和塑料撬片。

将电脑反扣在桌子上。

 

二、拆机

 

1.拆快装板

屏幕合上,电脑扣过来,将主快装板和硬盘仓快装板拆下,露出散热模组、四个硬盘位、两个内存位。(硬盘、内存无需拆下)

2.卸下C面固定螺丝

所有用于固定C面的螺丝尺寸和快装板的螺丝尺寸一样,其他尺寸的螺丝无需卸下,散热模组的螺丝也不急着卸。

一个技巧:先沿着机器边缘找,可以开手电筒,注意一些比较隐蔽位置的螺丝;再找两个快装板中间的隔断部分,也会有几个;最后找散热模组之上的(包括固定风扇的,但不包括用于固定散热模组的)。这一部分螺丝一共有27个。(注意将不同步骤卸下的螺丝分类!)

搞定上面27个螺丝之后,接着来拆散热模组。

散热模组由9个螺丝固定,CPU四个,GPU四个,下部中间一个,注意这部分螺丝拆装的时候要轻要慢,否则极易滑丝,可就不好办了。螺丝卸下后,稍稍扭动一下散热模组,解除硅脂的粘力,然后整个垂直提起即可。

拆下散热模组后,可以在两个出风口附近分别找到1个黑色螺丝,将其卸下。

此时C面已经可以整体拿起。

到这儿建议将快装板装回去,以便于将笔记本重新正面放置,但没必要上快装板的螺丝。

3.拆键盘

比较简单,将笔记本正向放置后,从左上开始,仔细看就可以看到半圆形的弹性卡扣,轻轻撬开即可,右上部分有强磁铁吸附键盘,所以将卡扣撬开后,稍用下力将键盘上半部分整个提起,然后将两根排线小心拔出(排线有平行卡扣,一白一黑,一上一下),最后将键盘从底部固定槽拔出即可。

4.拆下C面

打开盖子,将左侧无线网卡处的两根排线、中上部电源按钮排线和喇叭排线、右下部电源指示灯排线,以及其他所有和C面有连接的排线小心拔出,注意所有排线都是有卡扣的。

然后就可以从一个合适的地方开始,把C面撬下来了。一般从喇叭后面的位置比较好下手。撬完一圈C面自然会脱开。

5.拆开B面

转轴处的两个黑色方块,实际上是两片黑色贴纸,揭下来之后就可以看到两颗螺丝。

然后用撬片就可以把B面从这里开始撬开。

下面的卡扣可能不太好撬,其实撬完左、上、右之后,稍微用力掰一下,就可以打开下面部分的卡扣了。

B面拿下之后的样子。

6.拆屏幕

沿着屏幕边缘找一下固定屏幕的螺丝,最多四个,有部分可能藏在贴纸下,这时候把贴纸揭开就可以了。卸螺丝的时候扶好屏幕,防止屏幕一下子掉落损坏屏幕本身和屏线。

如果固定屏幕的孔位被屏轴压住,可以先把固定屏轴的顶部和侧面螺丝卸下,底部固定螺丝不用卸下。

7.断开屏线

将屏幕轻轻扣在C面上(如果C面已经拆下,就垫一层纸壳再将屏幕扣在纸壳上),注意不要拉扯到屏线。

屏线一般贴在了屏幕背板上,将它轻轻揭下。

这就是屏线接口了,将它轻轻拔出。

然后就可以拿下屏幕了。

8.更换屏线

找到屏线穿过的对应屏轴,卸下内侧的几个螺丝,然后按压A面使其稍稍变形,从屏轴和A面壳的缝隙中把屏线拿出。

顺着线找到主板上的EDP接口,是垂直按压安装的,所以垂直拔起即可(屏线上一般有便于拔起的带子)

拔出后就可以看到EDP插槽了。

将新的屏线按照原样装回去,就完成了屏线的更换。

三、安装和调试

9.安装C面

屏线的安装一般不会出问题,所以先把C面安装回去便于测试屏幕。这个不难,梳理好排线,将C面卡扣全部卡上即可,然后重新连接排线并把锁扣扣上,键盘也可以装回去了。

然后D面朝上,把会被散热模组挡住的两个螺丝拧回去,再把散热模组也安装回去,风扇重新固定好,准备通电测试。

10.安装屏幕并测试

先把新的屏幕和屏线连接起来,注意一定要把插口插到位,不要着急安装。

确定连接好后,还是把屏幕扣在C面上,插上电源,开机,如果屏幕正常显示,就说明一切正常,然后关机,拔电源,准备把屏幕安装回去。

把屏线的胶条保护膜揭开,对应位置贴到屏幕背面,注意不要让屏线变形或受力,然后把两边屏轴的顶部和侧面螺丝全部卸下,将屏幕定位孔压到屏轴之下,能套定位柱的孔位套定位柱,没有定位柱的地方一般都可以上螺丝,别忘了把撕下来的贴纸贴回去。

屏幕固定好之后,把屏轴螺丝也拧回去,插电开机测试(可以省略),如果正常,就把B面安装回去,边扣卡扣边注意是否会压到屏幕导致变形,如果完全没问题,就把两个固定螺丝上好,贴纸封住,关机拔电,把剩下的螺丝全部上好拧紧,装上电池,享受新屏幕咯。

来看看效果:

广色域还是帅的呀。

一点彩蛋:

Clevo P750DM2-G 音频模块特写。

从零开始写一个 PHP 站 (2) —— 实现注册功能

注册相比于登录,复杂的地方在于后端 PHP 需要对用户输入的内容进行比对,并给出相应的提示,以及大量的数据库操作。
数据库端已经处理完毕,所以直接开始写前后端就可以。

3.注册前端编写

还是老样子,直接上代码,要说明的就标注在注释里咯。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    <!doctype html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
            <meta http-equiv="X-UA-Compatible" content="IE=edge">
            <title>注册</title>
        </head>
        <body>
            <form id="form1" method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>">
                <input name="username" type="text" placeholder="输入用户名">
                <input name="password" type="password" placeholder="输入密码">
                <input name="password2" type="password" placeholder="确认密码">
                <button id="submit1" type="submit" name="submit">注册</button>
            </form>
        </body>
    </html>

只需要特别提示一点,两个密码输入框的名称一定要分开,其他的,参考登录就好。

4.注册后端编写

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
    <?php
        $link=mysqli_connect("localhost","mao","wKVhtz#9CsaO8&qn","mao");//连接到数据库
        if ($link)//判断连接是否成功
        {  
            if(isset($_POST["submit"]))//判断是否有数据提交
            {
                $name=trim($_POST["username"]);// trim 函数用于去除掉不必要的空格
                $password1=trim($_POST["password"]);
                $password2=trim($_POST["password2"]);
                if($password1==$password2)//确认密码是否正确
                {
                    mysqli_query($link,'SET NAMES UTF8');
                    $stmt1=mysqli_prepare($link, "SELECT count(*) FROM users WHERE name=?");
                    $stmt1->bind_param('s', $name);
                    $stmt1->execute();
                    $stmt1->bind_result($pa);
                    $stmt1->fetch();
                    $stmt1->close();
                    if($pa==1)//判断数据库表中是否已存在该用户名
                    {
                        echo '该用户名已被注册。';
                    }
                    else
                    {
                        $regtime=date("Y-m-d H:i:s", time());
                        mysqli_query($link,'SET NAMES UTF8');
                        $stmt2=mysqli_prepare($link, "INSERT INTO users (name, password) VALUES(?, ?)");
                        $stmt2->bind_param('ss', $name, $password2);
                        $stmt2->execute();
                        $stmt2->close();
                    }
                }
                else
                {
                    echo '两次输入的密码不一致。';
                }
            }
        }
    ?>

可以看到有多重条件判断嵌套,这也是写注册后端的难点之一了。
第二个难点,其实就是由于需要插入 SQL 表中的数据比较多,所以 SQL 语句不太好构造,尤其是对于 mysqli_prepare 这种变量和语句分离的函数。
注释也没有太多,该有的在登录的代码中都有了,参考一下即可。

同样的,这段后端代码插入到前端代码的 body 标签即可正常被调用执行。
我还是要再次嘱咐:
学学 PHP MySQLi 函数吧, PHP MySQL 函数由于太容易有注入漏洞,而且语法不够友好,已经被 PHP 官方弃用!

下一期会介绍怎么把密码加密,以及加入Email验证的方法。

从零开始写一个 PHP 站 (1) —— 实现登录功能

新坑已开,慢慢填嘛……

PHP 作为一种动态Web设计语言,就少不了与用户交互的功能。最基本、最普遍的交互功能之一,就是注册登录的功能。今天就来讲讲怎么用 PHP 写登录 注册页面吧。

最基本的功能实现,其实只用 PHP 就 OK ,然而对于一个真正的网站而言,仅仅用 PHP 写显然是不现实的……所以,今天要说的,其实是用 PHP + MySQL 来完成整个登录注册系统。

整个系统的构建其实很简单,大概分为两个部分、五步。PHP 部分,登录前端、登录后端、注册前端、注册后端;MySQL 部分:用户表单。下面就一步步来看咯。

一、MySQL数据库及表的创建

至于服务器怎么搭建 PHP+MySQL 环境我就不多说了,选择也很多(LNMP、LAMP、LNMPA 等等),接下来直接进行创建数据库的操作。数据库管理系统是必不可少的,因为这将大大减轻整个数据库的维护负担,让我们能够从冗长繁杂的 SQL 语句中解脱出来,并且让数据库的结构、数据更加直观。PHP 下的数据库管理系统,当然是选择 phpMyAdmin 咯。

1.建立数据库

如果你使用了 LNMP 一键包或类似工具创建了一个虚拟主机,并在创建时已经建立了对应的数据库,可以跳过此步骤。

首先登录,在左侧就可以看到已经建立的数据库了:

由于我们需要新建一个网站,自然也就需要新建一个数据库。单击树形图中的“新建”链接,右侧会跳出已建立的数据库列表,以及给出了一个新建数据库的输入框。

“数据库名”可以随便写(不能中文),建议起一个好记且与网站相关的名称,“排序规则”无需修改,默认即可。点击创建,数据库就创建好了。

可以看到新建了一个空数据库,里面并没有表。

 

2.表的创建

表的创建也很简单,在创建好的数据库的管理界面就直接提供了“新建数据表”的选项,输入名字及字段数即可。在一个注册/登录系统中,必不可少的两个字段是用户名和密码,不过这里强烈建议添加 “UID” 字段,使数据表具有索引,这样才能对表中的每一行进行便捷、高效的管理。

于是我们要建立的数据表参数设置如下:

设置完毕后,点击“执行”即可创建一个新表。

执行结束之后,会自动跳转到如下的字段设置页面,“UID” 根据预计用户数目,选择相应的 INT 类型,这里我选择了 “TINYINT” 类型,即 -128~127 的符号数或者 0~255 的无符号数范围。需要更多的用户数量,选更大的数据类型就是咯。“username” 和 “password” 字段由于需要存储字符串,所以选择 “TEXT” 类型。

对于 UID 字段,务必在后面的 “A_I”(AUTO_INCREMENT 的缩写)复选框处打勾,以启用字段的自增功能;打勾后会弹出如下的“添加索引”对话框,可以保留默认直接单击“执行”即可。

全部设置好之后,单击字段设置页的“保存”,即可完成表的创建。

创建好之后的表结构如下图所示。

二、PHP 页面的编写

这里的编写实际上分前后端,前端对应用户界面,后端对应数据处理。我们先写前端,再写后端,这样可以更方便的处理变量的传递。为了一些后续功能的实现,我就把前后端放在一个 PHP 文件中了。

1.登录前端的编写

为什么先写登录?因为好写啊……

直接上代码,必要的地方会给注释。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
&lt;!doctype html&gt;

<!-- HTML 头部,用于声明网页的类型和编码等,并设置网页标题 -->




<!-- 创建一个表单,用于将数据以 POST 方式提交给后端处理 -->
<!-- "action="后面跟的是PHP语句,用于将表单中的 Sumbit 类型按钮所提交的内容传给本页面 -->

<form id="form1" action="&lt;?php echo htmlspecialchars($_SERVER['PHP_SELF']);?&gt;" method="post">
<input name="username" type="text" placeholder="输入用户名" />
<input name="password" type="password" placeholder="输入密码" />
<button name="submit" type="submit">登录</button></form>

其实很简单,也很短的一段代码,一看就懂。
需要注意的几点:
1.要提交的数据一定要放在 form 标签之下,这样才能够正常的把表单数据 POST 给 PHP ;
2. input 标签的 name 参数是 POST 的变量名,后端需与之对应(后面会写);
3. action 参数中之所以用了 htmlspecialchars 函数,是为了防攻击,将可能被附加在地址上的代码格式化,使其无法执行。

2.登录后端编写

上面前端用的是 HTML 语言,这里就要用 PHP 语言咯。同样的简短。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!--?php $link=mysqli_connect(" "," "," "," ");//连接到数据库服务器,四个参数依次为主机名、 MySQL 用户名、 MySQL 密码、要使用的数据库名 if($link)//判断数据库是否连接成功 { if(isset($_POST["submit"]))//判断是否有数据提交 { mysqli_query($link,'SET NAMES UTF8'); $name=$_POST["username"]; $password=$_POST["password"];//将 POST 得到的用户名和密码赋值给变量(这里引号中的变量参数即为上面 input 标签中的 name 参数) $stmt=mysqli_prepare($link, "SELECT password FROM users WHERE name=?"); $stmt-&gt;bind_param('s', $name);&lt;br ?--> $stmt-&gt;execute();
$stmt-&gt;bind_result($pa);
$stmt-&gt;fetch();
$stmt-&gt;close();//执行数据库查询(具体函数用法请自行百度,篇幅所限不再赘述),之所以用 mysqli_prepare ,是因为它可以将提交的数据完全格式化成对应数据类型的标准形式,是防SQL注入最根本的手段之一
if($pa==$password)//判断密码是否匹配
{
echo '登录成功。';
}
else
{
echo '登录失败。';
}
}
}
?&gt;

这段后端代码插入到前端代码的 body 标签即可正常被调用执行。
学学 PHP MySQLi 函数吧, PHP MySQL 函数由于太容易有注入漏洞,而且语法不够友好,已经被 PHP 官方弃用!

下一期就会难一点,说说注册页面怎么写。(其实就是表单内容,以及数据库操作多了一些……)

重温Windows 98 (4) —— 体验各系统组件及游戏

说好的搞事情来了,什么IE5, OE, 都拿出来玩玩吧。

先来IE5,打开百度,看似一切正常

光速打脸(滑稽),按搜索之后,在搜索结果页面100%触发此错误,估计是不兼容了

IE5的 “关于”界面,可以看到微软也是借鉴的别人的程序写的IE5

打开我的博客试试?我的博客是启用https的,所以出现了安全提示

由于启用了HSTS,采用TLS1.2加密,HTTP2协议 这些Win98并不支持的安全功能,直接报错(所有https网页都是如此)

来来来,OE5启动一下Hotmail账户可以自动添加,不过自动添加的配置文件太过老旧,已经无法正常连接了,只能看看OE的欢迎邮件了

接着来,直接深入到安装目录,组件挨个点着看(不得不说98的安装目录比现在的Win10简洁整齐多了)

计算器,除了图标,好像整套沿用到了XP?

CD播放器,可以在电脑端播放CD

磁盘清理程序,这界面甚至沿用到了Win10

自动清理功能,貌似在Win10才回归

貌似是一个ZIP文件管理器,仅支持命令行操作

Win98下没有cmd命令,而是通过command命令启动直接的原生MS-DOS环境

(XP依然保留,但是是虚拟的MS-DOS环境)

Win98支持FAT32,并且提供转换工具进行转换

兼容性提示,将仅支持98

磁盘空间管理3(我也不太知道1、2是个啥)

提供一种神秘的压缩功能,区别于NTFS的压缩,这种压缩基于FAT,并且采用一种“卷中卷”的方案进行压缩出现了!系统不稳定提示(不过始终没有死机蓝屏,只是线程死锁)

经过一番折腾和等待,压缩完成,然而压缩比也太难看了点(减小10M体积),算是聊胜于无吧,

由Kodak提供的映像预览工具

同样由Kodak提供的映像查看工具

记事本,到了Win10依然和这记事本一模一样

对象包装程序,好像是可以打包一些程序

画图,同样沿用到了XP

磁盘扫描工具,功能还是比较强大的,XP中变成了CHKDSK工具

独立的注册表检查程序,看起来还提供自动备份功能

文件管理器(不是Explorer资源管理器!),并不支持长文件名,以DOS风格显示

WinPopup,局域网的聊天神器啊

Java工具,难道98内置Java环境?

写字板,一直扮演着简陋版Word的角色,到了Win10也依然如此

这个迷宫屏保,也是当年最深刻的回忆之一了

玩完自带组件,来玩当年比较火的游戏

一个极其古老的、基于Shockwave(得益于Shockwave的跨平台特性,Win10依然可以直接畅玩!)的打雪仗小游戏,一直觉得这样的画风和操作是最适合打雪仗的(曾经的可乐8出了一款类似的地图更大、操作更友好的打雪仗游戏,不过可乐8早就凉了,然后转型了,以前的可乐8好玩游戏太多了,现在都找不到了,可惜)

有人认识这款游戏吗?当年相当之火的一款解谜游戏

想起来小时候的我,完全看不懂,也不会玩这个游戏hhhhhh

其余的游戏还有很多咯,像《红色警戒》《反恐精英》《极品飞车》,这些游戏的资源至今也相当好找,而且经过适当设置也能够兼容Win10,就不再一一体验咯。

PS: Win98的坑算是填完了?有什么想起来的以后再发咯。

感谢!