私はPHPで基本的なチャットボックスを作っています。基本的には、ユーザーにメッセージを送信するためにデータベース接続を使用したくありません。その代わりに、私はユーザーがセッション配列に送る異なる値を格納するのが好きです。それ意志簡単なプッシュ文字列値'text' => implode(" ", $_SESSION['messages'])
:あなたは、それは基本的にユーザーが$pm
という変数にし、この文で入力されたmessage
を保存見ることができるようにセッション変数に異なる変数を格納する方法
<?php
if (session_status() == PHP_SESSION_NONE) {
session_start();
$_SESSION['messages'] = array();
}
if (isset($_POST['send'])){
$pm = $_POST['message'];
array_push($_SESSION['messages'], $pm);
$request_params = [
'chat_id' => $id,
'text' => implode(" ", $_SESSION['messages'])
];
print_r($request_params);
}
?>
<div class="box-footer">
<form action="" method="post">
<div class="input-group">
<input type="text" name="message" placeholder="Write your direct message" class="form-control">
<span class="input-group-btn">
<input name="send" type="submit" class="btn btn-danger btn-flat"/>
</span>
</div>
</form>
</div>
:この時AA見てみましょうたとえば
$pm
に
$_SESSION['messages']
を入力します。
それから私はtext
としてchat_id
と$_SESSION['messages']
として(ここでは、IDのコードを含める必要、それはユーザーのだけのIDではありません)$id
値を保存しよう。
は今これをテストするために私がprint_r($request_params);
を試みたが、それだけでこれだけを示しています。あなたはそれが$_SESSION['messages'])
でセッション変数を返しません見ることができるように
Array ([chat_id] => 108132368 [text] =>)
を。
なぜそれが機能しないのですか?セッション配列に異なる変数を格納するにはどうすればよいですか?
UPDATE 1:
<?php
session_start();
if (session_status() == PHP_SESSION_NONE) {
$_SESSION['messages'] = array();
}
if (isset($_POST['send'])){
$pm = $_POST['message'];
array_push($_SESSION['messages'], $pm);
$request_params = [
'chat_id' => $id,
'text' => implode(" ", $_SESSION['messages'])
];
echo $_SESSION['messages'];
print_r($request_params);}
?>
<div class="box-footer">
<form action="" method="post">
<div class="input-group">
<input type="text" name="message" placeholder="Write your direct message" class="form-control">
<span class="input-group-btn">
<input name="send" type="submit" class="btn btn-danger btn-flat"/>
</span>
</div>
</form>
</div>
:)それが役に立てば幸いと出力に '配列([chat_id] => 1 [テキスト] => SS)' – Artier