Daten aus Formular in Array werden nicht in DB geschrieben :(

Hi

von unten nach oben:
Checkboxen ausblenden wenn abgesendet:
Ob agbesendet wurde prüfst du ja mit
PHP:
if (isset($_GET['sent']) and $_GET['sent'] == 'yes')
Man kann jetzt rund um den HTML-Teil, wo die Checkboxen sind,
ein PHP-if herummachen: Wenn nicht abgesendet zeig an/schreib das HTML raus, sonst eben nicht
PHP:
<?php if( ! (isset($_GET['sent']) and $_GET['sent'] == 'yes')) { ?>

<input type="checkbox" ...
...und noch mehr HTML

<?php } ?>


Das echo am Anfang der Seite ausgeben:
Du meinst das?
PHP:
echo '<h1>Ihre Mannschaft &quot;'.$_SESSION['user'].'&quot;:</h1>';
echo '<p>Spieler:<br><br>' .implode(", ", $_GET["spieler"]) .'</p>';
Ja, das kann man auch vorne hintun.
Umständlicher wäre es, wenn Variablen verwendet werden,
die erst im unteren Code gesetzt werden.
Aber die zwei Verwendeten werden dort ja nicht geändert (falls ich nichts übersehen hab)


Und die erste Frage:
Wo wird da ein Mail gesendet?
Jedenfalls, so auf die Scnelle seh ich keinen Fehler.
Was gibt denn das echo hier genau aus:
PHP:
mysql_query($sql1);
echo $sql1;
Und gib mal mysql_error() auch aus, hier nach der Query.


3 allgemeine Tipps:
Falls das eine komplette Seite ist, ist die sehr unvollständig. Doctype, <head> ...
Die ganzen Styleangaben wie bgcolor, align... wären mit CSS schöner.
Und die mysql_ - Funktionen sind am Ende ihrer Lebenszeit.
Irgendwann funktioniert Code mit denen gar nicht mehr.
PDO oder MysqlI wären Alternativen.
 
Danke, das Problem ist ja, dass die Echos gar nichts ausgeben. Die Mail wird gesendet und kommt an aber sonst ändert sich an der Seite nichts und es wird auch nichts ausgegeben. Irgendwie so, als würde er nicht in den if Block reingehen.

echo '<p>Spieler:<br><br>' .implode(", ", $_GET["spieler"]) .'</p>';
-> Das wird doch aber erst nach Checkboxauswahl zusammengesetzt. Geht das dennoch am Anfang oder zeigt er dann dort nichts an bzw. kennt keine Werte...

Unter http://www.mirkolinho.de/Send_Write.php seht ihr die Funktion wer sie mal testen möchte.

Danke
 
Diese Zeile…

Code:
<input type="hidden" name="redirect" value="http://www.mirkolinho.de/Send_Write.php" />

…ändern in:

Code:
<input type="hidden" name="redirect" value="http://www.mirkolinho.de/Send_Write.php?sent=yes" />

Diese Zeile…

Code:
<input type="hidden" name="sent" value="yes">

…kann dann raus.
 
Danke jetzt geht er wieder rein aber bringt folgende Fehlermeldung:

Notice: Undefined index: spieler in /customers/b/3/5/mirkolinho.de/httpd.www/Send_Write.php on line 563 Notice: Undefined variable: val in /customers/b/3/5/mirkolinho.de/httpd.www/Send_Write.php on line 566 Warning: implode(): Invalid arguments passed in /customers/b/3/5/mirkolinho.de/httpd.www/Send_Write.php on line 566 INSERT INTO kader (username, spielerid) VALUES You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 Notice: Undefined index: user in /customers/b/3/5/mirkolinho.de/httpd.www/Send_Write.php on line 578
Ihre Mannschaft "":
Notice: Undefined index: spieler in /customers/b/3/5/mirkolinho.de/httpd.www/Send_Write.php on line 579 Warning: implode(): Invalid arguments passed in /customers/b/3/5/mirkolinho.de/httpd.www/Send_Write.php on line 579
 
Um noch mal zu erklären, was da passiert:

Du sendest die Daten per POST an FormMailer.pl, nicht an Send_Write.php.

FormMailer.pl macht dann sein Ding und leitet danach an die Seite weiter, die du als redirect-Parameter übergeben hast.

Das ist in diesem Fall:

Code:
<input type="hidden" name="redirect" value="http://www.mirkolinho.de/Send_Write.php?sent=yes" />

Und das ist ein neuer Request. Die alten POST-Werte werden davor verworfen. Auf Send_Write.php kommt nur das an Parametern an, was du an GET-Parametern an den URL für redirect hängst.



Meine Empfehlung wäre, FormMailer.pl aus der Gleichung rauszulassen und das Formular sofort an Send_Write.php zu senden und dort für das Absenden der Mail eine PHP-Klasse zu verwenden:

- http://swiftmailer.org/
- http://phpmailer.worxware.com/
 
Zuletzt bearbeitet:
Achso das klingt logisch. Danke!
ALso kann man die 2 Dinge leider nicht so einfach in eins zusammen machen.
"...Absenden der Mail eine PHP-Klasse zu verwenden:" -> Sorry aber wie genau soll das dann aussehen?
 

Neue Beiträge

Zurück