Delete mit PHP

Stell hier mal bitte den Code oder die Seiten selber rein.

Hast du auf Seite 2 mal den Quellcode angeschaut ob in dem verborgenen Feld auch wirklich der Username steht. Nicht das der Fehler bereits hier entsteht.

Die Überprüfung ob jemand eingeloggt ist mach ich am Schluss wenn alles funktioniert.
Welche Überprüfung?
 
Mit Überprüfung meinte ich die Prüfung ob ein Benutzername eingegeben worden ist. Ich stell hier mal der Reihe nach Skript 1 (search.html), Skript 2 (search.php) und das dritte Skript (prgress.php) rein. Ich hoffe du kannst mal drüber schauen und den Fehler finden.

Skript 1:
PHP:
<html>
<head>
    <title>Delete User</title>
</head>
<body>
<h2> Please enter the Username you want to delete</h2>

<script type="text/javascript">
    function kontrollfunktion() {
        if (document.getElementById('username').value == '') {
            alert('Insert Username!');
            return false;
        } else return true;
    }
</script>

    <form method="post" action="search.php" onsubmit="return kontrollfunktion()">
  <fieldset>
    <legend><b>Delete The User</b></legend>
        <table>
            <tr>
                <td><label for="username">Username:</label></td>
                    <td><input type="text" id="username" name="username" /><br /></td>
            </tr>            
        </table>
    </fieldset>
    <input type="submit" value="Search" name="search_submit" />
     <input type="button" 
    onclick="window.location.href='http://localhost/testseite.html';" value="Back"></button>
</form>
</body>
</html>

Skript 2:
PHP:
 <?php
 require_once('verbvars.php');

$username=$_POST['username'];
         
      // Connect to database
      $db = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
      mysqli_set_charset($db, "utf8"); 
 
    
  
        echo'<h2>Do you really want to delete the user ?</h2>';
        
        $sql= "SELECT * FROM employee WHERE username='$username'";
        $result=mysqli_query($db,$sql);
        if (mysqli_num_rows($result) == 1) {
            while($row =mysqli_fetch_array($result)){
            
                echo '<fieldset>';
                echo '<legend><b>Delete User</b></legend>';
                echo $row['forename'];
                echo' ';
                echo $row['surname'];
                echo '</fieldset>';
                echo'<br />';
                echo'<br />';
            }
            
        
        }
    else{
    echo '<fieldset>';
    echo '<legend><b>Delete User</b></legend>';
    echo '<h2>Sorry.No User found called <u><i> '.$username. '</i></u></h2>';
    echo '<br />';
    echo '<a href="search.html" >Back to Search</a>';
    echo'</fieldset>';
    exit();
    }

  ?>
  
   <form method="POST" action="progress.php">
   <input type="submit" value="Delete" name="delete_submit" > 
   <input type="hidden" value="$_POST['username']" name="username">
   <input type="button" 
    onclick="window.location.href='http://localhost/search.html';" value="Back"></button>
  </form>

 </body>
 </html>

Und das 3. Skript
PHP:
<?php
require_once('verbvars.php');
require_once('begin.php');

$username=$_POST['username'];
$db = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
  mysqli_set_charset($db, "utf8"); 
  
    
    
        $sql="DELETE FROM employee WHERE username='$username' LIMIT 1";
        $rel=mysqli_query($db,$sql);
        
        //while($zeile=mysqli_fetch_array($rel)){
        //$row=$zeile[username];
        //}
        
        echo '<fieldset>';
        echo '<legend><b>Delete User</b></legend>';
        echo '<h3>User ' .$username.' successfully deleted</h3>';
        echo '</fieldset>';
        echo '<br>';
        echo '<a href="http://localhost/search.html">Delete another User</a>';
        echo '<br>';
        echo '<a href="http://localhost/testseite.html">Home</a>';
        
        mysqli_close($db);
        exit();
    
?>
Danke vielmals.
 
Die zweite Seite enthält den Fehler:

PHP:
<input type="hidden" value="$_POST['username']" name="username">

Wenn du dir den Quelltext anschaust, dann erkennst du das als Inhalt im versteckten Feld nicht der Wert der POST-Variablen "username" drin steht sondern genau "$_POST['username']".

Du hast vergessen den Inhalt mit echo auszugeben:

PHP:
<input type="hidden" value="<?php echo $_POST['username']; ?>" name="username">

So geändert klappt es wie es soll.
 
Zurück