isset falsch oder nur die Prüfung?

analogbernd

Mitglied
Hallo, der User hat die Möglichkeit eigene Accounts selbst zu löschen.
Dazu habe ich unten stehenden Code. Funktioniert auch prima, nur löscht der User
seinen Account, egal ob er ja oder nein drückt.

Kann mir einer sagen, was falsch ist?

Vielen Dank

PHP:
<form name="form1" method="post" action="edit_profile.php">
        <input name="delete_this_account" type="submit" id="delete_this_account" value="<?=$delete_account?>">
      </form>
      <?if (isset($delete_this_account))
      {
      echo $delete_my_account;
?>      <form name="form2" method="get" action="edit_profile.php">
        <input name="yes" type="submit" id="yes" value="<?=$yes?>">
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <input name="no" type="submit" id="no" value="<?=$no?>">
        <input type="hidden" name="deleteack" value="delete_account">
      </form>
      <?
      }
      if (isset($deleteack) && isset($yes))
      {
      delete_account($usernick);
      }
      echo "richtige Entscheidung ;) <br><br>";
       ?>

PS: Natürlich ist vornweg und hintendran auch noch Code, aber der ist nicht relevant.

Danke
 
benutzername hat gesagt.:
delete_account($usernick);
Wie sieht denn deine delete_account Funktion aus? Da müsste der Hund begraben sein.

Sonst scheint alles zu stimmen. Natürlich kannst du auf die "isset" verzichten wenn du magst, also simples "if($delete_this_account)" bewirkt das gleiche.

Außerdem macht die letzte Zeile "echo "richtige Entscheidung <br><br>"; " keinen Sinn, die gibt er immer aus. Also entweder mit elseif abfangen oder weg lassen:

PHP:
if (isset($deleteack) && isset($yes)) 
      { 
      delete_account($usernick); 
      } 
      elseif($yes || $no)
      {
      echo "richtige Entscheidung ;) <br><br>"; 
      }
 
Zuletzt bearbeitet:
Ja schon klar. Vielen Dank erstmal. Aber in der Funktion steht im Grunde auch nur der tatsächliche Löschvorgang.

PHP:
$sql="delete from users where id=$user_id";

Solche Sachen eben. DB auf, Löschen, evtl. MySQL Fehler ausgeben,DB zu
 
Na also, dann funktioniert es doch. Wenn deine Funktion für das Löschen korrekt ist und du die var $user_id auch oberhalb des skriptes irgendwie definierst dann klappt es auch. Bei mir läuft das Skript. Es kommt nur eine Fehlermeldung, dass die Fkt nicht gefunden wurde.

@ Sicaine:
Ja, und nun ? Genau das was es in php.net sagt, will er auch haben. Also passt es doch? Er will überprüfen ob er die Variable existiert. Ob er eine Abfrage auf den Inhalt macht oder ob er einfach auf Existenz überprüft ist doch seine Sache.
 
... wenn register_globals nicht aktiviert ist, läuft es nicht.
PHP:
if (isset($_POST["delete_this_account"])) {

// und:

if (isset($_POST["deleteack"]) && isset($_POST["yes"]))  {


Gruß
.
 
Zurück