Чат на php и mysql

163
27 марта 2019, 22:40

Пишу чат на php, сообщения отправляются в базу данных mysql и получается достать их оттуда, но проблема в том, что не получается вывести email того человека, который пишет это сообщение. У меня 2 базы данных: одна для регистрации и авторизации, а другая для чата. После успешного логина юзер попадает на страницу чата, и когда пишет сообщение выводится его email на всех сообщениях, а мне нужно, чтобы только над его сообщениями выводилось его имя. Как это реализовать? Вот код логина:

<?php
session_start();
include 'db.php';
    if (isset($_POST['email-e']) && isset($_POST['password-pass'])) { 
    $email_e = mysqli_real_escape_string($mysqli,$_POST['email-e']);
    $password_pass = md5(md5($_POST['password-pass']));
    $query = "SELECT id, email, password FROM users_data 
              WHERE email = '$email_e' AND password = '$password_pass'";
    $sql = mysqli_query($mysqli,$query) or die(mysqli_error());
    if (mysqli_num_rows($sql) == 1) {
        $row = mysqli_fetch_assoc($sql);
    $_SESSION['user_id'] = $row['id'];
    $_SESSION['email-e'] = $row['email'];
  }
    else {
        echo 'User was not found!';
      header("Location: login.html"); 
    }
  }
    if (isset($_SESSION['email-e'])){
     header("Location: chat.php");
  } 
?>

А вот код чата:

<?php
session_start();
include 'db_chat.php';
// header('Content-Type: text/html; charset=utf-8');
//echo trim($_SESSION['email-e'])." <br />"."Вы авторизованы <br />";
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Chat</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<title>Chat</title>
<link href="https://fonts.googleapis.com/css?family=Lobster" rel="stylesheet">
<style>
 input{font:12px arial} a{color:#00f;text-decoration:none} a:hover{text-decoration:underline} #wrapper,#loginform{margin:0 auto;padding-bottom:25px;background:#ebf4fb;width:504px;border:1px solid #acd8f0}#loginform{padding-top:18px}#loginform p{margin:5px} #chatbox{text-align:left;margin:0 auto;margin-bottom:25px;padding:10px;background:#fff;height:270px;width:430px;border:1px solid #acd8f0;overflow:auto} #usermsg{width:380px;height:50px;border:1px solid #acd8f0;border-radius:3px 3px 3px 3px}#submitmsg{width:70px;height:53px;border-radius:5px 5px 5px 5px;cursor:pointer}.error{color:#f00} #menu{padding:12.5px 25px 12.5px 25px} .welcome{float:left} .logout{float:right} .msgln{margin:0 0 2px 0}
</style>
</head>
<body>
<div id="wrapper">
    <div id="menu">
        <p class="welcome" style="font-family: 'Lobster', cursive; font-size:1.1em;">Welcome, <?php echo trim($_SESSION['email-e'])?><b></b></p>
        <form  name="message" action="" method="post">
        <p class="logout" name="logout">
            <button name="exit" id="exit" href="login.php" style="cursor:pointer; border-radius:3px 3px 3px 3px; color:red;">Exit Chat</button>
        </p>
        </form>   
        <div style="clear:both"></div>
    </div>
    <div id="chatbox">
<?php
if(isset($_POST['submitmsg'])) {
    if(!empty($_POST['usermsg']) && is_string($_POST['usermsg'])) {
        $user_id = $_SESSION['user_id'];
        $username = $_SESSION['email-e'];
        $time =  date("Y-m-d H:i:s");
        $usermsg = trim($_POST['usermsg']);
        $sql_chat ="INSERT INTO users_chat (usermsg,user_id,time) 
                    VALUES('{$usermsg}','{$user_id}','{$time}')";
        $res = mysqli_query($mysqli_chat,$sql_chat);
    } 
}
        $query_chat = "SELECT * FROM `users_chat`";
        $res = mysqli_query($mysqli_chat,$query_chat);
        while($row_chat = mysqli_fetch_array($res)) {
            $query_chat ="SELECT * FROM `users_chat`";
            $user_id = $row_chat['user_id'];
            print '<div>';
            echo  'Email:'.$row_chat['user_id'].'<br>';
            print 'Time:'.' '.$row_chat['time'].'<br>';
            print htmlspecialchars($row_chat['usermsg']).'<br><br>';
            print '</div>';
        }
        // if(isset($_POST['exit'])) {
        //     unset($_SESSION['user_id']);
        //     session_destroy();
        //     header("Location: login.html");
        // }
?>
</div>
<form  name="message"   action="" method="post">
<input name="usermsg"   type="text"   id="usermsg" style="margin-left:25px;">
<input name="submitmsg" type="submit" id="submitmsg" value="Send" style="cursor:pointer; color:green;"/><br>
</form>    
</div>
</body>
</html>

База данных чата работает, все подключается. Вот ее структура:

CREATE TABLE `users_chat` (
  `id` int(11) NOT NULL,
  `username` varchar(255) NOT NULL,
  `usermsg` varchar(255) NOT NULL,
  `user_id` int(11) NOT NULL,
  `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
READ ALSO
Что делает эта функция preg_replace_callback?

Что делает эта функция preg_replace_callback?

preg_replace_callback("/&#(\d+);/", array($this, "chr"), $strQuery);

131
Как случайно не удалить базу данных? [закрыт]

Как случайно не удалить базу данных? [закрыт]

Как правильно делать запрос, чтобы не удалить базу данных? Слышал, некоторые умудряются с помощью ошибочного запроса удалить базу данных,...

147
Laravel View::make render и HTML сущности

Laravel View::make render и HTML сущности

Задача: нужно из контроллера вставить один шаблон view1 в другой view2При этом оба шаблона - blade (view1

151
Обновление записей в RedBeanPHP

Обновление записей в RedBeanPHP

Всем привет, я хочу сделать так чтобы можно было редактировать различные записи на странице путём sql запроса R::execИ у меня почему то не хочет...

171