Delete mit PHP

Hiob

Mitglied
Hallo Leute.
Ich bins mal wieder.
Folgende Frage: Ich habe ein Formular(search.html), in dem man man Benutzername eingeben muss. Dann wird in der Datenbank der Nutzer gesucht und in einem neuen Formular(search.php) ausgegeben und gefragt ob man diesen Benutzer wirklick löschen möchte. Nun gibt es zwei Buttons. Einmal "Delete" und einmal "Back". Wenn der User auf Delete klickt soll der Benutzer aus der Datenbank gelöscht werden(delete.php). Aber da ist mein Problem. Der Benutzer wird nicht aus der DB gelöscht.
Ich bin mir ziemlich sicher, dass ich den Wert des Textfeldes im 1. Formular, also den Username, in das 3. Formular irgendwie übergeben muss, dass das gelöscht wird. Nun meine Frage.
Wie kann ich den Benutzernamen übergeben, sodass ich die Variable in der der Name gespeichert wird, in meine SQL-Abfrage einbauen kann.
Dank euch!
 
Du musst am besten ein verstecktes Feld auf die Seite einbauen und hier den Benutzernamen eintragen. Beim Abschicken des Formulars wird der Inhalt dann via GET/POST an die nächste Seite übergeben und kann entsprechend verwendet werden.
 
<form ......>
<input type="hidden" name="benutzername" value="BENUTZERNAME_PLATZHALTER"/>

....

</form>



$_GET['benutzername']
$_POST['benutzername']


:)
 
Dank euch für die schnelle Antwort.
Allerdings ist mir eins nicht so klar. Wenn ich das HIDDEN-Feld im zweiten Formular erstelle. Wie kann ich das dann im dritten Formular aufrufen?
Also im zweiten Formular hab ich nun folgendes:
PHP:
 <form methode="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>

Ist das soweit richtig? Und wie verfahre ich nun im 3ten Formular, indem der Benutzer gelöscht werden soll!?
Merci
 
Oben schreibst du von "search.html", "search.php" und "delete.php", im Code oben ist "progress.php" angegeben!?
Ist jetzt "progress.php" die dritte Seite oder ruft das Skript sich selber auf?

Wenn es dar Name der dritten Seite ist, kannst du es ja wie oben auch mit $_POST["username"] verwenden.

Wenn sich die Seite selbst aufruft, musst du ja auf die dritte Seite weiterleiten und da musst du dann den Wert des Feldes mitgeben.

PHP:
if (isset($_POST["delete_submit"]) header("Location:delete.php?username=" .$_POST["username"]);
 
Also "progress.php" ist die dritte Seite. Die wird wenn alles lauft umgenannt in "delete.php".
Und wie kann ich das HIDDEN-Feld im dritten Skript aufrufen? einfach mit

$name=$_GET['username'];

oder wie soll das dritte Skript wissen um welchen Benutzer es gerade geht?
 
Also wenn "progress.php" gleich die dritte Seite ist, dann wird diese ja nach dem Abschicken automatisch aufgerufen und die POST-Werte auch direkt an diese Seite weitergegeben.

Du kannst dort also mit $_POST["username"] bzw. $name = $_POST["username"] arbeiten.
 
Also irgendwie find ich den faden nicht. Hier ist mal mein drittes Skript:
PHP:
<?php
require_once('verbvars.php');
require_once('begin.php');

$username=$_GET['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();
    
?>

Da soll der Username aus dem ersten und zweiten Skript übergeben und gelöscht werden. Wenn ich das Skript ausführe kommt "User successfully deleted" aber eigentlich sollte "User [Username] successfully deleted" kommen. Aber das wird einfach weggelassen. Hab ich was falsch deklariert?
Ausserdem wird der User nicht aus der Datenbank gelöscht. Somit gehe ich davon aus das die Variable falsch ist.
 
Hey.
Also das mit
PHP:
$username=$_POST['username'];
habe ich auch schon gesehen. Hat aber leider auch nichts gebracht. Die Überprüfung ob jemand eingeloggt ist mach ich am Schluss wenn alles funktioniert.
Das mit mysql_real_escape_string hat mir leider auch nicht weiter geholfen. Ich weiss wirklich nicht wie ich da ran gehen soll.
 
Zurück