-2

私はphpに非常に慣れていないので、今はポイントシステムを作ろうとしています。人々が何か良いことをするたびに、私がアクセスしてデータベース内でリモートできるポイントウィッチを取得します。しかし、今の唯一の問題は、人々が自分の主張を理解できないことです。「login」というデータベースと「users」というタルブを入手しました。

「Welcomedude123(username)」の設定方法は知っていますが、例を示す方法がわかりません。4ポイント獲得しました。

ユーザーがログインしたときに表示したいユーザーポイント:http://i48.tinypic.com/343q8ex.jpg

私のデータベース: http: //i50.tinypic.com/33kygqd.jpg

コードを入力すると、その上にあるユーザーへのポイントが表示されます。そして誰もがそれをつかむことができます!私は、特定のユーザーに自分自身を設定してもらいたいだけです。

このコードを使用すると、次のエラーが発生します:http: //i46.tinypic.com/jzcoea.jpg

<?php
require("dbc.php"); 

$sql = "SELECT * from `users` WHERE `username` = " . $_POST['username']; 
$result = mysql_query ($sql);

$query = "SELECT * FROM `users` WHERE `username` = '$username'";
$result = mysql_query($query) or die(mysql_error());

while ($row = mysql_fetch_assoc($result)) {
   $points = $row['points'];


}
echo 'You have ' . $points . 'points.<br />';
?>

login.php:

<?php

session_start();

$username = $_POST['username'];
$password = $_POST['password'];

if ($username&&$password)
{

    $connect = mysql_connect("localhost","root","") or die ("Couldent connect to database");
    mysql_select_db("login") or die ("Couldent find database"); 

    $query = mysql_query("SELECT * FROM users WHERE username='$username'");

    $numrows = mysql_num_rows($query);

    if($numrows !=0)

    {

    while ($row = mysql_fetch_assoc($query))
    {
         $dbusername =  $row['username'];
         $dbpassword =  $row['password'];

    }
       if ($username==$dbusername&&$password==$dbpassword)
       {
           echo "Login successful. <a href='membersarea.php'>CLick here to enter the members area</a> ";
           $_SESSION['username']=$dbusername; 

$handle = fopen("logs/logins.txt", "a");
foreach($_POST as $variable => $value) {
   fwrite($handle, $variable);
   fwrite($handle, "=");
   fwrite($handle, $value);
   fwrite($handle, "\r\n");
}
fwrite($handle, "\r\n");
fclose($handle);

$ip = $_SERVER['REMOTE_ADDR'];
$pagina = $_SERVER['REQUEST_URI'];
$datum = date("d-m-y / H:i:s");
$invoegen = $datum . " - " . $ip . " - " . $pagina . "<br />";
$fopen = fopen("logs/ips.txt", "a");
fwrite($fopen, $invoegen);
fclose($fopen);


exit;

       }
       else 
           echo "Incorrect password";
   }
   else 
      die ("That username doesnt exist");

}
else
   die ("Please enter a username and password");


?> 

そして、ポイントを表示したい私のmembersarea.php:

--><br />
  <br />

</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><br />
</p>

<div align="center">
  <p><font size="8">Potten:</font>
  <?php 
mysql_connect ("localhost","root",""); 
mysql_select_db ("login"); 

$sql = "select * from info"; 
       $result = mysql_query ($sql); 

       while ($row = mysql_fetch_array($result)) 
              { 
              $potten= $row["potten"]; 
echo "$potten<br>";
      } 
?>
  </p>

  <p>&nbsp;</p>



</div>
</p>
<div id='cssmenu'>
<ul>
   <li class='has-sub '><a href='#'><span>Points</span></a>
      <ul>
         <li><a href='#'><span>Sell points</span></a></li>
         <li><a href='#'><span>Shop with points</span></a></li>
      </ul>
   </li>

   <li><a href='#'><span>Store</span></a> 
    </li>

   <li><a href='#'><span>Contact</span></a></li>
</ul>
</div>
<div id="highscore" align="center">
</blockquote>
<div class="gradientbuttons blacktheme" align="center">

</div>
<div align="center" >
<div style="width:99%; height:100px; border:3px solid black; font-size: 14px; font-style: italic;" align="center">
  <p>Highscore top 5   </p>

</div>

<div id="cboxdiv" style="text-align: center; line-height: 0">
<div><iframe frameborder="0" width="200" height="305" src="http://www7.cbox.ws/box/?boxid=655854&amp;boxtag=7j5vas&amp;sec=main" marginheight="2" marginwidth="2" scrolling="auto" allowtransparency="yes" name="cboxmain7-655854" style="border:#FFFFFF 1px solid;" id="cboxmain7-655854"></iframe></div>
<div><iframe frameborder="0" width="200" height="75" src="http://www7.cbox.ws/box/?boxid=655854&amp;boxtag=7j5vas&amp;sec=form" marginheight="2" marginwidth="2" scrolling="no" allowtransparency="yes" name="cboxform7-655854" style="border:#FFFFFF 1px solid;border-top:0px" id="cboxform7-655854"></iframe></div>
</div>
<div id="info" align="left">
<div id="text" align="bot">
<p>Totalt kj&oslash;pte lodd:  
    <?php
mysql_connect ("localhost","root",""); 
mysql_select_db ("login"); 

$sql = "select * from info"; 
       $result = mysql_query ($sql); 

       while ($row = mysql_fetch_array($result)) 
              { 
              $totallodd= $row["totallodd"];  

echo "$totallodd<br>"; 

              } 
?>
</p>
<p> <span class="sd">Dine poeng</span>:</p>
<p>Dine lodd:
  <?php

mysql_connect("localhost","root","");
mysql_select_db("login");


$sql = mysql_query("SELECT * FROM users ORDER BY id ASC"); 

$id ='id';
$buy = 'buy';

$rows =mysql_fetch_assoc($sql);

echo  '' . $rows[$buy];

?>
</p>

<center><script type="text/javascript" src="http://widget.supercounters.com/online_t.js"></script><script type="text/javascript">sc_online_t(395328,"Users Online","0");</script><br><noscript><a href="http://www.supercounters.com/">Free Tumblr Users Online Counter</a></noscript>
</center>
</div>
<?php

     echo "<a href='logout.php'>logge ut!</a>";

?>
</div>
</div>
</div>
<div class="gradientbuttons orangetheme"> </div></div><p>&nbsp;</p>
  </blockquote>
</blockquote>
<div id="fb-root" align="center">
<p style="color:#FF0000" >Du har fortsatt ikke aktivert poeng! <a href="activate.php">klikke her</a> for å få tilgang til poengene dine</p>
</div>

</body>
</html>
<!-- lappserver18 -->

<!-- [SB] PageID 250995577-->
<!-- null -->
4

2 に答える 2

0

あなたの問題はここのmembersarea.phpにあると思います:

$sql = "select * from info";

あなたのinfoテーブルの構造は何ですか?ログインしているユーザーのみを検索するように検索を制限できますか? 何かのようなもの:

$sql = "SELECT * from `info` WHERE `username` = " . $_POST['username']; 

すべてのユーザーにすべてのポイントを還元していると思います。これを行う:

$num_rows = mysql_num_rows($sql);
echo $num_rows;

おそらく、この無料のビデオ チュートリアルが役立つでしょう:
https://phpacademy.org/course/php-register-and-login-tutorial

于 2012-12-05T22:49:31.843 に答える
0

ポイントを表示する前に、ページを閲覧しているユーザーのログインチェックを行う必要があります。現在、クエリ はそれらのテーブル内のすべてのデータを選択しています$sql = "select * from info";$sql = "select * from info";* = すべて。$_SESSION['username']そのユーザーに割り当てられたポイントのみを照会して表示するには、変数を使用する必要があります。

何かのようなもの:

$sql = "SELECT * FROM info WHERE username = " . $_SESSION['username'];

テーブルからユーザー名に一致するすべてのテーブル情報を取得するには、または:

$sql = "SELECT points FROM info WHERE username = " . $_SESSION['username'];

これは、ログインしているユーザー情報をデータベース テーブルから取得して表示するだけです。

于 2012-12-05T21:11:06.717 に答える