LAMP搭建后的第一个网站

前言

按照我之前教程一套搭建好LAMP服务器在写入中文时会出现一个问题就是乱码。现在就一起来看看这是什么情况,一起解决这个问题。当然这也将是你的第一网站。

MySQL 部分

1、首先在mysql命令控制台新建数据库

MariaDB [(none)]> create database test;
Query OK, 1 row affected (0.01 sec)

MariaDB [(none)]> use test;
Database changed
MariaDB [test]> create table test_table(
    ->      id int(5) auto_increment primary key,
    ->      user char(10),
    ->      pass char(10),
    ->     text char(10),
    ->     sex char(1),
    ->     connect char(10));
Query OK, 0 rows affected (0.00 sec)

MariaDB [test]> 

HTML和PHP部分

2、登录注册代码
index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>登录</title>
</head>
<body>
    <div>
        <b>登录</b>
        <form action="login.php" method="post">
            <p><span>用户名:</span><input type="text" name="user" required="" /></p>
            <p><span>密码:</span><input type="password" name="pass"/ required=""></p>
            <p><input type="reset" name=""/> <input type="submit" name=""/></p>
        </form>
        <a href="register.html">新用户注册</a>
    </div>
</body>
</html>

register.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>注册</title>
</head>
<body>
    <div>
        <b>注册</b>
        <form action="register.php" method="post">
            <p><span>用户名:</span><input type="text" name="user" required=""/></p>
            <p><span>密码:</span><input type="password" name="pass" required=""/></p>
            <p><span>性别:</span>
            <input type="radio" name="sex" checked="checked" value="男"/><input type="radio"  name="sex" value="女"/></p>
            <p><span>联系:</span><input type="text" name="connect" value="" required=""/></p>
            <p><span>文本:</span><input type="text" name="text" required=""/></p>
 
            <p>
                <input type="reset" name=""/> <input type="submit" name=""/>
            </p>
        </form>
        <a href="index.html">已注册</a>
    </div>
</body>
</html>

login.php

<meta charset="utf-8">
<?php
    $conn = mysqli_connect('localhost','root','','test') or die('数据库连接失败');
    $conn->query("SET NAMES 'UTF8'");
 
    $user = $_POST['user'];
    $pass = $_POST['pass'];
    $sql="SELECT * FROM test_table where user='$user' and pass='$pass'"; 
 
    $rs=$conn->query($sql);
    $row = $rs-> fetch_array(); 
    // var_dump($row);
 
    if($row['user']==$user&& $row['pass']==$pass){
        echo $row['user']."登陆成功!";
    }
    else{
        echo"登录失败,请重新登录!";
    }
?>

register.php

<?php
    header ( "Content-type:text/html;charset=utf-8" );
    $conn = mysqli_connect('localhost','root','','test') or die('数据库连接失败');
    $conn->query("SET NAMES 'UTF8'");
 
    $user = $_POST['user'];
    $pass = $_POST['pass'];
    $sex = $_POST['sex'];
    $connect = $_POST['connect'];
    $text = $_POST['text'];
 
    $sql = "INSERT INTO test_table VALUES ('','{$user}' ,'{$pass}','{$text}','{$sex}' ,'{$connect}' )";
 
    $result = $conn->query($sql);
            
    // if ($result > 0) {
    //     echo "<script> alert('注册成功,返回登录页面');
    //                     window.location='index.html'; //跳转到注册页
    //          </script>";
    // } else {
    //     echo "<script> alert('注册失败,返回注册页面');
    //                     window.history.back(); //返回上一页
    //          </script>";
    // }
    echo("注册成功!!!<br/><a href='index.html'>点击登录</a>")
?>

3.测试网站
将写好的四个文件一起放入/var/www/html下,如图所示
在这里插入图片描述

然后再浏览器中输入公网Ip/index.html 就可以访问到你的网站了,我这里是配置了域名的,所以只需要把IP替换成域名即可,如图所示
我这里是配置了域名的,所以至于要把IP替换成域名即可
点击新用户注册,点击提交,如图所示。

在这里插入图片描述
注册成功后,我们再回过头查看数据库中tes_table表中的数据插入成功没有。我们会发现一个问题。只要是插入中文都会成乱码。
在这里插入图片描述
怎么解决这个问题,我们查看数据库字符集发现

show variables like 'character%';

在这里插入图片描述
问题就出现在| character_set_database | latin1 | h和| character_set_server | latin1 |这里,接下来我们需要在/etc目录下找到my.cnf文件,用记事本打开。
一、在[client]字段里加入default-character-set=utf8,如下:
没有该字段就手动添加

[client]
default-character-set=utf8

二、在[mysqld]字段里加入character-set-server=utf8,如下:

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
character-set-server=utf8

三、在[mysql]字段里加入default-character-set=utf8,如下:

[mysql]
no-auto-rehash
default-character-set=utf8

四、修改完成后,systemctl restart mariadb重启mariadb服务就生效。注意:[mysqld]字段与[mysql]字段是有区别的。这点在网上没人反馈过。
使用SHOW VARIABLES LIKE ‘character%’;查看,发现数据库编码全已改成utf8。
在这里插入图片描述
4、删除之前所建的库和表,在重新创建test库和test_table表,重新在网页上进行用户注册操作。
在这里插入图片描述
在这里插入图片描述
到这里,我们的第一个网站写完了。以后也可将要运行的HTML文件和PHP文件放/var/www/html根目录下,就可以实现远程访问了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值