@mkramer @romach При попытке указать гет параметр в ссылку, и перенаправленнии пользователя на другой скрипт вот таким способом: PHP: echo '<a href="?go=messages&act&for_user_id='.$id.'">Написать сообщение</a>'; На странице куда направляю пользователя получается var_damp выдает null null null где должно быть примерно id1 ud2 text. Может полностью скрипт скинуть? Вот что у меня получается, в дебаге нет переменных
Отладка у тебя не запущена. Точки останова надо ставить. Всё же написано. Если точка останова не срабатывает, значит неправильно настроил --- Добавлено ---
@mkramer Как точки эти ставить? Вот скрипты над которыми я долго мучаюсь( ну посмотрите в них что не так, если какого либо файла нет, я докину, вы главное скажите.
http://pogugli.com/?157307 Никому не интересно за тебя с твоим кодом разбираться. Или пиши сразу в раздел "Сделайте за меня"
@mkramer Я не прошу за меня написать я прошу подсказать, что я ссылку что ли не правильно делаю или что еще( Вот у меня стоят точки и та фигня стоит вверху.
Чувак, пока ты не перестанешь просить подсказки и не станешь находить себе ответы самостоятельно - тебе не стать программистом. Не можешь - не твое.
@_ne_scaju_ делай ещё. Пытайся понять что не так, почему не работает, как исправить. Твоя задача не "сделать смс", а научиться правильно думать, анализировать ошибки, находить решения.
Надо не комбинации делать, а с помощью отладки выяснять, что пошло не так. Разберись с настройкой отладчика, почитай, погугли - как поймёшь, жизнь себе порядочно облегчишь.
Делай var_dump полученных данных, результатов вычислений, выполняемых условий, вообще всего из чего состоит твой алгоритм, ответь на вопрос "почему работает так, а не как ты хочешь".
@mkramer У меня настроен правильно, но почему то не на всех скриптах срабатывает. И что означает например эта выделенная строка? --- Добавлено --- @romach var_damp выдает null там где я ссылку указываю, а там где уже набираю сообщение то выдает int(1) text int(0)
@_ne_scaju_, почитать пробовал от начала до конца статью, потом переварить ее, потом только пытаться работать с ней?
Ты просто попробуй, построчно, только не с вопросом "как сделать правильно", а с "почему работает именно так". Нужны базовые концепции в голове, поймешь их и дальше станет легче.
@romach Если честно я не знаю причины почему так, записывалось, теперь все стало на места, но все же почему так, не выводилось я так и не понял. Может из-за того что при создании переменной $for_user_id = intval($_POST['for_user_id']); а надо было указать $_GET вместо POST --- Добавлено --- @romach Как можно поставить условие, если пользователь нажал на ссылку, открываем форму, а когда он нажал на кнопку то делаем запрос?
@romach @mahmuzar Всем доброе утро, сегодня начал смотреть в код, и решил поступить так, как и советовали ранее, перед отправкой проверить на POST запрос потом проверить что такой пользователь есть, и если есть то делать запрос на добавления записи в бд и отправка сообщения. Как вам вот такое решение, приведу ниже: PHP: <?php session_start(); include($_SERVER['DOCUMENT_ROOT'].'/system/inc/inc.php'); $act = $_GET['act']; $user_id = $_SESSION['user_id']; switch ($act) { //################### Отправка сообщения ###################// case 'send': # code... if($_SERVER["REQUEST_METHOD"] === "POST"){ $message = htmlspecialchars($_POST['message']); $for_user_id = intval($_GET['for_user_id']);//получатель if(isset($message) AND !empty($message)){ //Проверка на существование получателя $row = $pdo->prepare('SELECT `user_id` FROM `users` WHERE `user_id` = ? LIMIT 1'); $row->execute([$for_user_id]); $result_row = $row->fetchColumn(); if($result_row){ echo 'все хорошо, такой пользователь есть'; //Отправляем сообщение получателю $send1 = $pdo->prepare('INSERT INTO `messages` (`text`, `for_user_id`, `from_user_id`) VALUES (?, ?, ?)'); $send1->execute([$message, $for_user_id, $user_id]); $result = $send1->fetch(); if($result){ echo 'Ошибка отправки сообщения'; }else{ echo 'Сообщение успешно отправлено юзеру<br>'; // header('Location: /index.php'); } }else{ echo 'пользователя нет'; } }else{ echo 'сообщение пустое не может быть отправлено'; } }else{ ?> <form action="" method="POST"> <input type="text" name="name" value="<?php echo $row['user_login']; ?>"> <br>Текст сообщения: <br><textarea name="message"></textarea><br> <input type="submit" value="Отправить" /> </form> <?php } break; ###############страница сообщений здесь будет сделана################### default: # code... echo 'пока что пусто default'; break; } //Вар дампим данные var_dump($for_user_id); var_dump($user_id); var_dump($message); ?> Если такое решения для проверки на существования пользователя и вывода формы вам не нравится подскажите правильное решение. Спасибо.
Добрый вечер, с отправкой разобрался, а как же теперь тому пользователю прочитать это сообщение? Какая форма должна быть для чтения? Просто объясните я сам попробую написать, ну или посмотреть по скриптам и сообразить что то)
Тебе не надоело про каждую запятую в коде спрашивать? Ну вот возьми, русским языком, опиши по шагам, что должен делать модуль, позволяющий читать пользователю сообщения
@mkramer Для начала проверить есть ли у пользователя не прочитанные сообщения, если есть то выводим ему их. Короче разберусь отпишусь.
С выводом разобрался кое-как но очень криво, все вытягиваются все сообщения, и дублируются, а то-есть, если я написал от 1id кому 2id то при выводе получится не одно сообщение а 5 штук, почему это происходит?