2016-07-20 6 views
0

Ich versuche derzeit, so zu machen, wenn eine Person einen Knopf drückt, wie zum Beispiel "Anwendung annehmen", wird es "aktiv" in der Datenbank von 0 auf 1 aktualisieren ist was ich getan habe, aber anscheinend wird es nicht funktionieren.Formular mit Wert PHP abschicken MySQL - undefined Index

Verarbeitung Teil:

if(isset($_REQUEST['acceptapplication'])){ 

$acceptid = $_POST['acceptid']; 
$SQL = "UPDATE `users` SET `active`='1' WHERE id = $acceptid"; 

$result = mysql_query($SQL); } 

Und meine Form:

<form action='' name='acceptid' method='acceptapplication'> 
<input value='<?php echo $charid ?>' type='submit'/> 
</form> 

In diesem Beispiel CharID stellt die Nummer 7. Ich will es die follwing Abfrage tun:

UPDATE users SET active = '1' WHERE ID = 7

Der Grund Ich möchte, dass der Charid ein Wert ist, weil der Wert nicht bei allen Gelegenheiten gleich ist. Daher wäre es gut, wenn es mir gelänge, das zu erreichen.

+0

1. Methode muss basierend auf Ihrem Code post.2. Eingabe muss 'name' Attribut3 haben. 'mysql_ *' ist veraltet, also benutze 'mysqli_ *' ODER 'PDO' –

+0

@Anant Wäre das der richtige Weg, es in PDO zu machen? * if (isset ($ _ REQUEST ['acceptapplication'])) { $ acceptid = $ _POST ['acceptid']; $ SQL = "UPDATE' Benutzer' SET 'active' = '1' WHERE id =?"; $ stmt = $ conf> prepare ($ SQL); $ stmt-> execute ([$ acceptid]); } ' –

Antwort

0

Diese method='acceptapplication' ist falsch. Sie senden als GET. Sie sind auch offen für SQL-Injektionen. Verwenden Sie parametrisierte Abfragen.

Versuchen Sie es zu

<form action='' name='acceptid' method='POST'> 

ändert, dann wird es als POST Anfrage bearbeiten.

dies für weitere Informationen: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form

Eigentlich nach über Ihre ganze Form suchen Sie noch ein paar andere Probleme haben.

<form method='POST'> 
<input value='<?php echo $charid ?>' type='hidden' name='acceptid'/> 
<input type="submit" value="Submit" /> 
</form> 

Hinweis action='' ist nicht erforderlich, ohne die action es sendet die Anfrage an der gleichen Seite.

Die undefinierte Indexbenachrichtigung wird jedoch von $_POST['acceptid'] verursacht, da $_POST nicht definiert ist.

+0

danke für die Hilfe Kumpel <3 –

+0

Kein Problem. Wenn das Problem dadurch behoben wurde, akzeptieren Sie die Antwort. Ihr Kommentar mit pdo-Verwendung sieht korrekt aus. – chris85

0

Sie sollten post-Methode verwenden

<form action='' name='acceptid' method='post'> 
0

Die Methode des Formulars ist falsch, müssen Sie POST-Methode verwenden, Parameter zu übergeben, so später die Abfrage durch die $ _POST überprüfen [ ‚id‘ ].