PHP 简易的注册服务的实现及若干问题的解决
模块介绍
通过这个模块可以完成简易的网站的注册验证
·检测用户名是否存在于数据库当中
·向数据库中插入新用户的信息
·检测该用户是否完成了注册并进行反馈
代码说明
<?php
/*----------------------------------------------
*
* 模块用途:用于网站的注册验证
* 创建日期:2021-04-01
* 编辑人员:William Kuang
*
* 输入变量:-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
* username 用户名
* passwd 密码
* telephone 手持电话号码
* email 电子邮件地址
* -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
*
* 注册内容:-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
* username 用户名
* passwd 密码
* station_inventor 站点保有量
* telephone 手持电话号码
* email 电子邮件地址
* -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
*
* 业务流程:-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
* 1.通过 loginconn.php 链接数据库
* 2.获取注册信息
* 3.向MySQL查询用户名是否存在
* 3.1 存在:反馈已存在
* 3.2 不存在:继续
* 4.向数据库表内插入用户信息
* 5.关闭数据库,断开链接
* 6.跳转至登录页面
* -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
*
----------------------------------------------*/
//Connect to datebase
include 'loginconn.php';
//Get information from the posted form
$username = $_POST['username'];
$passwd = $_POST['passwd'];
$StationIn = '0';
$telephone = $_POST['telephone'];
$email = $_POST['email'];
//向数据库查询该用户输入的用户名是否存在于数据库当中
$sql_che = "SELECT * FROM 'basicinfo' WHERE username = '$username'";
$sql_che_r = $link->query("select * from basicinfo where username ='{$username}'");
$row = mysqli_fetch_assoc($sql_che_r);
if ($row > 0) { //判断是否已存在
echo "该用户已存在,两秒后跳转";
header('Refresh: 2; url=../register.php');
} else {
//该用户不存在
$sql = "INSERT INTO basicinfo(username,passwd,station_inventor,tel,email) VALUES('$username','$passwd','$StationIn','$telephone','$email')";
//向数据库写入用户基本信息
$stmt = mysqli_query($link,$sql);
//向数据库查询该用户是否成功添加
$sql_che = "SELECT * FROM 'basicinfo' WHERE username = '$username'";
$sql_che_r = $link->query("select * from basicinfo where username ='{$username}'");
$row = mysqli_fetch_assoc($sql_che_r);
if ($row > 0) {
//判断是否成功添加
echo "用户添加成功,两秒后跳转至登录页面";
header('Refresh: 2; url=../index.php');
} else {
echo "用户添加失败,两秒后跳转至注册页面";
header('Refresh: 2; url=../register.php');
}
}
?>
若干问题的解决
php-cgi not found & 502 bad gateway
首先来说,千万别使用系统自带的php,系统自带的简直就是个坑
简单地来说,就是得要重新下载安装一个
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install php
完成之后,重启Apache
sudo apachectl restart
这时候,我们要在PHPStorm里面添加我们刚才的版本,就可以了
这样问题就解决了。
PS:如果你的PHP文件内部出现了一些错误,同样的也会导致502报错
502 bad gateway
刚才已经说了一种解决方案了,还有一个
前往道etc
文件夹里
点击这个 php.ini.default,打开并编辑
找到openssl这行,把前面的分号去掉并保存即可。
PS:如果你不能够保存,就请先将该文件复制到桌面上,然后用编辑器打开编辑并保存。然后再覆盖到原先的文件夹里面,这个时候只需要输入你的电脑密码就可以了。完成之后千万别忘记关闭Apache服务再启动Apache服务。(有的时候重启并不太奏效,这里还是推荐两步操作)
PHP CORS 跨域请求
这个我目前的解决方法就是,将后端和前端放到同一个根目录下这样在使用服务的时候就不会出现跨域的错误了。(当然了,我这个个人的小项目还可以这样搞,项目在稍稍大一点就不太行了,这里要是有大佬能解答一下就更好了。)