За последние 24 часа нас посетили 17488 программистов и 1650 роботов. Сейчас ищут 956 программистов ...

мИНИ ЧАТ

Тема в разделе "PHP для новичков", создана пользователем papov, 3 дек 2018.

Метки:
  1. papov

    papov Новичок

    С нами с:
    27 ноя 2018
    Сообщения:
    28
    Симпатии:
    0
    Кат сделать чат без перезагрузки страницы при отправлении текста и фото. И обновлением информации если кто то написал сообщение.
    chat.php
    <div class="row" style="margin-top:1%;">
    <div id="chatContainer">
    <div id="chatLineHolder"></div>
    <div class="jspPane" style="padding: 0px;top: 60px; width: 73%; overflow: auto; height: 80%;">

    <?php
    $result = mysqli_query($link,"SELECT * FROM chat,user where otpprav='$user_id' and id='$user_id' or id='$user_id' and poluch='$user_id'");
    if (mysqli_num_rows($result) > 0){
    $row = mysqli_fetch_array($result);
    do{
    $otprav = $row["otpprav"];
    if ($user_id==$otprav){
    echo '
    <div class="chat1 chat-45 rounded">
    <span class="gravatar"></span>
    <span class="author">'.$row["name"].'</span>
    <span class="text">'.$row["text"].'</span><span class="time">'.$row["datetime"].'</span>
    </div>';
    }else{
    echo '
    <div class="chat chat-45 rounded">
    <span class="gravatar"></span>
    <span class="author">'.$row["name"].'</span>
    <span class="text">'.$row["text"].'</span><span class="time">'.$row["datetime"].'</span>
    </div>';
    }

    } while($row = mysqli_fetch_array($result));
    }
    ?>


    </div>

    <div id="chatUsers" class="rounded">
    <select name="cat_type" id="cat_type" size="10">
    <?php
    // выбор кому писать
    $result = mysqli_query($link,"SELECT * FROM user ");
    if (mysqli_num_rows($result) > 0){
    $row = mysqli_fetch_array($result);
    do{
    echo '
    <option value="'.$row["id"].'">'.$row["name"].' '.$row["surname"].'</option>
    ';
    } while($row = mysqli_fetch_array($result));
    }
    ?>
    </select>
    </div>
    <div id="chatBottomBar" class="rounded">
    <div class="tip">

    </div>
    <form action = "" method = "post" enctype = 'multipart/form-data' id="loginForm">
    <input id="chatText" name="chatText" class="rounded" maxlength="255" />
    <label class="filebutton">
    <img src="img/zagr.png" />
    <span><input type="file" id="myfile" name="myfile"></span>
    </label>
    <input type="submit" class="blueButton" id="otprav" value="Отправить" />
    </form>

    </div>

    </div>

    </div>

    bd_chat.php
    <?php
    session_start();
    if ($_SERVER["REQUEST_METHOD"] == "POST"){
    include('db_connect.php');
    $chatText = $_POST["chatText"];
    $poluch = $_POST["poluch"];
    $myfile = $_POST["myfile"];
    $otprav = $_SESSION['user_id'];

    $uploadfile = "../audio/".$_FILES['myfile']['name'];
    move_uploaded_file($_FILES['myfile']['tmp_name'], $uploadfile );
    $foto = $_FILES['myfile']['name'];

    mysqli_query($link,"INSERT INTO chat (otpprav,text,poluch,datetime,foto)
    VALUES(
    '".$otprav."',
    '".$chatText."',
    '".$poluch."',
    NOW(),
    '".$foto."'
    )");
    echo 'yes';
    }

    ?>

    js
    $(document).ready(function(){
    $('#otprav').click(function(){
    var chatText = $("#chatText").val();
    var poluch = $("#cat_type").val();
    var myfile = $("#myfile").val();
    $.ajax({
    type: "POST",
    url: "../include/chat.php",
    data: "chatText="+chatText+"&poluch="+poluch+"&myfile="+myfile,
    dataType: "html",
    cache: false,
    success: function(data){

    $('#chatText').val('');

    }
    });
    });
    });

    У меня текст отправить получается а сам файл так отправить не выходит.
    И еще как можно показать пользователю что у него есть новое сообщение и если он открыл и посмотрел убрать. Как при выборе кому писать показывала сообщение между то что я ему отправлял и он мне

    upload_2018-12-3_19-54-56.png
     
  2. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    @papov, я знаю как твой чат может взломать всю твою систему
     
  4. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    А зачем в бд записывать?
     
  5. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    очевидно, чтоб потом восстановить переписку :)