PHP制作用户注册系统
到目前为止,你已经了解了足够多的PHP了。该写个小程序练手了。
用户注册系统
写一个index.php页面,有用户名和密码表单,post提交到check.php,输出用户名和"用户名+密码"的md5值
本地建立一个mysql数据库,名叫segmentfault,建立一个表user,字段usernamepassword将上题check.php接收到的内容存入
我们先完成HTML部分:
<!DOCTYPEHTML> <html> <head> <title>注册</title> </head> <body> <h1>注册</h1> <formaction="check.php"enctype="application/x-www-form+xml"method="post"> <p> <labelfor="name">邮箱</label> <inputname="name"requiredtype="email"placeholder="请填写有效邮箱"></input> </p> <p> <labelfor="passphrase">密码</label> <inputname="passphrase"requiredtype="passphrase"></input> </p> <p> <inputtype="submit"value="提交"></input> </form> </body> </html>
注意,HTML5对表单的支持比以往版本的HTML好很多,可以直接指明各种type。比如制定了type="email",会检验用户提交的邮件地址是否合法。
然后是check.php。
<!DOCTYPE> <html> <head> <title>注册成功!</title> </head> <body> <h1>哇咔咔,你已经注册成功啦!</h1> <p>呃……不过注册成功了好像也没什么用,因为本网站除了注册以外好像没有其他功能。</p> <p>那么,作为补偿,我会告诉你,你的“邮箱+密码”的md5值。</p> <p>你的邮箱是:
下面是PHP部分,直接嵌入HTML,这是PHP的优势:
<?php $username=htmlspecialchars($_POST["name"]); echo$username; ?> </p> <p>你的“邮箱+密码”的md5值是: <?php $passphrase=htmlspecialchars($_POST["passphrase"]); $md5sum=md5($username.$passphrase); echo$md5sum;
注意我们用了htmlspecialchars,避免用户填入奇怪的东西。
然后是数据库操作,我们使用mysqli,(mysql已经废弃了,现在推荐用mysqli,当然你也可以用PDO。)
首先我们指明数据库的一些信息:
$db_server="localhost"; $db_user="db_user"; $db_pass="password"; $db_name="segmentfault";
连接到数据库,并且确保连接正常:
$conn=newmysqli($db_server,$db_user,$db_pass,$db_name); if(mysqli_connect_errno()){ trigger_error("Databaseconnectionfailed:".mysqli_connect_error(),E_USER_ERROR); }
使用SQL语句创建表
$sql="CREATETABLEuser(usernameCHAR(140),passwordCHAR(140))";
添加记录
mysqli_query($conn,"INSERTINTOuser(username,password)VALUES($username,$md5sum)");
手写SQL不太爽,实际应用中,框架会为你提供各种方便。
关闭数据库:
mysqli_close($conn); ?> </p> </body> </html>
好了,我们已经成功地写好了一个小应用,也顺带学习了如何访问MySQL数据库。今天就到这里了。