【解決方法】Csvチェックはコード全体を壊しますか?

[ad_1]

ちょっと、これにはエラーはありませんが、ユーザー入力がcsvにあるかどうかを確認したい場合、コードが機能しなくなります。 エラーも何もありません。理由がわかりません??
これがバックエンドです

PHP
<pre><?php
session_start();

// onderscheid maken tussen adressen met of zonder toevoeging
if ($_SERVER['REQUEST_METHOD'] === 'POST') { 
    $Zipcode = $_POST['Zipcode'];
    $Housenumber = $_POST['Housenumber'];
    $Toevoeging = $_POST['Toevoeging'];
    $Beschrijving = $_POST['Beschrijving'];

    //toevoeging en beschrijving zijn geen verplichte velden
    if(!empty($Zipcode) && !empty($Housenumber)){ 
      // //de csv check stopte de hele code??
      // Set the path to your CSV file
      $csv_file = "NewPostcodesCheckt.csv";

      // Open the file for reading
      $file_handle = fopen($csv_file, "r");

      // Read the contents of the file
      while (!feof($file_handle)) {
        // Get the current row of data from the CSV
        $row_data = fgetcsv($file_handle);

        // Loop through each item in the row
        foreach ($row_data as $item) {
          // Check if the item matches either of the user inputs
          if ($item == $zipcode && $item == $Housenumber) {
          // User input found in the CSV
          echo "User input found!";
          break 2; // Exit the while and foreach loops
          }elseif($item == $zipcode && $item == $Housenumber && $Toevoeging){
            echo "User input found!";
          }else{
            echo "No user input found";
          }
        }
      }

      // Close the file handle
      fclose($file_handle);
      //infraorders moet nog worden toegevoegd

        $input_xml = '<?xml version="1.0" encoding="UTF-8"?>
        <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
          <env:Header/>
          <env:Body>
            <grexxRequest>
              <header>
                <reference>Example zipcodecheck</reference>
              </header>
              <requestData>
                <ZipCodeCheckRequest>
                  <Portfolio>Teleworker</Portfolio>
                  <ZipCode>' . $Zipcode . '</ZipCode>
                  <HouseNr>' . $Housenumber . '</HouseNr>
                  <HouseNrExtension/>
                </ZipCodeCheckRequest>
              </requestData>
            </grexxRequest>
          </env:Body>
        </env:Envelope>';
        
       
        $url = "https://service.grexx.today/interfaces/routit/75yo9a83fc60f1y06bt9/zipcodecheck";

        $ch = curl_init();

        curl_setopt($ch, CURLOPT_VERBOSE, 1);
        curl_setopt($ch, CURLOPT_URL, $url); 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type: application/xml"));
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_TIMEOUT, 40);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_USERPWD, "yu8zg3adky1ywdf6srbzi2zfpatxm0ef:Va9`+nh&niwZzsE?xR88LpUhSGB)Vv83");
        curl_setopt($ch, CURLOPT_POSTFIELDS, $input_xml);
        curl_setopt($ch, CURLOPT_POST, 1);
        $result = curl_exec($ch);

        // Curl
        $xml = simplexml_load_string($result);
        $array = array();
        $xml->registerXPathNamespace('a', 'http://schemas.grexx.net/atalanta/connect');

        foreach($xml->xpath('/soap:Envelope/soap:Body/a:grexxResponse/a:responseData/a:ZipCodeCheckResponse/a:AvailableSuppliers') as $event) {
            array_push($array, $event);
        }
        $jsonstring = json_encode($array);

        echo $jsonstring;
    }else{
        //echo "<script>alert('Vul eerst de verplichte velden in voordat je hier komt ');</script>";
        // dit nog een error laten zien in de json code van index.php
        echo "error";
    }
}else{
    header("Location: index.php");
}

csv コードが非アクティブ化されている場合、コード全体が正常に機能します。

私が試したこと:

私はcsvが苦手なので、phpでcsvチェックを調べてみましたが、長い検索の結果、これが得られました。 この問題についてGoogleに尋ねようとしましたが、javascriptに関する詳細情報が得られました

解決策 1

コードを実行しても、それが正しいとは限りません。 :笑う:
開発プロセスは電子メールを書くことと考えてください。コンパイルが成功したということは、電子メールを適切な言語 (たとえば、ドイツ語ではなく英語) で作成したことを意味します。電子メールに送信したいメッセージが含まれていたわけではありません。

これで、開発の第 2 段階に入ります (実際には第 4 段階または第 5 段階ですが、後で前の段階に進みます): テストとデバッグです。

それが何をするのか、そしてそれがあなたが望んでいたものとどのように違うのかを見ることから始めてください。 これは、なぜそれを行っているのかについての情報を提供するため、重要です。 たとえば、プログラムがユーザーに数字を入力させることを目的としており、それを2倍にして答えを出力する場合、入力/出力が次のようになると:

Input   Expected output    Actual output
  1            2                 1
  2            4                 4
  3            6                 9
  4            8                16

次に、問題がそれを2倍にするビットにあることは明らかです-それ自体を加算したり、2倍したりするのではなく、それ自体を乗算して入力の2乗を返します。
それで、コードを見ることができ、それがここのどこかにあることは明らかです:

PHP
function double($a)
{
    return $a * $a;
}

何がうまくいかないのかがわかったら、デバッガーを使用して原因を突き止めます。 メソッドの最初の行にブレークポイントを置き、アプリを実行します。 ブレークポイントに到達すると、デバッガーが停止し、制御がユーザーに渡されます。 コードを行ごとに実行し (「シングル ステップ」と呼ばれます)、必要に応じて変数の内容を確認 (または変更) できるようになりました (コードを変更して、必要に応じて再試行することもできます)。
コードを実行する前に、コードの各行が何をすべきかを考え、「ステップ オーバー」ボタンを使用して各行を順番に実行したときに実際に何をしたかを比較します。 それはあなたが期待したことをしましたか? その場合は、次の行に進みます。
そうでない場合、なぜですか? どう違うの?
うまくいけば、そのコードのどの部分に問題があり、何が問題なのかを突き止めるのに役立つはずです。
これはスキルであり、開発だけでなく現実の世界でも役立つため、開発する価値のあるスキルです。 そして、すべてのスキルと同様に、それは使用することによってのみ向上します!

[ad_2]

コメント

タイトルとURLをコピーしました