0

私の HTML と CSS の知識は非常に優れていますが、PHP/SQL に関しては、先週までまったく知りませんでした (複数の HTML/CSS のみの Web サイトを開発しました)。サイトを開発する...ウェブサイトは最初は見栄えが良かったです(何度か見ましたが、一度に何時間も見たことはありませんでした)...以前のパートナーに仕事の代金を支払いました....最近、本当に本当に精査する時間がありましたウェブサイトを一度に何時間も....多くのバグを発見しました....パートナーが私のヘルプリクエストに応答しません....私はこれらのバグを自分で修正するために PHP を学ばなければなりません :)

ここに問題の 1 つがあります: 特定のユーザーの「富」が(< 1) または (>= 1) ですが、この値を取得できないようです。資産 < 1 の場合はXを実行しますが、資産 >= 1 の場合はYを実行します。Yが富の任意の値(0および負の数を含む)に対して実行されたことを除いて、すべて正常に機能しました。SQL データベースから値をフェッチするグローバル変数 $stats9999 (ローカル変数としても試しました) を宣言して、これを修正しようとしましたが、ここから問題が始まります。phpコードは次のとおりです。

<?php session_start();

if ((($_SESSION['role']) != SHA1('user')) && (($_SESSION['status']) != SHA1('active')))       
{
header( 'Location: index.php' ) ;
session_destroy();
 } else 
include 'connect.php' ; //Connects to SQL database just fine

$_SESSION['fname'];
$_SESSION['login_id'];
$_SESSION['user'];

$stats9999=mysql_fetch_assoc(mysql_query("SELECT wealth FROM stats WHERE login_id = '"     
. mysql_real_escape_string($_SESSION['login_id']) . "'")); //Global $stats9999

if {.....} //Several if...else if statements in a row but no problems here as far as I 
//can tell, one of the problems is in next series of lines of code


else if  ((($_POST['hidden'] ) == 'Function') && (($stats9999) == 0)) {

    $message = 'Text1';

echo "<SCRIPT>
alert('$message');
location = 'profile.php';
</SCRIPT>"; 


            }

else if  ((($_POST['hidden'] ) == 'Function') && (($stats9999) != 0)) {

    $message = 'Text2';

echo "<SCRIPT>
alert('$message');
location = 'profile.php';
</SCRIPT>"; 


            }

$stats9999 を介して「富」を説明しようとしない場合、ブラウザは「関数」を正常に認識し、サイトは適切に動作します。ただし、問題は $stats9999 が認識されていないようです。私は、コードの冒頭近くでクエリしている SQL データベースおよび/またはデータベース エントリをブラウザが何らかの形で「認識/認識」していない、および/または必要なエントリを取得 (「フェッチ」) していないと想定しています (I'私のコードの間違いが原因だと思います)。実験として、($stats9999 != 0) と ($stats9999 == 0) を ($_SESSION['user'] != " ") と ($_SESSION['user'] == " ") に置き換えました。 . コードは、これらの $_SESSION 値を " " と等しくない文字列として "認識/認識" し、サイトは適切な方法で動作します。

また、アラート ボックスで「$stats9999」(さらにこの名前のバリエーション、これが違いを生むかどうか疑問に思っていますが、私はそうは思いません) をエコーし​​ようとして $stats9999 をテストしましたが、多くのバリエーションで、(a) を含むさまざまな望ましくない結果が得られました。ページ クラッシュ (b) 空白のアラート ボックス (c) リソース ID#2。上記のコードでは、サイトがクラッシュします。

私が行った紛らわしい声明を明確にさせていただきます....ありがとう!!

4

1 に答える 1

0

mysql_fetch_assocキーがselectクエリの列名である連想配列を返します。$stats9999列を含むスカラー変数であるかのように使用しようとしています。あなたは書く必要があります:

$wealth = $stats9999['wealth'];

$wealthその後、ifステートメントで使用できます。

于 2013-08-16T01:45:55.890 に答える