Seite 1 von 2

Eigene Formulare werden nicht abgeschickt

Verfasst: 22.04.2005 13:38
von tonsatz
Hallo zusammen,

wenn ich meine selbstprogrammierten Formulare in das Forum einbinde, werden diese nicht abgeschickt, wenn ich das Design lade.

OHNE Design funktioniert alles tadellos.
Was muss ich beachten, damit die Formulare auch mit dem Forum funktionieren?

Danke
Markus

P.S.: So integriere ich das Design

Code: Alles auswählen

<?php 
define('IN_PHPBB', true); 

$phpbb_root_path = './'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 

$userdata = session_pagestart($user_ip, PAGE_INDEX); 
init_userprefs($userdata); 

include($phpbb_root_path . 'includes/page_header.'.$phpEx); 
?>

HTML hier einfügen

<? 
include($phpbb_root_path . 'includes/page_tail.'.$phpEx); 
?>

Verfasst: 22.04.2005 13:50
von [Cole]
Wie sehen deine Formulare denn aus?

Ich hab das mit dem Design genauso gemacht und hatte auch schon
etliche Formulare drin um verschiedene Daten zu speichern und das
hat problemlos funktioniert.

Verfasst: 22.04.2005 14:52
von tonsatz
Hallo,

danke für deine Antwort.
Die Formulare funktionieren so, dass alles in einer Datei ist.
Wenn das Formular noch nicht abgeschickt ist, dann werden die Formularfelder angezeigt (else), ist das Formular abgeschickt und vollständig ausgefüllt, kommt der Danke-Hinweis.

Code: Alles auswählen

<?php

if ($sent & $abs_name & $email) {

HIER SUBJEKT, HEADER...

mail($to, $subject, $nachricht, $header);

echo "<b>Herzlichen Dank für die Email</b>";

} else {
HIER DAS FORMULAR
?>
Ist folgender Code vielleicht ungeeignet für das Forum:

Code: Alles auswählen

<form method="post" action="/forum/tell.php">
Bis bald
Markus

Verfasst: 22.04.2005 15:12
von [Cole]
In deinem ersten Post steht

Code: Alles auswählen

$phpbb_root_path = './';
Also müsste es doch

Code: Alles auswählen

<form method="post" action="tell.php">
heissen, also ohne den Pfad vor "tell.php".

Verfasst: 22.04.2005 15:51
von tonsatz
Hallo,
[Cole] hat geschrieben:Also müsste es doch

Code: Alles auswählen

<form method="post" action="tell.php">
heissen, also ohne den Pfad vor "tell.php".
Das habe ich auch probiert. Funktioniert auch nicht, ebensowenig wie

Code: Alles auswählen

action=""
Markus

Verfasst: 22.04.2005 16:06
von [Cole]
Poste doch mal den kompletten Code der Datei, ist dann vielleicht einfacher
den Fehler zu finden als wenn man nur Bruchstücke sieht.

Verfasst: 22.04.2005 18:09
von tonsatz
Hier der Code:

Code: Alles auswählen

<?php

if ($sent & $abs_name & $email1) {

$subject = "XY";
$to = "$email1, $email2, $email3, $email4, $email5\n";
$header = "From: $abs_name<$abs_email>\n";
$header .= "Reply-To:$abs_email\n";

mail($to, $subject, $nachricht, $header);

echo "<b>Herzlichen Dank für die Empfehlung!</b>";

} else {
?>

<form method="post" action="tell.php">
<input type=hidden name=sent value=1>

<table>
<tr>
 <td>URL:</td>
 <td><?php echo $url; ?></td>
</tr><tr>
 <td>Dein Name:</td>
 <td>
 <? if ($sent & !$abs_name) {
echo "<input type=text name=\"abs_name\" size=\"50\" value=\"$abs_name\" class=\"textBox\" style=\"border:#990000 3px solid;\">";} else {
echo "<input type=text name=\"abs_name\" size=\"50\" value=\"$abs_name\" class=\"textBox\">";
} ?>*</td>
</tr><tr>
 <td>Deine eMail:</td>
 <td><input type=text name="abs_email" size="50" value="<?php echo $abs_email; ?>" class="textBox"></td>
</tr><tr>
 <td>Empfänger-Email Nr. 1:</td>
 <td>
  <? if ($sent & !$email1) {
echo "<input type=text name=\"email1\" size=\"50\" value=\"$email1\" class=\"textBox\" style=\"border:#990000 3px solid;\">";} else {
echo "<input type=text name=\"email1\" size=\"50\" value=\"$email1\" class=\"textBox\">";
} ?>*</td>
</tr><tr>
 <td>Empfänger-Email Nr. 2:</td>
 <td><input type=text name="email2" size="50" value="<? echo $email2; ?>" class="textBox"></td>
</tr><tr>
 <td>Empfänger-Email Nr. 3:</td>
 <td><input type=text name="email3" size="50" value="<? echo $email3; ?>" class="textBox"></td>
</tr><tr>
 <td>Empfänger-Email Nr. 4:</td>
 <td><input type=text name="email4" size="50" value="<? echo $email4; ?>" class="textBox"></td>
</tr><tr>
 <td>Empfänger-Email Nr. 5:</td>
 <td><input type=text name="email5" size="50" value="<? echo $email5; ?>" class="textBox"></td>
</tr><tr>
 <td>Ihre Nachricht:</td><td><textarea name="nachricht" rows="10" cols="50">HIERHIN DER TEXT</textarea></td>
</tr><tr>
 <td>&nbsp;</td><td><input type="submit" value="Absenden" name="Submit" class="button"></td>
</tr>
</table>
</form>

Verfasst: 22.04.2005 18:45
von [Cole]
Was mir so auf den ersten Blick auffällt, du hast an mehreren Stellen die
Attribute nicht in "" gesetzt.

Und versuch mal die form Tags komplett innerhalb der Tabelle zu halten,
ich weiss zwar nicht warum das manchmal Probleme verursacht, aber
bei nem Bekannten von mir war's mal so wenn ich mich recht entsinne.

Zudem hast du die "else-Anweisung" nicht geschlossen.


Versuchs mal so:

Code: Alles auswählen

<?php

if ($sent & $abs_name & $email1) {

$subject = "XY";
$to = "$email1, $email2, $email3, $email4, $email5\n";
$header = "From: $abs_name<$abs_email>\n";
$header .= "Reply-To:$abs_email\n";

mail($to, $subject, $nachricht, $header);

echo "<b>Herzlichen Dank für die Empfehlung!</b>";

} else {
?>



<table>
<form method="post" action="tell.php">
<input type="hidden" name="sent" value="1">
<tr>
 <td>URL:</td>
 <td><?php echo $url; ?></td>
</tr><tr>
 <td>Dein Name:</td>
 <td>
 <? if ($sent & !$abs_name) {
echo "<input type=\"text\" name=\"abs_name\" size=\"50\" value=\"$abs_name\" class=\"textBox\" style=\"border:#990000 3px solid;\">";} else {
echo "<input type=\"text\" name=\"abs_name\" size=\"50\" value=\"$abs_name\" class=\"textBox\">";
} ?>*</td>
</tr><tr>
 <td>Deine eMail:</td>
 <td><input type="text" name="abs_email" size="50" value="<?php echo $abs_email; ?>" class="textBox"></td>
</tr><tr>
 <td>Empfänger-Email Nr. 1:</td>
 <td>
  <? if ($sent & !$email1) {
echo "<input type=\"text\" name=\"email1\" size=\"50\" value=\"$email1\" class=\"textBox\" style=\"border:#990000 3px solid;\">";} else {
echo "<input type=\"text\" name=\"email1\" size=\"50\" value=\"$email1\" class=\"textBox\">";
} ?>*</td>
</tr><tr>
 <td>Empfänger-Email Nr. 2:</td>
 <td><input type="text" name="email2" size="50" value="<? echo $email2; ?>" class="textBox"></td>
</tr><tr>
 <td>Empfänger-Email Nr. 3:</td>
 <td><input type="text" name="email3" size="50" value="<? echo $email3; ?>" class="textBox"></td>
</tr><tr>
 <td>Empfänger-Email Nr. 4:</td>
 <td><input type="text" name="email4" size="50" value="<? echo $email4; ?>" class="textBox"></td>
</tr><tr>
 <td>Empfänger-Email Nr. 5:</td>
 <td><input type="text" name="email5" size="50" value="<? echo $email5; ?>" class="textBox"></td>
</tr><tr>
 <td>Ihre Nachricht:</td><td><textarea name="nachricht" rows="10" cols="50">HIERHIN DER TEXT</textarea></td>
</tr><tr>
 <td>&nbsp;</td><td><input type="submit" value="Absenden" name="Submit" class="button"></td>
</tr>
</form>
</table>
<?
}
?>


Verfasst: 22.04.2005 20:23
von tonsatz
Hi Cole,

die } der Else-Anweisung hatte ich nur beim kopieren vergessen. Sorry.

Ich habe deine Version jetzt kopiert.
Mit Design klappt's nicht
BEISPIEL

Der selbe Code ohne Design funktioniert.
BEISPIEL

Markus

Verfasst: 22.04.2005 21:19
von [Cole]
Füge mal vor

Code: Alles auswählen

if ($sent & $abs_name & $email1) {
folgendes ein:

Code: Alles auswählen

$sent = $_POST['sent'];
$email1 = $_POST['email1'];
$abs_name = $_POST['abs_name'];
Sollte normal nicht nötig sein, aber vielleicht wird eine der Variablen
irgendwo in einer der von phpBB includeten Dateien verwendet.