За последние 24 часа нас посетили 17780 программистов и 1715 роботов. Сейчас ищут 1734 программиста ...

Как реализовать смс переписку между авторизованными пользователями сайта PHP MySQL

Тема в разделе "PHP для новичков", создана пользователем _ne_scaju_, 11 май 2017.

  1. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
  2. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @mkramer
    @romach
    При попытке указать гет параметр в ссылку, и перенаправленнии пользователя на другой скрипт вот таким способом:
    PHP:
    1. echo '<a href="?go=messages&act&for_user_id='.$id.'">Написать сообщение</a>';
    На странице куда направляю пользователя получается var_damp выдает null null null где должно быть примерно id1 ud2 text.
    Может полностью скрипт скинуть?
    Вот что у меня получается, в дебаге нет переменных
     

    Вложения:

    • сссс.png
      сссс.png
      Размер файла:
      27,5 КБ
      Просмотров:
      2
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Отладка у тебя не запущена. Точки останова надо ставить. Всё же написано. Если точка останова не срабатывает, значит неправильно настроил
    --- Добавлено ---
    upload_2017-5-12_22-8-29.png
     
  4. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @mkramer
    Как точки эти ставить?
    Вот скрипты над которыми я долго мучаюсь(
    ну посмотрите в них что не так, если какого либо файла нет, я докину, вы главное скажите.
     

    Вложения:

    • scripts.zip
      Размер файла:
      1,8 КБ
      Просмотров:
      0
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    http://pogugli.com/?157307 Никому не интересно за тебя с твоим кодом разбираться. Или пиши сразу в раздел "Сделайте за меня"
     
  6. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @mkramer
    Я не прошу за меня написать я прошу подсказать, что я ссылку что ли не правильно делаю или что еще(
    Вот у меня стоят точки и та фигня стоит вверху.
     

    Вложения:

    • им.png
      им.png
      Размер файла:
      41,4 КБ
      Просмотров:
      2
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Значит что-то не донастроил, если phpstorm их проскакивает, не прерывается
     
  8. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Чувак, пока ты не перестанешь просить подсказки и не станешь находить себе ответы самостоятельно - тебе не стать программистом. Не можешь - не твое.
     
    mkramer нравится это.
  9. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @romach
    Я уже столько комбинаций сделал, а толку ноль(
     
  10. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    @_ne_scaju_ делай ещё. Пытайся понять что не так, почему не работает, как исправить. Твоя задача не "сделать смс", а научиться правильно думать, анализировать ошибки, находить решения.
     
  11. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Надо не комбинации делать, а с помощью отладки выяснять, что пошло не так. Разберись с настройкой отладчика, почитай, погугли - как поймёшь, жизнь себе порядочно облегчишь.
     
  12. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @romach
    Я понимаю, но блин у меня от одного отправляется, а второму не записывается, капец((((
     
  13. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Делай var_dump полученных данных, результатов вычислений, выполняемых условий, вообще всего из чего состоит твой алгоритм, ответь на вопрос "почему работает так, а не как ты хочешь".
     
  14. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @mkramer
    У меня настроен правильно, но почему то не на всех скриптах срабатывает.
    И что означает например эта выделенная строка?
    --- Добавлено ---
    @romach
    var_damp выдает null там где я ссылку указываю, а там где уже набираю сообщение то выдает int(1) text int(0)
     

    Вложения:

  15. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    http://php.net/reserved.variables.argv - php сам этот параметр передаёт.
     
  16. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @mkramer
    Понятно! Я не разберусь с этой программой.
     
  17. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @_ne_scaju_, почитать пробовал от начала до конца статью, потом переварить ее, потом только пытаться работать с ней?
     
  18. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Ты просто попробуй, построчно, только не с вопросом "как сделать правильно", а с "почему работает именно так". Нужны базовые концепции в голове, поймешь их и дальше станет легче.
     
  19. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @romach
    Если честно я не знаю причины почему так, записывалось, теперь все стало на места, но все же почему так, не выводилось я так и не понял.
    Может из-за того что при создании переменной $for_user_id = intval($_POST['for_user_id']); а надо было указать $_GET вместо POST
    --- Добавлено ---
    @romach
    Как можно поставить условие, если пользователь нажал на ссылку, открываем форму, а когда он нажал на кнопку то делаем запрос?
     
  20. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @romach
    @mahmuzar
    Всем доброе утро, сегодня начал смотреть в код, и решил поступить так, как и советовали ранее, перед отправкой проверить на POST запрос потом проверить что такой пользователь есть, и если есть то делать запрос на добавления записи в бд и отправка сообщения.
    Как вам вот такое решение, приведу ниже:
    PHP:
    1. <?php
    2. include($_SERVER['DOCUMENT_ROOT'].'/system/inc/inc.php');
    3.  
    4. $act = $_GET['act'];
    5. $user_id = $_SESSION['user_id'];
    6.  
    7. switch ($act) {
    8. //################### Отправка сообщения ###################//
    9. case 'send':
    10. # code...
    11. if($_SERVER["REQUEST_METHOD"] === "POST"){
    12.  
    13. $message = htmlspecialchars($_POST['message']);
    14. $for_user_id = intval($_GET['for_user_id']);//получатель
    15.  
    16. if(isset($message) AND !empty($message)){
    17. //Проверка на существование получателя
    18. $row = $pdo->prepare('SELECT `user_id` FROM `users` WHERE `user_id` = ? LIMIT 1');
    19. $row->execute([$for_user_id]);
    20. $result_row = $row->fetchColumn();
    21. if($result_row){
    22. echo 'все хорошо, такой пользователь есть';
    23. //Отправляем сообщение получателю
    24. $send1 = $pdo->prepare('INSERT INTO `messages` (`text`, `for_user_id`, `from_user_id`) VALUES (?, ?, ?)');
    25. $send1->execute([$message, $for_user_id, $user_id]);
    26. $result = $send1->fetch();    
    27. if($result){
    28.        echo 'Ошибка отправки сообщения';
    29.     }else{
    30.     echo 'Сообщение успешно отправлено юзеру<br>';
    31.     // header('Location: /index.php');
    32.    }
    33. }else{
    34. echo 'пользователя нет';
    35. }
    36. }else{
    37. echo 'сообщение пустое не может быть отправлено';
    38. }
    39. }else{ ?>
    40. <form action="" method="POST">
    41.     <input type="text" name="name" value="<?php echo $row['user_login']; ?>">
    42.     <br>Текст сообщения: <br><textarea name="message"></textarea><br>
    43.     <input type="submit" value="Отправить" />
    44. </form>
    45. <?php
    46. }
    47. break;
    48. ###############страница сообщений здесь будет сделана###################
    49. default:
    50. # code...
    51. echo 'пока что пусто default';
    52. break;
    53. }
    54. //Вар дампим данные
    55. var_dump($for_user_id);
    56. var_dump($user_id);
    57. var_dump($message);
    58. ?>
    Если такое решения для проверки на существования пользователя и вывода формы вам не нравится подскажите правильное решение.
    Спасибо.
     
    #95 _ne_scaju_, 13 май 2017
    Последнее редактирование: 13 май 2017
  21. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    Добрый вечер, с отправкой разобрался, а как же теперь тому пользователю прочитать это сообщение?
    Какая форма должна быть для чтения? Просто объясните я сам попробую написать, ну или посмотреть по скриптам и сообразить что то)
     
  22. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Тебе не надоело про каждую запятую в коде спрашивать? Ну вот возьми, русским языком, опиши по шагам, что должен делать модуль, позволяющий читать пользователю сообщения
     
  23. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @mkramer
    Для начала проверить есть ли у пользователя не прочитанные сообщения, если есть то выводим ему их. Короче разберусь отпишусь.
     
  24. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    С выводом разобрался кое-как но очень криво, все вытягиваются все сообщения, и дублируются, а то-есть, если я написал от 1id кому 2id то при выводе получится не одно сообщение а 5 штук, почему это происходит?
     
  25. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Ахалай махалай волшебник Сулайбан код появись!