0
   <?php
// Inialize session
session_start();
// Check, if username session is NOT set then this page will jump to login page
if (!isset($_SESSION['username'])) {
header('Location: index.php');
}
$online = rand(12,200);
if($_GET['pass'] == "changethis"){
?>
<font color="00c000">
<html>
<head>
<title>Premium Girls ~ Logged in</title>
</head>
<body>

<p align="right">Online Users:<?php echo "$online"; ?></p><br>

<body bgcolor="#004000">
<center><img src="/logo.gif"></img>

<p>Welcome to the Admin Panel, <?php echo $_SESSION['username']; ?>.

<br>
<form method="post" action="newuser.php"><br>
<center>Create a new user:<br></center>
Username:<input type="text" name="username"><br>
Password:<input type="password" name="password"><br>
<input type=submit value="Create new user">
</form>
<br><br>
<div id=footer align=center>Please note we are currently under setup.</div>
</body>
</html></font>

<?php
}else{
?>
<font color="00c000">
<html>
<head>
<title>Premium Girls ~ Payment Processor</title>
</head>
<body>

<p align="right">Online Users:<?php echo "$online"; ?></p><br>

<body bgcolor="#004000">
<center><img src="/logo.gif"></img>

<p>Welcome to the Logged in screen, <?php echo $_SESSION['username']; ?>. Below you will see all the payments linked to your model name.</p>

<?php

$con = mysql_connect("localhost","devacc_yourmum","changeme123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("devacc_models", $con);

$uid = $_SESSION['username'];
$result = mysql_query("SELECT * FROM payments WHERE model = {$_SESSION['username']}");

echo "<table border='1'>
<tr>
<th>Name</th>
<th>Payment ID</th>
<th>Address</th>
<th>Nickname</th>
<th>Email</th>
<th>Skype</th>
<th>CardType</th>
<th>Model Name</th>
<th>Country</th>
</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['Name'] . "</td>";
  echo "<td>" . $row['Payment ID'] . "</td>";
  echo "<td>" . $row['Address'] . "</td>";
  echo "<td>" . $row['Nickname'] . "</td>";
  echo "<td>" . $row['Email'] . "</td>";
  echo "<td>" . $row['Skype'] . "</td>";
  echo "<td>" . $row['cardtype'] . "</td>";
  echo "<td>" . $row['model'] . "</td>";
  echo "<td>" . $row['country'] . "</td>";
  echo "</tr>";
  }
echo "</table>";

mysql_close($con);
?>

<br><br><br><br><br><br>
<div id=footer align=center>Please note we are currently under setup.</div>
</body>
</html></font>


<?php
}
?>

上記は私のコードですが、残念ながらエラーが発生します。モデルのユーザー名を使用してデータベースの支払いテーブルからすべての情報を取得することになっているため、ユーザー名「Bradandrews4」でログインしていて、誰かが私からショーを購入した場合、SELECT * FROM payments WHERE model = bradandrews4それは bradandrews4 になります。ログインしているユーザー名。ユーザー名を出力するには、 $uid または $_SESSION['username'] のいずれかを実行できますが、それをクエリに取得してからテーブルに入れる方法がわかりません。どんな助けでも大歓迎です:)

-ブラッド

4

6 に答える 6

2

クエリを次のように置き換えます。

mysql_query("SELECT * FROM payments WHERE model = '" . mysql_real_escape_string($_SESSION['username']) . "'");
于 2012-04-04T07:33:33.697 に答える
2

入力の周りに配置するだけ''です..?

SELECT * FROM payments WHERE model = '{$_SESSION['username']}'

値を別の変数に割り当てる方が簡単です

$un = mysql_real_escape_string($_SESSION['username']); SELECT * FROM payments WHERE model = '$un'

于 2012-04-04T07:35:35.733 に答える
1

書くだけ

$result = mysql_query("SELECT * FROM payments WHERE model ='".$uid."'");
于 2012-04-04T07:56:34.527 に答える
0

snaderssからの回答のように、値を引用符で囲みます。

また、セッション検証にはセキュリティの脆弱性があります。

if (!isset($_SESSION['username'])) {
    header('Location: index.php');
}

誰かのブラウザがロケーションヘッダーを無視すると、ユーザーにはプレミアムコンテンツが表示されます。誰かがcurl()などを介してサイトにアクセスした場合も同じです。

常にexit();を使用してください。またはdie(); リダイレクトした後。

修正されたコード:

if (!isset($_SESSION['username'])) {
    header('Location: index.php');
    exit();
}

リダイレクトが失敗するとスクリプトが停止するようになりました

于 2012-04-04T08:05:52.110 に答える
0
    $sql = "SELECT * FROM cards WHERE model = '".$uid."' "; 
$result = mysql_query($sql); 

皆さん、ありがとう、私はそれを機能させるために私が変更した2行を投稿しました...私はあなたのすべての投稿も問題を修正したと確信していますが、私はそれを自分で修正することになりました... :)

-ブラッド

于 2012-04-05T18:37:11.547 に答える
0

覚えやすいので、このクエリをそのまま使用できます。

mysql_query("SELECT * FROM payments WHERE model = '{$_SESSION['user']}'");
于 2013-04-04T00:16:52.847 に答える