之前学习了php的一些基础知识,然后试着搭了一个简单的登陆注册的网站。环境是lamp,在搭建过程中有了很多的收获,算是对于php,mysql的第一个应用。
所有网页在/var/www,目录下。
我一共写了6个文件。先一一介绍一下:
1.Login.html:
就是打开网站的登陆界面,包括用户名和密码,登陆和注册。代码如下:
<html>
<head>
<title>Login</title>
<style>
a:link {text-decoration:none;}
</style>
</head>
<body>
<table width="700" height="100%" align="center">
<tr>
<td>
<form align="center" action="http://192.168.64.128/Login.php" method="post">
Username:<input type="text" name="Username" />
<br><br>
Password:<input type="password" name="Password" />
<br><br>
<input type="submit" value="Submit" />
<a href="http://192.168.64.128/Register.html" target="_blank"><input type="button" value="Register" /></a>
</form>
</td>
</tr>
</body>
</html>
<img src="https://img-blog.csdn.net/20140823160819781?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamlhMzA0MzQ5MTQ1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);" />
知识点:①用CSS制定了链接的样式没有下划线。
②如何将网页的内容放置在整个网页的正中央:在form的外面再加一个表格。属性align规定放置位置,等于center就是居中显示。
③form的action属性的作用是当用户提交表单的时候将信息提交到哪里,指定一个url。这里是提交到了login.php(用于检查用户名和密码是否正确),method是规定以何种方式提交。有两种方式get和post。get有安全问题,一般涉及到隐私的东西,如密码等,用post来提交。
④就是在页面中设置一个按钮是type=submit和button的区别。等于submit会提交表单的数据,而等于button不会提交表单数据。
⑤想要点击一个按钮就实现页面的跳转,可以在按钮的外面添加链接。标签<a>中target="_blank"的作用是点击链接之后会在新的标签中打开链接,而不会在本页面跳转。
2.Register.html:
注册页面,包括用户名,密码和再输一次密码。
<html>
<head>
<title>Register</title>
<head>
<body>
<table width="760" height="100%" align="center">
<tr>
<td>
<form align="center" οnsubmit="return checkPW()" action="http://127.0.0.1/Register.php" method="post">
Username:<input type="text" name="Username" />
<br/><br/>
Password:<input id="P1" type="password" name="Password" />
<br/><br/>
Input you password again:<input id="P2" type="password" name="Password2" />
<br/><br/>
<input type="submit" name="register" value="Register"/>
</form>
<script>
function checkPW()
{
P1=document.getElementById("P1").value;
P2=document.getElementById("P2").value;
if(P1!=P2)
{
alert("The two passwords do not match!");
return false;
}
return ture;
}
</script>
</td>
</tr>
</body>
</html>
知识点:①要注意的就是如何如何写如果两个密码不一致的情况,当两次密码输入不一致的时候就会显示提交信息然后不会提交表单。这里是用了JS来实现的写了一个函数。
②form中onsubmit属性:http://blog.csdn.net/wanghuan203/article/details/7220540详见此篇博客。就是说onsubmit值为false就不会提交表单,如果只为ture就会提交表单。注意不能写οnsubmit="checkPW()";如果这样写,表单一直是提交成功的。
3.创建数据库creatDatabase.php
<?php
$con = mysqli_connect("127.0.0.1","root","19930126liujia");
if(mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
//Creat database
$sql="CREATE DATABASE my_db";
mysqli_query($con,$sql);
?>
4.在数据库中创建表creatTable.php
<?php
$con = mysqli_connect("127.0.0.1","root","19930126liujia","my_db");
if(mysqli_connect_errno())
{
echo "Failed to connect to Mysql: " . mysqli_connect_error();
}
$sql = "CREATE TABLE Users
(
PID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(PID),
Username CHAR(30),
Password CHAR(30)
)";
mysqli_query($con,$sql)
?>
创建了一个有用户名和密码的表Users。
5.Register.php
当用户注册成功时,提交到此页面,写入数据库。
<html>
<head>
<title>Registration successful</title>
</head>
<body>
<h1>Registraction successful!</h1>
<?php
$con=mysqli_connect("127.0.0.1","root","19930126liujia","my_db");
if(mysqli_connect_errno())
{
echo "Failed to connect to Mysql: " . mysqli_connect_error();
}
$sql="INSERT INTO Users (Username, Password)
VALUES
('$_POST[Username]','$_POST[Password2]')";
if(!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
?>
</body>
</html>
6.Login.php
点击登录按钮后,会跳转到此页面,从数据库中提取数据,如果用户名和密码匹配,则显示登录成功,否则重新登录。
<?php
$Username=$_POST['Username'];
$Password=$_POST['Password'];
$con=mysqli_connect("127.0.0.1","root","19930126liujia","my_db");
if(mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result=mysqli_query($con,"SELECT * FROM Users WHERE Username='$Username'");
if($row=mysqli_fetch_array($result))
{
if($Password == $row['Password'])
echo "Congratulations!Login is successful!";
else
{
echo "Sorry!The password you entered is incorrect!<br>";
echo "<br/>";
echo "Please click here to try again:";
exit("<a href='http://127.0.0.1/Login.html'>Relogin</a>");
}
}
else
{
echo "Your username is wrong!";
}
?>
①登陆成功:
②密码错误:
③用户名输入错误: