2011-12-06 12 views
-3

なぜこのコードは行数を2回返しますか?PHPなぜPHPコードは行数を2回返しますか?

<?php 
    include("dbinfo.php"); 
    $link = mysql_connect($mysql_host, $mysql_user, $mysql_password); 
    if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
    } 
    mysql_select_db($mysql_database, $link); 
    $result = mysql_query("SELECT * FROM apptable"); 
    $no = mysql_num_rows($result); 
    mysql_close($link); 
     echo "<h1><big>".$no."</big></h1>"; 
?> 

また、誰かが何とかdbinfo.phpにアクセスしてパスワードを取得できますか?

申し訳ありませんが、次のコードを使用してこの出力を表示していますが、1回の書式設定と2回の行数を2回表示します。

<td> 
     <?php include("regcount.php"); echo $no; ?> 
     </td> 
+2

が、これは –

+0

あなたはそれを呼び出しているどのようにすべてのコードで、質問がある – ajreal

+1

あなたが対見て期待かを説明することができますあなたが実際に見ているものは? – chesles

答えて

3

ファイルを含めているので(エコーする)、もう一度エコーします。

include("regcount.php"); // This will output everything in regcount.php, including formatted count 
echo $no; // Then you're echoing the variable that holds the result of mysql_num_rows() 
+0

インクルード部分は自動的にそれをエコーし​​ます。また、尋ねたいのは、スクリプトの最後の変数がエコーされているなどのことはありません。 – adeelx

+0

はい、何かを含めても、そのファイルを開いて内容をインクルードファイルにコピー/ペーストすることと事実上同じことです。私は、あなたが「スクリプトの最後の変数がエコーされている」ということが何を意味するのか分かりません。 –

+2

@AdeelHasanAkbari、スクリプトの最後の変数はエコーされません。 ''タグの外側にあるテキストと明示的な 'echo'やその他の出力関数の出力のみが出力に含まれます。 – chesles

3

あなたはのは、ここで何が起こっているのか調べてみましょう

echo "<h1><big>".$no."</big></h1>"; 
<?php include("regcount.php"); echo $no; ?> 
1

にそれを言っているので、それが二回$noをエコーです:

<?php include("regcount.php"); echo $no; ?> 

これはecho()コールをしている、regcount.phpが含まれており、実行書式設定された行数を表示します。次に、$noという値が出力されます。その理由は、フォーマット番号(regcount.php)と1つではなく($no)で2回、番号を2回取得しているからです。

あなたの他の質問はですが、設定する変数がすべて設定されている場合は、いいえ、ユーザーは自分のパスワードを見ることができません。それが何かをエコーし​​ているなら、それはそれを表示します。 dbinfo.phpに何が入っているかを見ずに言うのは本当に不可能です。

+0

そこにエコーがありません - 情報ありがとう! – adeelx

2

echo $noを実行する2つのポイントがあります。$noは、2回、付属のregcount.phpに1回、元のファイルに1回エコーされます。

dbinfo.phpについては、あなたのサーバーが誤って構成されている可能性があります。一般的なルールとして、Webサーバのドキュメントパスの外にある機密情報を保持し、相対パス(include("../dbinfo.php")のように)または絶対パスを使用することをお勧めします(include("/some/path/dbinfo.php")のように)。

あなたのdbinfo.phpファイルの生活のパスを追加するset_include_path:???それはいけない

$path = '/some/path/'; 
set_include_path(get_include_path() . PATH_SEPARATOR . $path); 
include("dbinfo.php"); 
+0

これは素晴らしいです!ありがとう! – adeelx

関連する問題