2017-10-22 6 views
2

私は少しのサイトで作業しています。 私の最初のファイルは、セックスとカテゴリの名前を入力できる場所です。ファイルから値を返す(PHP)

(ETC:スティーブンMジュニア)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
     <title>Geef u borstnummer</title> 
    </head> 
    <p> 
     <body> 
      <h3>Geef uw borstnummer in selecteer uw categorie en geslacht</h3> 
      <form method="post" action="search.php?go" id="searchform"> 
       <input type="text" name="nummer"> 
       <select id="categorie" name="categorie"> 
        <option value = "0"> Selecteer Categorie </option> 
        <option value = "B"> Benjamin </option> 
        <option value = "P"> Pupil </option> 
        <option value = "M"> Miniem </option> 
        <option value = "K"> Cadet </option> 
        <option value = "L"> Scholier </option> 
        <option value = "J"> Junior </option> 
        <option value = "S"> Senior </option> 
        <option value = "M"> Master </option> 
       </select> 
       <select id="geslacht" name="geslacht"> 
        <option value = "0"> Selecteer geslacht </option> 
        <option value = "M"> Man </option> 
        <option value = "V"> Vrouw </option> 
       </select> 
       <input type="submit" name="submit" value="Search"> 
      </form> 
     </body> 
    </p> 
</html> 

第二のファイルが$_POST方法でこれら3つの変数を使用し、その後のMySQLデータベースでそれらを検索します。 このファイルはこの人に関する詳細情報をエクスポートします。

(など:性別、名前、カテゴリ、クラブ、生年月日、番号)これらはすべて変数に格納されています。

(等:$Name$Category、...)

<?php 
if(isset($_POST['submit'])) 
{ 
    if(isset($_GET['go'])) 
    { 
     // if(preg_match("/^[0-9]*$/", $_POST['nummer'])) 
     // { 
      $nummer_in=$_POST['nummer']; 
      $categorie_in=$_POST['categorie']; 
      $geslacht_in=$_POST['geslacht']; 

      define('DB_NAME', 'atletiek'); 
      define('DB_USER', 'root'); 
      define('DB_PASSWORD', ''); 
      define('DB_HOST', 'localhost'); 

      $db=mysqli_connect (DB_HOST, DB_USER, DB_PASSWORD) or die ('I cannot connect to the database because: ' . mysqli_error()); 

      $mydb = mysqli_select_db($db, "atletiek"); 

      $sql="SELECT * FROM `atleten` WHERE `Borstnr` = $nummer_in AND `Categorie` = '$categorie_in' AND `Geslacht` = '$geslacht_in' "; 

      $result=mysqli_query($db, $sql); 
      if (!$result) 
      { 
       printf("Error: %s\n", mysqli_error($db)); 
       exit(); 
      } 

      while($row=mysqli_fetch_array($result)) 
      { 
       $ID =$row['ID']; 
       $Geslacht=$row['Geslacht']; 
       $Naam = $row['Naam']; 
       $Categorie = $row['Categorie']; 
       $Club = $row['Club']; 
       $GeboorteJ = $row['Geboortej']; 
       $Nummer = $row['Borstnr']; 

      } 
     // } 
    } 
    else 
    { 
     echo "Please enter a search query "; 
    } 
} 
?> 

今私は、画面上でこれらの値をプリントアウト3番目のファイルを作りたいです。 どうすればいいですか?

アンカー(?name=Steven)の使用について聞いたことがありますか、ファイルのURLにそのようなものはありませんでしたが、私はこれをどのように使用するかわからず、情報をたくさん見つけることができません。

誰かが私を助けることができますか?

+0

これを試してみてくださいあなたはいくつかのコードを共有することができます – M0ns1f

+0

@ M0ns1fはそれらを追加しました –

+0

私が問題を正しく理解していれば、第3のファイルは必要なく、第2のファイルからこれらの値を印刷できます。 – saband

答えて

0

あなたは、単にあなたのsearch.phpは次のようになりますので、あなたは、データベースから値を取得同じスクリプトで出力エコーすることができます

<?php 
    if(isset($_POST['submit'])) 
    { 
     if(isset($_GET['go'])) 
     { 
      // if(preg_match("/^[0-9]*$/", $_POST['nummer'])) 
      // { 
       $nummer_in=$_POST['nummer']; 
       $categorie_in=$_POST['categorie']; 
       $geslacht_in=$_POST['geslacht']; 

       define('DB_NAME', 'atletiek'); 
       define('DB_USER', 'root'); 
       define('DB_PASSWORD', ''); 
       define('DB_HOST', 'localhost'); 

       $db=mysqli_connect (DB_HOST, DB_USER, DB_PASSWORD) or die ('I cannot connect to the database because: ' . mysqli_error()); 

       $mydb = mysqli_select_db($db, "atletiek"); 

       $sql="SELECT * FROM `atleten` WHERE `Borstnr` = $nummer_in AND `Categorie` = '$categorie_in' AND `Geslacht` = '$geslacht_in' "; 

       $result=mysqli_query($db, $sql); 
       if (!$result) 
       { 
        printf("Error: %s\n", mysqli_error($db)); 
        exit(); 
       } 

       while($row=mysqli_fetch_array($result)) 
       { 
        $ID =$row['ID']; 
        $Geslacht=$row['Geslacht']; 
        $Naam = $row['Naam']; 
        $Categorie = $row['Categorie']; 
        $Club = $row['Club']; 
        $GeboorteJ = $row['Geboortej']; 
        $Nummer = $row['Borstnr']; 
        //Output the values 
        echo '<div><p>'; 
        echo 'user id : '. $ID .' Geslacht : '.$Geslacht.' Naam : '. $Naam .' Categorie : '.$Categorie.' Club : '.$Club.' Geboortej : '.$GeboorteJ.' Borstnr : '.$Nummer.'</p></div>'; 

       } 
      // } 
     } 
     else 
     { 
      echo "Please enter a search query "; 
     } 
    } 
    ?> 
+0

私はこれを知っていますが、2番目のファイルにはデータベースのパスワードが含まれています。これはセキュリティ上のリスクが高いため、このファイルを使用してデータベースにアクセスし、データを抽出して別のファイルに移動したいだけです –

+0

セキュリティリスクは作成していません検索ファイルの出力はhtmlですが、[PHPでSQLインジェクションを防ぐにはどうすればいいですか?](https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) – M0ns1f

+0

@Cyber​​_Star It's理論的には、サーバーが誤って構成されている場合に攻撃者によってアクセスされる可能性のあるスクリプト内にセキュリティ資格情報を保持するという悪い方法です。それらをWebルート経由でアクセスすることができない場所に格納し、 'require'または' include'を通してロードする必要があります。あなたが持っているすべてのスクリプトにカット&ペーストの接続コードをつけることは、持続可能な開発の練習ではなく、非常に迅速に完全な無秩序につながります。 – tadman

0

は...あなたの中の一部の周りに

$html = ' 
<table> 
    <thead> 
     <tr> 
      <th>ID</th> 
      <th>Geslacht</th> 
      <th>Naam</th> 
      <th>Categorie</th> 
      <th>Club</th> 
      <th>Geboortej</th> 
      <th>Borstnr</th> 
     </tr> 
    </thead> 
    <tbody>'; 
while($row=mysqli_fetch_array($result)) 
{ 
    $ID =$row['ID']; 
    $Geslacht=$row['Geslacht']; 
    $Naam = $row['Naam']; 
    $Categorie = $row['Categorie']; 
    $Club = $row['Club']; 
    $GeboorteJ = $row['Geboortej']; 
    $Nummer = $row['Borstnr']; 

    $html .= ' 
    <tr> 
     <td>'.$ID.'</td> 
     <td>'.$Geslacht.'</td> 
     <td>'.$Naam'.</td> 
     <td>'.$Categorie.'</td> 
     <td>'.$Club.'</td> 
     <td>'.$GeboorteJ.'</td> 
     <td>'.$Nummer.'</td> 
    </tr>'; 
} 
$html .= '<tbody></table>'; 
+0

PHPは文字列の内部に '$ x'のような単純な変数を補完することができます。二重引用符を使用してください。それは全体を避けます。 "..."。ダンス。 – tadman

+0

あなたは正しいです、それはちょうど習慣の問題です – Sayonara

関連する問題