首页 > 解决方案 > 如何使用套接字登录

问题描述

我有一个网站,可以称之为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 中。

标签: javascriptphpmysqlsockets

解决方案


如果您要连接到本地套接字:

$mysqli = new mysqli('localhost', $user, $pass, $db, null, '/home/tiger/mysql/run/mysql.sock');

我假设这是为了传达/host,而不是像host.


推荐阅读