欢迎所有人, 在我的项目中,我用PHP创建了一个社交网络,并使用websocket和node.js进行聊天
我遇到的问题是我无法将消息保存在我的数据库中,因为我无法从输入表单中获取消息。
服务器端有node.js(仅限js) 客户端接受js和php(.php扩展名)
我试图在服务器端保存邮件,但我不能,因为项目在php中有每个用户的会话,所以..
我尝试在.php扩展名
中保存客户端内的邮件我尝试的是将输入保存在我写消息的地方,
我将留下客户端代码:
<?php
session_start();
if(!isset($_SESSION["user"])){
header("location:../login.php");
}
require "../config.php";
$conn = mysqli_connect($hostname,$username,$passw,$database);
$user=mysqli_real_escape_string($conn,$_SESSION["user"];
$q1 = mysqli_query($conn,"SELECT * FROM usuario2 WHERE Usuario = '".$user."'");
while($row = mysqli_fetch_assoc($q1)){
$id = mysqli_real_escape_string($conn, $row['ID']);
}
$query1 = mysqli_query($conn,"SELECT * FROM `chat1` WHERE id_em='$id' OR id_rec='$id'");
while($row = mysqli_fetch_array($query1)){
$row["id_em"];
}
$codroom=$_POST["user3"];
?>
<!DOCTYPE html>
<html lang="en">
<head>
<?php
header("Access-Control-Allow-Origin: *");
?>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.4/socket.io.js"></script>
<title>Chat con nodejs + socket.io</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js"></script>
<style>
h2 {
margin-top: 20px;
}
.input-group-addon{
background-color: rgb(2, 117, 216);
color: #efefef;
}
#messages {
padding: none;
}
.chat-window {
height: 500px;
border: 1px solid #cccccc;
margin-bottom: 10px;
padding: 1rem;
overflow-y: scroll;
}
.msg {
margin-bottom: 1rem;
}
.id{
font-weight: bolder;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-12 text-center">
<h2>Websocket & Socket.io Chat</h2>
</div>
<script type="text/javascript">
var socket = io.connect( 'http://localhost:1334' );
$(function(){
$("form").submit(function(){
var mensaje = $("#msg").val();
if(mensaje=='') return false;
if(mensaje==' ') return false;
//evento message en el server nodejs
console.log(mensaje)
socket.emit('message',mensaje);
$("#msg").val('').focus();
return false;
});
$("#channel").change(function(){
socket.emit('change channel',$("#channel").val());
});
});
socket.on('message',function(msg){
$('#message').append($('<p><strong>' + '<?echo $_SESSION["user"]?>' + ': </strong>' + msg + '</p>'));
$('.chat-window').scrollTop($('#message').height());
socket.on('change channel',function(channel){
$("#message").html('').append($('<li>').text('system : Bienvenido al Canal '+channel+' !'));
});
</script>
<div class="col-md-12">
<div class="chat-window">
<div id="message"></div>
</div>
<div id="controls">
<form action="" method="post">
<select name="channel" id="channel">
<option value="<?echo $codroom?>">Channel A</option>
<option value="<?echo $codroom?>">Channel B</option>
</select>
<div class="col-md-12">
<div class="input-group enter-chat-message">
<input type="text" id="msg" name="a" class="form-control" placeholder="Chat Message...">
<input class="input-group-addon submit-chat-message" type="submit" id="btn" name="submit" value="Enviar">
</div>
</div>
</div></div>
</form>
</div></div></div></div>
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
<script src="js/bootstrap.js"></script>
</body>
</html>
我试图获取输入表单消息,其名称=&#34; a&#34;用:
if(isset($_POST['submit'])){
$aa=$_POST['a'];
$sql4 = "INSERT INTO as3 (aa1) VALUES('$aa')";
$resultado = mysqli_query($conn, $sql4); // Realizamos la consulta. mysqli_query() parámetros: conexión, consulta
}
或低于$(&#34;表格&#34;)。submit(function(){
尝试在PHP变量中获取消息以将其插入数据库。
也许我尝试它的事情很容易,但是在node.js和php中使用它有点困难,因为我是一个使用node.js的初学者
对不起,如果我的英语不是很完美, 希望你能帮助我,谢谢!
答案 0 :(得分:0)
我在这样的项目上工作,我认为最好的解决方案就是为数据库中的每个用户创建一个uid文件 保留NodeJ中聊天部分的所有逻辑。 您还必须使用WebSocket发送消息数据。 您必须发送的数据可能如下所示
{
"sender_user_uid" : "nsdasdwq324yhjdasjdh548dwadjkhhdt6@e3",
"message": "Hello",
"channel_uid": "hbklierokwe,zcsadkwq324545@%#"
}