javascript - 如何使用套接字登录
问题描述
我有一个网站,可以称之为phone.names.xol.com。使用该网站我无法登录
在那里我创建了一个名为backe的数据库。密码是1234。(可以共享密码)。在那个数据库(backe)上,我有一个表名 it users。我的套接字是'home/tiger/mysql/run/mysql.sock'。
使用 localhost - 一切正常
我在localhost上创建了一个数据库名称 backe,其表名为 users。用户是 root,密码为空。我可以毫无问题地登录该页面。
这是connection.php。它位于一个名为b的文件中,所以b/connection.php
<?php
$host='phones.names.xol.com';
$db = 'backe';
$user='root';
$pass='1234';
if(gethostname()=='phones.names.xol.com') {
$mysqli = new mysqli($host, $user, $pass, $db,null,'home/tiger/mysql/run/mysql.sock');
} else {
$mysqli = new mysqli($host, $user, $pass, $db);
}
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" .
$mysqli->connect_errno . ") " . $mysqli->connect_error;
}
// Check connection
if (!$mysqli) {
die("Connection failed: " . mysqli_connect_error());
}{
echo "Connected successfully to database";
}
function check_login($mysqli)
{
if(isset($_SESSION['user_id']))
{
$id = $_SESSION['user_id'];
$query = "select * from users where user_id = '$id' limit 1";
$result = mysqli_query($mysqli,$query);
if($result && mysqli_num_rows($result) > 0){
$user_data = mysqli_fetch_assoc($result);
return $user_data;
}
}
}
function random_num($length){
$text = " ";
if($length < 5 ){
$length = 5;
}
$len = rand(4,$length);
for ($i=0; $i < $len; $i++){
$text .= rand(0,9);
}
return $text;
}
?>
在 login.php 中。我给出了我拥有的代码的基本部分
<?php
session_start();
include("b/connection.php");
if($_SERVER['REQUEST_METHOD'] == "POST")
{
//something was posted
$user_name = $_POST['user_name'];
$password = $_POST['password'];
if(!empty($user_name) && !empty($password) && !is_numeric($user_name))
{
$user_id = random_num(20);
$query = "insert into users ( user_id,user_name,password) values ('$user_id','$user_name','$password')";
mysqli_query($mysqli, $query);
header("Location: index.html");
die;
}
else{
echo "Please enter some valid information!";
}
}
?>
这是该代码的形式
<form method="post" >
Username: <input type="text" name="user_name"/>
<br/>
Password: <input type="password" name="password" />
<br/>
<input type="submit" value="Login"/><br><br>
</form>
我怎样才能使它在链接上工作(比如说 https:\www.phones.names.xol.com),因为它在本地主机上工作?我已经尝试了几个小时,但我没有设法做到。数据库很好,问题是我认为在 b/connection.php 中。
解决方案
如果您要连接到本地套接字:
$mysqli = new mysqli('localhost', $user, $pass, $db, null, '/home/tiger/mysql/run/mysql.sock');
我假设这是为了传达/host
,而不是像host
.
推荐阅读
- unity3d - 在 VR 中单击 inputField 时打开键盘(Oculus Quest 2 和 XRIT)
- bluespec - 关于附带条件的澄清
- python - Python套接字服务器和客户端不能在不同的电脑上工作
- jquery - 发生错误时如何关闭加载sweetalert2?阿贾克斯
- python - 比较 Django 中的日期时间
- python - Python 类强制类型提示
- vue.js - 如何在 nuxt.js 中使用 oAuth2
- java - 单个 16 位 Unicode 字符中的单个是什么意思?
- javascript - Netsuite 调用外部托管的 REST API
- javascript - Javascript - 如何在 Vue.js 中使用多个复选框进行过滤?