0

私は php と mysql にかなり慣れていませんが、過去数週間で多くのことを達成することができました。現在、ユーザーが入力するフォームがあり、ユーザーが提供するカテゴリとコンテンツが保存されています。

さらに、ユーザーを作成するために、このチュートリアル ( http://www.wikihow.com/Create-a-Secure-Login-Script-in-PHP-and-MySQL ) に従い、作業中のユーザー アカウントとセキュリティをリンクしました。ページとともに。これは簡単な質問かもしれませんが、必要な機能をリンクする方法に少し困惑しています。

要するに、send_post.php からの挿入行で、現在ログインしているユーザーを検出し、それを「寄稿者」などと呼ばれる行に保存する必要があります。

mysqli_query($connect,"INSERT INTO mytable (category, contents, date)
VALUES ('$_POST[category]', '$_POST[contents]', NOW())");

したがって、明らかに(カテゴリ、コンテンツ、日付、寄稿者)である必要がありますが、現在ログインしているユーザー名を取得して、send_post.phpで「寄稿者」として定義する方法がわかりません

[チュートリアルでは、ユーザー名は数値 ID、電子メール、ハッシュ化されたパスワード、salt とともに「members」という名前の別のテーブルに保存されます。その情報を呼び出す方法は知っていますが、現在のユーザーを取得する方法はわかりません。]

完全な send_post.php は次のとおりです。

<?php
include 'db_connect.php';
include 'functions.php';
sec_session_start();
if(login_check($mysqli) == true) {

//Connecting to sql db.
$connect=mysqli_connect("localhost","mydbusername","mydbpass","mysqldb");

header("Location: http://mysite.com/1.php");

if (mysqli_connect_errno()) { echo "Fail"; } else { echo "Success"; }

//Sending form data to sql db.
mysqli_query($connect,"INSERT INTO mytable (category, contents, date)
VALUES ('$_POST[category]', '$_POST[contents]', NOW())");

} else {
   echo 'Access denied. <br/>';
}

?>

私は非常に感謝し、どんな助けにも賛成します。ありがとう

編集、現在の send_post.php

<?php
include 'db_connect.php';
include 'functions.php';
sec_session_start();
if(login_check($mysqli) == true) {

//Connecting to sql db.
$connect=mysqli_connect("localhost","myusername","mypassword","mysqldb");

header("Location: http://mysite.com/1.php");

if (mysqli_connect_errno()) { echo "Fail"; } else { echo "Success"; }

$stmt = $mysqli -> prepare('INSERT INTO mytable (category, contents, date, userid) 
                            VALUES (?,?,NOW(),?)');
$stmt -> bind_params('ssi', $_POST['category'], $_POST['contents'], $_SESSION['user_id']);
$stmt -> execute();


} else {
   echo 'Access denied. <br/>';
}

?>

編集 2、エラー: (実際には 3 を得た)

[2013 年 10 月 7 日 21:05:54] PHP 致命的なエラー: 行 22 の /home2/mememe/public_html/mysite/send_post.php の未定義メソッド mysqli_stmt::bind_params() の呼び出し

[2013 年 10 月 7 日 21:05:54] PHP 警告: session_start() [function.session-start]: セッション キャッシュ リミッターを送信できません - ヘッダーは既に送信されています (出力は /home2/mememe/public_html/mysite/index_3. php:7) /home2/mememe/public_html/mysite/functions.php の 12 行目

[07-Oct-2013 21:05:54] PHP 警告: session_regenerate_id() [function.session-regenerate-id]: セッション ID を再生成できません - ヘッダーは既に /home2/mememe/public_html/mysite/functions.php で送信されています13行目

編集 3: エコー リターン

Array ( [user_id] => 3 [username] => THEUSERNAME [login_string] => tons of hash infor like 4eb86947c8007ef1d0bb658168a76affa5c666518d3b58d76bf3040dc36d7a399c6c110a8c7f0d9f03d2b4d63271bd1335c61311edb152670f010f04583e7578 )

4

1 に答える 1