摘要:看下成果純天然,絕不添加任何添加劑以及化學成分我就是喜歡純天然,不接受任何反駁關于本文用原生的和做了一個登陸注冊,大概是可以窺見一般開發的樣子了。
看下成果
ps:純天然h5,絕不添加任何添加劑(css)以及化學成分(js)(<( ̄ ﹌  ̄)我就是喜歡純天然,不接受任何反駁)
用原生的php和html做了一個登陸注冊,大概是可以窺見一般php開發的樣子了。不過,low的地方區別提前說一下:
這個是多入口,一般程序都是單入口,單入口就是統一通過index.php進入,然后再引入其他文件,調用其代碼,多入口就是每次通過不同文件進入(比如一會展示的login.php和register.php)
保留登陸信息用的是session,現在普遍是前后端分離,一般用cookie或者redis實現session的功能,很少直接使用session的
連接mysql使用的是mysqli,沒有做封裝,也沒有使用pdo,除了能用沒有其他優點了
這種樣子的代碼大概是上世紀的風格了,MVC都沒用,看一看好了,真的開發再不濟也要MVC分一下層
性能杠桿的,不要信任何框架的吹噓,就性能而言,沒有任何框架快得過原生。
準備工作emmmm,首先用nginx或者Apache創建一個站點指向本地代碼的目錄,然后在host里配置127.0.0.1指向該站點。(這個就不教了啊,之前講過),然后是一個user庫的sql,和登陸和注冊的前端代碼頁面(不好意思說這是代碼):
sql
CREATE TABLE `user` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT "id", `username` varchar(64) NOT NULL DEFAULT "" COMMENT "賬號", `password` varchar(64) NOT NULL DEFAULT "" COMMENT "密碼", `nickname` varchar(64) NOT NULL DEFAULT "" COMMENT "昵稱", PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
login.html
沒有賬號?注冊Login
register.html
正文Register
首頁index.php
假設我們的網站有個首頁,需要判斷用戶是否登陸,登陸就歡迎他,沒有登陸就讓他去登陸,這個思路我們這么寫
index Hello
這行session_start() 是開啟session,必須在最開始寫,保證我們可以使用session相關的功能
如果當前session里沒有存用戶的昵稱,那我們就認為該用戶沒有登陸,跳轉到登陸界面
跳轉是通過header的方式,參數重location后邊是目標地址
這段代碼可以鑲嵌在.php文件的html代碼的任何一個地方,echo出來的字符在html中具有等同的功能
這樣的就是前后端代碼混雜,如果項目龐大之后非常難于維護
登陸部分login.php
這部分處理登陸請求,假設用戶輸入了賬號密碼這樣的數據(前端和后端都應該對數據進行校驗和處理,本文略去),然后拿到用戶信息,判斷用戶密碼是否正確,讓用戶成功登陸或者重新輸入。
query($sql); $user = $res->fetch_array(); if ($password_md5 == $user["password"]){ $_SESSION["nickname"] = $user["nickname"]; header("location:index.php"); }else{ header("location:".getenv("HTTP_REFERER")); }
首先也是啟用了session,因為登陸登陸成功之后要通過session保存用戶信息這樣才能在其他頁面確認用戶是已經登陸的狀態了。
$_POST和$_GET是php自帶的兩個全局數組,保存了當前請求的post和get參數,比如這次登陸請求的from表單的傳遞用戶名的input標簽的name=username,并且請求方式是post,該參數就會在$_POST數組中,key是input標簽的name,value是input標簽的value。
業界通用的一個操作,服務器不要存用戶的明文密碼。本文通過用一個字符串拼接然后計算md5之后再保存(這只是一個比較簡單的方式)
new MySQLi(地址,用戶名,密碼,庫名,端口) 創建一個mysqli對象(mysqli是一個更安全更好用的替代原來mysql的擴展,mysql擴展已被棄用),這個對象可以操作mysql庫。
$res = $db->query($sql); mysqli的對象$db運行query方法,執行參數的sql語句,這里的sql是查詢用戶名為用戶輸入用戶名的數據,保存在結果對象$res里,再通過結果對象的fetch_array()方法,獲取到結果保存為一個數組。
getenv("HTTP_REFERER") 獲取環境變量,這里是取到上一個頁面地址,用來做返回,如果用戶登陸失敗,返回到登陸界面。
注冊部分register.php
這部分處理注冊業務,注冊理論上要控制用戶名不能重復,可以通過mysql唯一索引或者代碼處查詢的方式保證唯一,本文采用查詢的方式。
query($sql); if ($res_select){ header("location:".getenv("HTTP_REFERER")); } $sql = "insert into `user` (`username`,`password`,`nickname`) VALUES ("{$username}","{$password_md5}","{$nickname}")"; $res = $db->query($sql); if ($res){ header("location:login.html"); }else{ header("location:".getenv("HTTP_REFERER")); }
看懂登陸,注冊實現就很容易了,查找不到這個賬號則表明該賬號是可以注冊的,新增一條數據就好了。寫在最后
三篇文章極速php算是寫完了,大致的流程是這樣
學一些簡單的php語法(真心覺得php語法不用專門學,用到什么查什么 http://php.net/manual/zh/inde... 無所不能),能看懂就行了
裝一下環境,開發環境用集成的就行,生產環境咱也碰不到啊
做個小demo,登陸注冊真是不能再簡單了,搬磚的工作大多也就是這樣了,拿參數,走業務,跑sql,反結果。
ps:既然都看到這里了,不如順便論述一下php的意義。我個人看法,拋去公司接手的是祖傳代碼這個情況之外,php作為一個快速迭代的語言選擇是絕對沒有問題的,用在項目初期或者創業型項目是最佳選擇,更不用說如果做一些cms或者內容展示的項目,php根本就是為之而生的。不論是php是世界上最好的語言還是php已死,都是站在一個角度上的偏見,在不是很小的一個范圍里,php還是一個很優的選擇。
學一手php,怎么看都是不虧的。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30021.html
摘要:另本文目標是迅速建立集成環境用來開發,如果想要分開一點點搭建,自行百度就好了。本文不贅述,自行百度就完事了下載地址,選中或者版即可,下載完后安裝上就好。 前言 今天講一下php在windows,mac,linux上的集成環境搭建,環境這個事得對號入座,windows用phpstudy,mac用mamp,linux用lnmp一鍵安裝,直接跳轉對應的地方看就好了。 另:本文目標是迅速建立...
摘要:本文適合閱讀用戶有其他語言基礎的童鞋看完語法教程來回顧一下的童鞋傳送門,想全面看一下語法推薦這里毫無基礎然而天資聰慧頗有慧根不要左顧右看說的就是你,老夫這里有一本從入門到放棄,觀你根骨清奇兩銀子賣給你如何看完本文后你會收獲到什么的變量的定義 本文適合閱讀用戶 有其他語言基礎的童鞋 看完w3cschool語法教程來回顧一下的童鞋(傳送門,想全面看一下php語法推薦這里) 毫無基礎然而天...
摘要:我是由貝爾實驗室的在年年間發明創造的,瞧,就他你們眼中的語言之父。與此同時,由于庫函數的缺失,導致新手在開發任何一塊小程序的時候都必須得親力親為。對了,我爸是微軟,由和派生出來的面向對象的編程語言。對,我曾是世界上最好的編程語言。 ...
摘要:入門,第一個這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數式編程語言,它的代碼運行在之上。它通過編輯類工具,帶來了先進的編輯體驗,增強了語言服務。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經到來了,總結過去的 2017,相信小伙們一定有很多收獲...
摘要:入門,第一個這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數式編程語言,它的代碼運行在之上。它通過編輯類工具,帶來了先進的編輯體驗,增強了語言服務。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經到來了,總結過去的 2017,相信小伙們一定有很多收獲...
閱讀 1877·2021-11-12 10:36
閱讀 2309·2021-09-01 10:29
閱讀 2337·2019-08-30 15:56
閱讀 1015·2019-08-30 12:56
閱讀 2343·2019-08-26 13:58
閱讀 2264·2019-08-23 18:38
閱讀 1486·2019-08-23 18:32
閱讀 2103·2019-08-23 16:53