0
  1. 入力なしで処理するphpファイルをリクエストするのは困難でした。そして、私は login.php で PDO を使用しています。エラーは「Processing.php を読み込めません、ステータス:500」です。

main.php:-

<head>
    <?php require_once '../scripts/login.php';?> //require action
<head>
<body>
<div id='line1'></div>

require(["dojo/request","dojo/domReady!"],                      
function(request)
{ready(function()
    {request('processing.php').then( //request action
     function(response){dom.byId(line1).innerHTML=response;},
     function(error){alert(error);
 });
    ......
</body>

processing.php:-

<?php
    echo "By default, fetch mk7BC data<br/>";
echo 
"<table border='1' cellspacing='0' cellpadding='2'>
<tr style='background-color:lightblue; font-weight:normal; font-size:small;'>
    <th style='width:40px'>ID</th>
    <th style='width:80px'>SN</th>
    <th style='width:100px'>Tested</th>
    <th style='width:40px'>Jig</th>
    <th style='width:80px'>Card</th>
    <th style='width:40px'>Batch</th>
    <th style='width:40px'>COM</th>
    <th style='width:40px'>3rdCOM</th>
    <th style='width:40px'>IO34</th>
    <th style='width:40px'>Comment</th>
</tr>";
    try
    (
        $dbh-> query('use testdata1970_10');
    $color='1';     
        foreach($dbh->query('call getallusers();') as $row)
        {if($color==1)
    {echo "<tr style='background-color:lightyellow; font-weight:lighter; 
            font-size:x-small;'>";
    $color='2';
        }
    else
            {echo"<tr style='background-color:lightgreen; font-weight:lighter;
            font-size:x-small;'>";
    $color='1';
    }

        echo
        "<td>{$row['idtest']}</td>
        <td>{$row['SN']}</td>
        <td>{$row['time_tested']}</td>
        <td>{$row['id_jig']}</td>
        <td>{$row['mfg_code']}</td>
        <td>{$row['batch_no']}</td>
        <td>{$row['com_status']}</td>
        <td>{$row['3rdcom_status']}</td>
        <td>{$row['IO34_status']}</td>
        <td>{$row['comment']}</td>
        </tr>";
            }
     echo "</table>";
    )
 ?>

login.php:-

    <?php
         dbname=testdata1970_10;
     $dsn = 'mysql:host=localhost; Port=3306';
     $user = 'root';
     $pswd = '';
     $dbh = new PDO($dsn, $user, $pswd,
         array(PDO::ATTR_PERSISTENT, TRUE));
         $dbh->setAttribute(PDO::ATTR_ERRMODE, 
         PDO::ERRMODE_EXCEPTION);
     $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
 ?>

助言してくださいありがとうクレメント

4

2 に答える 2

0

ご意見ありがとうございます。これですべてが機能しました。$dbh は login.php から来ており、main.php と processing.php に require_once login.php があります。ただし、login.php のスクリプトは main.php のすべてのスクリプトで使用できるため、なぜ login.php を processing.php で required_once にする必要があるのか​​ わかりません。$dbh は login.php のグローバル スコープにあり、login.php は require_once であるため、process.php ではなく、main.php で require_once login.php を使用します。例えば;

login.php - <?php $dbh="blah"?>
main.php - <?php require_once login.php?>
A.php - <?php $dbh... ?>
B.php - <?php $dbh... ?>
C.php - <?php $dbh... ?> 

等々。すべてのスクリプトでrequire_onceを繰り返さないように、login.phpを一度だけ利用できるようにしたいだけです。「ファイルがインクルードされると、それに含まれるコードは、インクルードが発生した行の変数スコープを継承します。呼び出しファイルのその行で使用可能な変数は、呼び出されたファイル内で、その時点から使用可能になります。 " PHP.netで。私が間違っている場合は修正してください。ありがとうクレメント

于 2013-02-20T03:37:16.127 に答える
0

Stackoverflow は、「X を実行するにはどうすればよいですか?」という特定の場合に最適です。質問。「ここにすべてのコードがあります。エラーを見つけるのを手伝ってください!」にはあまり適していません。自分で問題を特定する努力をしてから、具体的な質問をする必要があります。

たとえば、Javascript に問題がありますか? それともPHPの問題ですか?おそらくあなたのSQLに問題がありますか?

この場合、あなたは processing.php を開くとエラー 500 が返されると言っています。つまり、このエラーはおそらくあなたの Javascript とは何の関係もないということです。代わりに、PHP スクリプトの実行に問題があるのはおそらく Web サーバーです。

processing.php の何が問題なのですか? 構文エラーはありますか? ブラウザで processing.php を開くと、いくつかの手がかりを含む素敵なエラー メッセージが表示される場合があります。それとも、テキスト エディタでエラーをハイライト表示しますか? そうでない場合は、実行してみてください

php -l processing.php

これにより、ファイルの構文エラーがチェックされます。あなたはおそらく次のようなものを得るでしょう:

PHP Parse error:  syntax error, unexpected '(', expecting '{' on line 18

を18 行目(の aに置き換える必要があるようです。{

これをphp -lもう一度修正すると、47 行目に (ほとんど) 同じエラーが表示されます。それを修正します。繰り返す。try対応する なしのがあるようですcatch! それを修正します。繰り返す。

最終的には、まだ問題があるかもしれませんが、問題を突き止めようと努力したので、より適切な質問をすることができます。

たとえば、processing.php の $dbh はどこから来たのでしょうか? processing.php の先頭に login.php を含めていますか?

于 2013-02-19T11:43:06.330 に答える