Formularausgabe auf gleicher Seite (Affenformular)

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 ’

Artikelnummer
Name
EAN
Lagerort
Menge
';

            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);
    }

?>[/PHP]

[HTML]

Lager EAN eingeben:

[/HTML]

LG

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 } ?>

Test Text:
<?php echo "

$output

"; ?> [/php]

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 < 2“ statt „1 < 2“ stehen.
Es kommt sich also immer auf den Kontext an, wie escaped werden muss.

Also:
[PHP]

<?php echo htmlentities($output) ?>

[/PHP]