Problem bei Übergabe der Textarea

Hi,
okay. Ich versuch noch mal das Problem mit den submit-Buttons zu erklären:

Bisher hat es ja nicht zuverlässig geklappt, dass du erkannt hast, welche Aktion du auf der zweiten Seite ausführen solltest: Löschen oder Hinzufügen.
Da du auf der ersten Seite ja EIN Formular mit ZWEI Buttons hast (einer für Löschen und einer für Hinzufügen) musst du anhand dieser Buttons irgendwie unterscheiden welche Aktion du auf der zweiten Seite ausführst.
Um zu sehen, welche Möglichkeiten man da hat hatte ich einen kleinen Test gemacht.
Dieser Test hat getestet
  1. Was passiert wenn man den beiden Buttons (Hinzufügen und Löschen) den GLEICHEN Namen (name="submit_button") gibt.
  2. Was passiert wenn man den Buttons UNTERSCHIEDLICHE Namen (name="submit_button_add" und name="submit_button_delete") gibt.
Der Einfachheit halber habe ich beide Optionen (1. und 2.) in EINE Testseite integriert:
HTML:
<html>
	<body>
		<form action="post2.php" method="POST">
			<input type="submit" name="submit_button"        value="ADD (submit_button)">
			<input type="submit" name="submit_button"        value="DELETE (submit_button)">
			<input type="submit" name="submit_button_add"    value="ADD (submit_button_add)">
			<input type="submit" name="submit_button_delete" value="DELETE (submit_button_delete)">
		</form>
	</body>
</html>
Letztendlich musst du dich aber nur für eine Option (1. oder 2.) entscheiden. Also ENTWEDER (GLEICHER Name):
HTML:
<input type="submit" name="submit_button"        value="ADD (submit_button)">
<input type="submit" name="submit_button"        value="DELETE (submit_button)">
ODER (UNTERSCHIEDLICHE Namen):
HTML:
<input type="submit" name="submit_button_add"    value="ADD (submit_button_add)">
<input type="submit" name="submit_button_delete" value="DELETE (submit_button_delete)">
Die Beschriftung der Buttons (value="...") musst du natürlich noch anpassen, so dass es schön für den Benutzer aussieht.

Wenn du also die UNTERSCHIEDLICHEN Namen (Variante 2.) nimmst, könntest du auf deiner zweiten Seite so vorgehen:
PHP:
if (isset($_POST["submit_button_add"])) {
   // Aktionen zum Hinzufügen ausführen
} else (isset($_POST["submit_button_delete"])) {
   // Aktionen zum Löschen ausführen
} else {
   // Fehlermeldung ausgeben
}
Egal welcher Button gedrückt wird, der andere Button-Wert im $_POST[]-Array ist dann auf jeden Fall nicht gesetzt (Es können ja nicht beiden Buttons gleichzeitig gedrückt worden sein). Deshalb bekommst du eine PHP-Meldung wenn z.B. der submit_button_delete gedrück wurde, da der Wert für den submit_button_add nicht im $_POST[]-Array definiert ist:
Notice: Undefined index: submit_button_add in /home/americanblueva/public_html/Admin/Admin_pilot_anfragen_bearbeiten.php
(Übrigens keine FEHLER-Meldung sondern nur ein Hinweis ("Notice"), also nichts besonders Schlimmes)

Um diese Meldung zu vermeiden schlage ich dir Alternative 1. vor: Zwei Buttons mit dem GLEICHEN Namen (name="submit_button") mit schöner Beschriftung:
HTML:
<input type="submit" name="submit_button" value="Add pilot">
<input type="submit" name="submit_button" value="Delete pilot">
Bei dieser Variante kannst du auf der zweiten Seite so herausfinden welcher Button gedrückt wurde:
PHP:
if ($_POST["submit_button"]=="Add pilot") {
   // Aktionen zum Hinzufügen ausführen
} else ($_POST["submit_button"]=="Delete pilot") {
   // Aktionen zum Löschen ausführen
} else {
   // Fehlermeldung ausgeben
}
Auf diese Weise hast du nur EIN Feld im $_POST[]-Array (nämlich "submit_button") welches IMMER gesetzt ist, egal welcher Button gedrückt wurde. Also erhälst du keine Meldung von wegen "Notice: Undefined index".
 
Zuletzt bearbeitet:
er zeigt mir bei deinen Else Feldern für Variante 2 schon Syntaxfehler an bei den {. Leider finde ich den Fehler nicht!

PHP:
<?php
// **Diese Seite wird nur dann ausgeführt wenn überhaupt ein Eintragauswählbar ist
if (isset($_GET['id'])) {
    $id = intval($_GET['id']);
} else {
    exit("Keine ID vorhanden");
}
// **wichtige Variablen für die folgenden Funktionen Bestätigung und Löschen

    $pilot_id = ($_POST['pilot_id']); 
    $mailinput = ($_POST['reject_comment']); 

//**Nur noch ein JOIN ein piloten_bewerbung!
 $abfrage = "SELECT
                    `piloten_bewerbung`.`id`,
                    `piloten_bewerbung`.`vorname`,
                    `piloten_bewerbung`.`nachname`,
                    `piloten_bewerbung`.`mail`,
                    `piloten_bewerbung`.`passwort`,
                    `piloten_bewerbung`.`plz`,
                    `piloten_bewerbung`.`ort`,
                    `piloten_bewerbung`.`heimatflughafen`,
                    `piloten_bewerbung`.`basis`,
                    `piloten_bewerbung`.`ivaoid`,
                    `piloten_bewerbung`.`vatsimid`,
                    `piloten_bewerbung`.`other`,
                    `piloten_bewerbung`.`reg_datum`,
                    `piloten_bewerbung`.`geburtstag`
            FROM 
                     piloten_bewerbung
                     
            Where `piloten_bewerbung`.`id` = $id";
            
$ergebnis = mysql_query($abfrage);

    if ($ergebnis)

$dataset = mysql_fetch_array($ergebnis);

$passwort=md5($dataset['passwort']); //** PW wird verwaschen
$passwort2=($dataset['passwort']); //** PW als Klaranzeige für die Bestätigungsmail


while ($dataset = mysql_fetch_array($ergebnis))

{
if (isset($_POST["submit_button_add"])) {
					        $abfrage2="INSERT INTO piloten
      						     	    SET     pilot_id='$pilot_id',
          							    vorname='{$dataset['vorname']}',
            						    nachname='{$dataset['nachname']}',
            						    mail='{$dataset['mail']}',
            							passwort='$passwort',
            							plz='{$dataset['plz']}',
            							ort='{$dataset['ort']}',
          								heimatflughafen='{$dataset['heimatflughafen']}',
            							letzter_standort='{$dataset['letzter_standort']}',
           								ivaoid='{$dataset['ivaoid']}',
           								vatsimid='{$dataset['vatsimid']}',
            							geburtstag='{$dataset['geburtstag']}'";
            
$sender = "info@americanblue-va.com";

$empfaenger = $dataset['mail'];
$betreff = "Your Application on AmericanBlue-VA";

// Das Englisch ist sicher auch verbesserungswürdig ;)
$mailtext = "Dear $vorname $nachname,\n thank you for your Application on AmericanBlue-va.com.\n Your Application was accepted.\n\nYour Data:\n<b>Pilot ID:</b> $pilot_id \n<b>Password:</b> $passwort2\n\n With immediate effect you can login on http:\\www.americanblue-va.com\n\n We wish you a plasent time with us and the Community\n\n <b>Your AmericanBlue-Va Team</b>";
mail($empfaenger, $betreff, $mailtext, "From: $sender ");

print"<p>You add <blockquote>Pilot <b>$pilot_id</b>$vorname $nachname!<blockquote></p>";

} 

else (isset($_POST["submit_button_delete"]))
 { // Hier wird ein  Synatxfehler angezeigt

$loesch = mysql_query("DELETE FROM piloten_bewerbung WHERE id = $id");
 
$sender = "info@americanblue-va.com";
$empfaenger = "".$dataset['mail']."";
$betreff = "Your Application on AmericanBlue-VA";
$mailtext = "$mailinput";
mail($empfaenger, $betreff, $mailtext, "From: $sender ");

print "You has rejected this Application";

} else { // Hier wird ein  Synatxfehler angezeigt
print "There is an failure in the script";
}  
}
?>
 
Zuletzt bearbeitet:
Formatier mal dein Code, Dann siehst du auch wi die { beginnen und mit } enden. So wie es jetzt ist geht es nur mit auszählen.

Und was soll diese Zeile bewirken?
PHP:
    if ($ergebnis)

Nachtrag:
Sollte das nicht eher ein elseif sein?
PHP:
else (isset($_POST["submit_button_delete"]))

Nachtrag 2:
Du machst einmal ein mysql_fetch_array() um die erste Zeile auszulesen. Anschliessend iterierst du nochmals mit mysql_fetch_array() auf dasselbe Ergebnis. Diese Iteration (while()) beginnt also auf der zweiten Zeile, da du den Zeiger im Ergebnis nicht zurückgesetzt hast
 
Also es kommen zwar keine Fehlermeldungen mehr, aber es wird auch nicht das ausgeführt was gemacht werden soll

PHP:
<?php
// **Diese Seite wird nur dann ausgeführt wenn überhaupt ein Eintragauswählbar ist
if (isset($_GET['id'])) {
    $id = intval($_GET['id']);
} else {
    exit("Keine ID vorhanden");
}
// **wichtige Variablen für die folgenden Funktionen Bestätigung und Löschen

    $pilot_id = ($_POST['pilot_id']); 
    $mailinput = ($_POST['reject_comment']); 

//**Nur noch ein JOIN ein piloten_bewerbung!
 $abfrage = "SELECT
                    `piloten_bewerbung`.`id`,
                    `piloten_bewerbung`.`vorname`,
                    `piloten_bewerbung`.`nachname`,
                    `piloten_bewerbung`.`mail`,
                    `piloten_bewerbung`.`passwort`,
                    `piloten_bewerbung`.`plz`,
                    `piloten_bewerbung`.`ort`,
                    `piloten_bewerbung`.`heimatflughafen`,
                    `piloten_bewerbung`.`basis`,
                    `piloten_bewerbung`.`ivaoid`,
                    `piloten_bewerbung`.`vatsimid`,
                    `piloten_bewerbung`.`other`,
                    `piloten_bewerbung`.`reg_datum`,
                    `piloten_bewerbung`.`geburtstag`
            FROM 
                     piloten_bewerbung
                     
            Where `piloten_bewerbung`.`id` = $id";
            
$ergebnis = mysql_query($abfrage);

$dataset = mysql_fetch_array($ergebnis);

$passwort=md5($dataset['passwort']); //** PW wird verwaschen
$passwort2=($dataset['passwort']); //** PW als Klaranzeige für die Bestätigungsmail


while ($dataset = mysql_fetch_array($ergebnis))

{
if (isset($_POST["submit_button_add"])) {
					        $abfrage2="INSERT INTO piloten
      						     	    SET     pilot_id='$pilot_id',
          							    vorname='{$dataset['vorname']}',
            						    nachname='{$dataset['nachname']}',
            						    mail='{$dataset['mail']}',
            							passwort='$passwort',
            							plz='{$dataset['plz']}',
            							ort='{$dataset['ort']}',
          								heimatflughafen='{$dataset['heimatflughafen']}',
            							letzter_standort='{$dataset['letzter_standort']}',
           								ivaoid='{$dataset['ivaoid']}',
           								vatsimid='{$dataset['vatsimid']}',
            							geburtstag='{$dataset['geburtstag']}'";
            
$sender = "info@americanblue-va.com";

$empfaenger = $dataset['mail'];
$betreff = "Your Application on AmericanBlue-VA";

// Das Englisch ist sicher auch verbesserungswürdig ;)
$mailtext = "Dear $vorname $nachname,\n thank you for your Application on AmericanBlue-va.com.\n Your Application was accepted.\n\nYour Data:\n<b>Pilot ID:</b> $pilot_id \n<b>Password:</b> $passwort2\n\n With immediate effect you can login on http:\\www.americanblue-va.com\n\n We wish you a plasent time with us and the Community\n\n <b>Your AmericanBlue-Va Team</b>";
mail($empfaenger, $betreff, $mailtext, "From: $sender ");

print"<p>You add <blockquote>Pilot <b>$pilot_id</b>$vorname $nachname!<blockquote></p>";

} 

elseif (isset($_POST["submit_button_delete"]))
 { // Hier wird ein  Synatxfehler angezeigt

$loesch = mysql_query("DELETE FROM piloten_bewerbung WHERE id = $id");
 
$sender = "info@americanblue-va.com";
$empfaenger = "".$dataset['mail']."";
$betreff = "Your Application on AmericanBlue-VA";
$mailtext = "$mailinput";
mail($empfaenger, $betreff, $mailtext, "From: $sender ");

print "You has rejected this Application";

} else { // Hier wird ein  Synatxfehler angezeigt
print "There is an failure in the script";
}  
}
?>
 
Klar wird nix ausgeführt. Du schreibst da zwar ein insert, schickst es aber nirgens zur DB.

Und das mit den 2 mal '$dataset = mysql_fetch_array($ergebnis)' macht irgendwie keinen Sinn, Siehe Nachtrag 2 meines letzten Postings
 
Ich habe nochmal den Fehler ausgelesen!
submit_button_add: -ADD (submit_button_add)-

Notice: Undefined index: submit_button_delete in /home/americanblueva/public_html/Admin/Admin_pilot_anfragen_bearbeiten.php on line 177
submit_button_delete: --


array(3) {
["pilot_id"]=>
string(6) "AMB003"
["reject_comment"]=>
string(244) "Dear Leonardo Musterschu,
we are sorry, but we can not accept your Application.

For more Informations fell free to conact us on info@americanblue-va.com

Best Regards

Your AmericanBlue Support Team
"
["submit_button_add"]=>
string(23) "ADD (submit_button_add)"
}

Das würde heißen ich kann die while Schleife entfernen?

Bei Delte wird aber auch nichts ausgeführt und es wird bei INSERT doch die piloten DB angesprochen!
 
Warum hast du meine Variante 2 gewählt? Ich hatte dir eigentlich Variante 1 empfohlen...

Bitte lies doch mal, wie man sauberen Code Style produziert:
z.B.
http://pear.php.net/manual/de/standards.control.php
http://pear.php.net/manual/de/standards.funcalls.php
http://pear.php.net/manual/de/standards.funcdef.php
Dort siehst du auch wie man sauber einrückt. Denn dann sieht man auf einen Blick welches Statement wann ausgeführt wird. So findet man auch VIEL schneller Fehler.

Es ist ein Graus Quellcode zu lesen, der nicht diesen Standards genügt!
 
So ich habe das abgeändert, aber es passiert weiterhin nix. Ich habe auch versucht besser zu formatieren. Hoffe man sieht meine Bemühungen.

PHP:
<?php
// **Diese Seite wird nur dann ausgeführt wenn überhaupt ein Eintragauswählbar ist
if (isset($_GET['id'])) {
    $id = intval($_GET['id']);
} else {
    exit("Keine ID vorhanden");
}
// **wichtige Variablen für die folgenden Funktionen Bestätigung und Löschen

    $pilot_id  = ($_POST['pilot_id']); 
    $mailinput = ($_POST['reject_comment']); 

//**Nur noch ein JOIN ein piloten_bewerbung!
 $abfrage 	   = "SELECT
                    `piloten_bewerbung`.`id`,
                    `piloten_bewerbung`.`vorname`,
                    `piloten_bewerbung`.`nachname`,
                    `piloten_bewerbung`.`mail`,
                    `piloten_bewerbung`.`passwort`,
                    `piloten_bewerbung`.`plz`,
                    `piloten_bewerbung`.`ort`,
                    `piloten_bewerbung`.`heimatflughafen`,
                    `piloten_bewerbung`.`basis`,
                    `piloten_bewerbung`.`ivaoid`,
                    `piloten_bewerbung`.`vatsimid`,
                    `piloten_bewerbung`.`other`,
                    `piloten_bewerbung`.`reg_datum`,
                    `piloten_bewerbung`.`geburtstag`
            FROM 
                     piloten_bewerbung
                     
            Where   `piloten_bewerbung`.`id` = $id";
            
$ergebnis   = mysql_query($abfrage);

$dataset    = mysql_fetch_array($ergebnis);

$passwort   = md5($dataset['passwort']); //** PW wird verwaschen
$passwort2  =($dataset['passwort']); //** PW als Klaranzeige für die Bestätigungsmail


    echo "<pre>";
    echo "submit_button_add:    -".$_POST['submit_button_add']."-\n";
    echo "submit_button_delete: -".$_POST['submit_button_delete']."-\n\n\n";
    echo var_dump($_POST);
    echo "</pre>";


if ($_POST["submit_button"]=="Add pilot") 
 {
					        $abfrage2= "INSERT INTO 
														  piloten
      						     	    SET  
										 
							pilot_id		 ='$pilot_id',
          					        vorname		 ='{$dataset['vorname']}',
            						nachname		 ='{$dataset['nachname']}',
            						mail			 ='{$dataset['mail']}',
            						passwort		 ='$passwort',
            						plz			 ='{$dataset['plz']}',
            						ort			 ='{$dataset['ort']}',
          						heimatflughafen  ='{$dataset['heimatflughafen']}',
            						letzter_standort   ='{$dataset['basis']}',
           						ivaoid     	         ='{$dataset['ivaoid']}',
           						vatsimid   		 ='{$dataset['vatsimid']}',
            						geburtstag          ='{$dataset['geburtstag']}'";
										
            
							$sender 	= "info@americanblue-va.com";
							$empfaenger = $dataset['mail'];
							$betreff	= "Your Application on AmericanBlue-VA";

							$mailtext   = "Dear {$dataset['vorname']} {$dataset['nachname']},\n thank you for your Application on AmericanBlue-va.com.\n Your Application was accepted.\n\nYour 										   Data:\n<b>Pilot ID:</b> $pilot_id \n<b>Password:</b> $passwort2\n\n With immediate effect you can login on http:\\www.americanblue-va.com\n\n We 		 										   wish you a plasent time with us and the Community\n\n <b>Your AmericanBlue-Va Team</b>";
										 
							mail($empfaenger, $betreff, $mailtext, "From: $sender ");

							print"<p>You add <blockquote>Pilot <b>$pilot_id</b>{$dataset['vorname']} {$dataset['nachname']}!<blockquote></p>";

} 

elseif ($_POST["submit_button"]=="Delete pilot")
 { 

						$loesch = mysql_query("DELETE FROM piloten_bewerbung WHERE id = $id");
						
						$sender 	= "info@americanblue-va.com";
						$empfaenger = "".$dataset['mail']."";
						$betreff	= "Your Application on AmericanBlue-VA";
						$mailtext   = "$mailinput";
						
						mail($empfaenger, $betreff, $mailtext, "From: $sender ");

						print "You has rejected this Application";

}

 else
  {
						print "There is an failure in the script";
 }  

?>

EDIT: Ich sehe gerade das es hier trotz Formatierung in meinem Skript immer noch wüsst aussieht.

Notice: Undefined index: submit_button_add in /home/americanblueva/public_html/Admin/Admin_pilot_anfragen_bearbeiten.php on line 176
submit_button_add: --

Notice: Undefined index: submit_button_delete in /home/americanblueva/public_html/Admin/Admin_pilot_anfragen_bearbeiten.php on line 177
submit_button_delete: --


array(3) {
["pilot_id"]=>
string(6) "AMB003"
["reject_comment"]=>
string(235) "Dear Tim Muster,
we are sorry, but we can not accept your Application.

For more Informations fell free to conact us on info@americanblue-va.com

Best Regards

Your AmericanBlue Support Team
"
["submit_button"]=>
string(9) "Add pilot"
}

You add

Pilot AMB003Tim Muster!
 
Zuletzt bearbeitet:
Zurück