• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage Formularausgabe auf gleicher Seite (Affenformular)

padde95

Neues Mitglied
Hallo,

ich würde gerne, dass die Daten die ich mir aus der Datenbank ziehe in einer Tabelle auf der selben Seite angezeigt werden wo auch das Formular ist.

Laut Internet soll das mit einem Affenformular gehen (if (isset($_POST['submit'])) etc.).

Ich steh da allerdings auf dem Schlauch. Kann mir einer sagen wo ich was einfügen muss?

Hier der Code

PHP:
<?php

    $serverMSSQL = "";
    $datenbankMSSQL = "";
    $usernameMSSQL = "";
    $passwortMSSQL = "";
        
        $MSSQLconnectionInfo = array( "Database"=>$datenbankMSSQL, "UID"=>$usernameMSSQL, "PWD"=>$passwortMSSQL, "CharacterSet" => "UTF-8");
        $mssqlLink = sqlsrv_connect($serverMSSQL, $MSSQLconnectionInfo);
        if(!$mssqlLink) {
            die(print_r(sqlsrv_errors(), true));
        }else{
            $sql =     "select art.ArticleNumber, art.Name1, EANCode , CONCAT(sloc.StorageLocation, '-' ,splac.StoragePlace) Lagerort, ISNULL(Amount, '') Amount
from tbl_storage_ArticleStorages ast
left join tbl_storage_StorageAmounts amo on amo.FK_ArticleNumber = ast.FK_ArticleNumber
inner join tbl_storage_Articles art on art.ArticleNumber = ast.FK_ArticleNumber
inner join tbl_storage_StorageLocations sloc on sloc.StorageLocationId = ast.FK_StorageLocationId_Proposal_Sale
inner join tbl_storage_StoragePlaces splac on splac.StoragePlaceId = ast.FK_StoragePlaceId_Proposal_Sale
where ast.FK_BranchId = 'A4114298-59B2-42C8-AE2E-1F29AA60F9B1' and EANCode = '".$_POST['ean']."'";

            $stmt = sqlsrv_query($mssqlLink, $sql);
            if($stmt === false){
                 die(print_r(sqlsrv_errors(), true));
            }else {
                $k = 0;
            
            
            
        echo '
        <br><table border="1">';
echo '
        <tr>
        <th>Artikelnummer</th>
        <th>Name</th>
        <th>EAN</th>
        <th>Lagerort</th>
        <th>Menge</th>
        </tr>';       
    
                
                while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
                
                            {   
            echo '
        
        <tr>   
            <td>'.$row['ArticleNumber'].'</td>
            <td>'.$row['Name1'].'</td>
            <td>'.$row['EANCode'].'</td>
            <td>'.$row['Lagerort'].'</td>
            <td>'.$row['Amount'].'</td>
        </tr>
    ';
            }

                
                }
                sqlsrv_free_stmt($stmt);
            }
                    echo '</table>';
            sqlsrv_close($mssqlLink);
        }

?>

HTML:
<!DOCTYPE html>
<html>

<head>

<link href="style.css" rel="stylesheet">

<title>Lager</title>

</head>

<body>


 <form action="search.php" method="POST">
    <label for="ean">EAN eingeben: </label>
    <input type="text" name="ean" required><br /><br />
    <input type="submit" id="button" value="Senden">
</form>



</body>

</html>

LG
 
Werbung:
Das sind Grundlagen, die man könnten sollte!

Ein einfaches Beispiel eines Affenformulars:
PHP:
<?php
    $output = "";
   
    if (isset ($_POST['text']))
    {
       $output = htmlentities($_POST['text']);
       
       // Hier noch andere Dinge nach dem Absenden des Formulars
    }
?>
<!doctype html>
<html lang="de">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Test</title>
  </head>
  <body>
  <form action="" method="post">
   Text: <input type="text" name="text" requires><br>
   <input type="submit" name="submit" value="Los geht's">
   </form>
<?php echo "<p>$output</p>"; ?>
  </body>
</html>
 
Das sind Grundlagen, die man könnten sollte!

Ein einfaches Beispiel eines Affenformulars:
PHP:
<?php
    $output = "";
   
    if (isset ($_POST['text']))
    {
       $output = htmlentities($_POST['text']);
      
       // Hier noch andere Dinge nach dem Absenden des Formulars
    }
?>
<!doctype html>
<html lang="de">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Test</title>
  </head>
  <body>
  <form action="" method="post">
   Text: <input type="text" name="text" requires><br>
   <input type="submit" name="submit" value="Los geht's">
   </form>
<?php echo "<p>$output</p>"; ?>
  </body>
</html>

Als kleiner Tipp:
Ich würde immer erst unmittelbar vor der Ausgabe escapen.
In deinem Beispiel machst du das bereits präventiv bei der Verabeitung und vertraust im Anschluss in der View "blind" darauf, dass die Daten sicher sind. So entstehen leicht Sicherheitslücken.

Außerdem werden Probleme auftauchen, wenn unser Ausgabemedium einmal nicht HTML sein sollte sondern Formate wie Excel, CSV, PDF, JSON, SQL etc.
Diese müssen nicht vor HTML Code Injection geschützt werden, da sie ja gar kein HTML verarbeiten.

Ganz im Gegenteil muss dann sogar wieder umgewandelt werden, um die korrekten Daten wiederherzustellen. Sonst hätte man in einer Excel Tabelle plötzlich "1 &lt; 2" statt "1 < 2" stehen.
Es kommt sich also immer auf den Kontext an, wie escaped werden muss.

Also:
PHP:
<p><?php echo htmlentities($output) ?></p>
 
Werbung:
Zurück
Oben