0

ユーザーがログインしていないときでも、ユーザーが作成したコンテンツを db から表示する必要があります。

<? php

$get_user_content = mysqli_query($conn, "SELECT * FROM content WHERE UserName = '$username'") or die($dataaccess_error);

if(mysqli_num_rows($get_user_content) == 1 )
{
  $row = mysqli_fetch_array($get_user_content);

  $title = $row['utitle'];
  $content = $row['ucontent'];
}

echo $title;
echo $content;

?>

しかし、次の 2 つのエラーが発生します。

undefined variable: username

Warning: mysqli_query() expects parameter 1 to be mysqli

私はPHPコーディングが初めてです。これについて私を助けてください。

4

2 に答える 2

1

ユーザー名変数を定義する必要があり、データベースにも接続する必要があります。mysqli を使用する場合は、オブジェクト指向スタイルを使用することをお勧めします。Mysqli は理想的なソリューションではない可能性があります。こちらの Cletus の回答を参照してください: MySQL vs MySQLi when using PHP

言語を学習するには、php.net の php ガイドを確認し、コメントを必ず確認する必要があります。チュートリアルをグーグルすることもできます。すべてが失敗した場合は、stackoverflow が助けを求める場所になります。

<?php
$username = trim($_POST['username']); //where username is a form field sent using post method, we trim it to remove white spaces so if user just enters spaces, the script will see it as empty string.

//Connect to database  http://www.php.net/manual/en/mysqli.query.php
$conn = mysqli_connect("localhost", "my_user", "my_password", "yourdatabasename");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}


if ($username){
    $username=mysqli_real_escape_string($conn, $username); //escape the string AFTER you connect http://www.php.net/manual/en/mysqli.real-escape-string.php
    $get_user_content = mysqli_query($conn, "SELECT * FROM content WHERE UserName =    '$username' LIMIT 1") or die(mysqli_error($conn));  //assuming you have table called content with a field called UserName to store the username, add limit 1 since you only need one anyway.  , where does databaseaccess_error comes from? it's undefined. use mysqli_error

   if(mysqli_num_rows($get_user_content) == 1 )
   {
       $row = mysqli_fetch_array($get_user_content);

       $title = $row['utitle'];
       $content = $row['ucontent'];


       echo $title;
       echo $content;
   }else echo "User couldn't be found";
}
于 2012-07-08T04:17:24.827 に答える
0

ユーザーが作成した情報を表示している場合、ユーザーがログインしていないとその情報を表示することは困難です。

これを行う唯一の方法は、ユーザーがアカウントを作成するときにユーザーの IP を保存し、誰かがページにアクセスしたときに IP を読み取ることです。ユーザーと一致する場合は、情報を表示します。ただし、これを行うときにいくつかのセキュリティ対策を危険にさらす可能性があり、IP が変更されると、将来このように悪いことが台無しになる可能性があります.

ただし明確にするために、ページにアクセスしたときに、ログインせずに、サイトで作成したものを表示したいと考えていますか? それとも、ユーザーが作成したものだけですか?

于 2012-07-08T21:32:44.107 に答える