 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
22.08.2005, 22:41
|
#1
|
|
TP-Insider
Registriert seit: Aug 2002
Ort: Golling
|
PHP in HTML Seite einbinden -> Komisch
Hi Leute,
sorry, ich bin's schon wieder. Auch auf die Gefahr hin, lästig zu werden, muß ich Euch folgendes Problem schildern:
Also, ich möchte ein Formmail Script in eine bestehende HTML Seite einbinden und bin eigentlich auch (obwohl ich ja eigentlich ein totaler Blitzer bin in PHP) soweit gekommen, daß das Ding so funktioniert, wie es soll. Leider gibt es noch ein "Kosmetisches" Problem, welches ich bis jetzt noch nicht lösen konnte.
Wenn ich das Script mit
PHP-Code:
<? include("seitenname.php"); ?>
in eine HTML Seite einbaue, wird alles korrekt angezeigt, aber sobald das Mail versandt wurde, wird nur das "blanke" formail.php angezeigt und nicht die HTML(PHP) Seite, wo das formail eingebettet ist. Demo Link
Wenn ich das PHP Script (den Code) aber aber direkt in die HTML Seite an der Stelle einsetze, wo das Formular erscheinen soll, fehlt komischerweise im Contentbereich der Hintergrund (Tabellenzelle mit Hintergrundgrafik), aber alles andere funktioniert (Versandbestätigung, Fehlermeldung usw.) Demo Link
Vieleicht kann mir ja jemand 'nen stupser in die richtige Richtung geben, ich steh momentan voll auf den Schlauch.
Hier wäre der Code der formail.php :
PHP-Code:
<?php if(get_magic_quotes_gpc()) { foreach($_POST as $postvar => $postval){ ${$postvar} = stripslashes($postval); } foreach($_GET as $getvar => $getval){ ${$getvar} = stripslashes($getval); } } else { foreach($_POST as $postvar => $postval){ ${$postvar} = $postval; } foreach($_GET as $getvar => $getval){ ${$getvar} = $getval; } }
$deinname = 'Onkelmal'; $deinemail = 'm_hoeher@gmx.net';
if ($senden == "Email senden"){ if ($text == ""){echo "<font face=\"verdana\"><center>Es fehlt der Nachrichtentext<br><br>";}elseif ($email == ""){echo "<font face=\"verdana\"><center>Es fehlt die Emailadresse<br><br>";}else{
$textb ="$text \n\n Absender:\n Name: $name \n Mail: $email\n\n";
$header="From:$name<$email>\n"; mail($deinemail,$betreff,$textb,$header);
echo "<font face=\"verdana\"><center><br><br>Folgende Nachricht wurde erfolgreich an<br><br> $deinname<br>$deinemail<br><br> versendet:<br><br> <em>$text</em><br><br> Vielen Dank, wir werden uns bei Dir melden.<br><br> <br><br>"; } echo"<a href=\"javascript:history.back()\">Hier geht's zurück</a></center></font>"; exit; } ?> <p><b><?php echo $subj; ?></b></p> <p></p> <p></p> <p></p> <p></p> <form action="formail.php" method="post" name="mail">
<?php
echo "<input type=\"hidden\" name=\"subj\" value=\"$subj\">"; ?>
<table border="0"><tr> <td>Ihr Name: </td><td><input type="text" name="name"></td></tr><tr> <td>Betreff: </td><td><input type="text" name="betreff"></td></tr><tr> <td colspan="2">Ihre Nachricht:<br> <textarea name="text" cols="53" rows="8"> <?php echo $teleworderror ?> </textarea></td></tr><tr> <?php
echo '<td>'; echo '</td><td>'; echo'</td></tr><tr><td>Ihre Emailadresse:</td><td>';
?>
<input type="text" name="email"></td></tr><tr><td colspan="2" align="center"> <input type="hidden" name="senden" value="Email senden"> <input width="140" name=SENDEN alt="Abschicken" name="send" type="submit"> </td></tr></table> </form>
Danke schön, gruß & gute N8
marco
__________________
"Respect the Rock"
|
|
|
22.08.2005, 22:51
|
#2
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Du musst die beiden Bereiche schon trennen.
Als erstes eine Empfehlung: nutze als php-Beginn <?php und nicht <? , da zweiteres nicht auf allen Servern funktioniert, ersteres aber immer.
2. Du hast den Namen senden 2mal verwendet, auch wenn Du es verschieden geschrieben hast, es ist kein guter Stil.
<input width="140" name=SENDEN alt="Abschicken" name="send" type="submit">
auch noch 2mal name vergeben, einmal ohne Quotes.
also besser:
<input width="140" value="Abschicken" name="abschicken" type="submit">
Jetzt die beiden Bereiche:
PHP-Code:
if(isset($abschicken)) {
// hier Formular prüfen und mail generieren, dann Erfolgsmeldung ausgheben
// im Fehlerfall das Formular erneut ausgeben
} else {
// es wurde noch nichts abgeschickt, also Formular ausgeben
}
ok ?
|
|
|
22.08.2005, 23:14
|
#3
|
|
TP-Insider
Registriert seit: Aug 2002
Ort: Golling
|
Hi,
ok, das mit <?php leuchtet ein, ich schreib's mir hinter die Löffel.
So wie ich Dich verstehe, basteln mir an der "include" version oder ?
Die ähnlichen Namen wurden von scripter.ch (formailer) vergeben, hab es aber jetzt so wie von Dir empfohlen geändert.
PHP-Code:
<?php if(get_magic_quotes_gpc()) { foreach($_POST as $postvar => $postval){ ${$postvar} = stripslashes($postval); } foreach($_GET as $getvar => $getval){ ${$getvar} = stripslashes($getval); } } else { foreach($_POST as $postvar => $postval){ ${$postvar} = $postval; } foreach($_GET as $getvar => $getval){ ${$getvar} = $getval; } }
$deinname = 'Onkelmal'; $deinemail = 'm_hoeher@gmx.net';
if ($senden == "Email senden"){ if ($text == ""){echo "<font face=\"verdana\"><center>Es fehlt der Nachrichtentext<br><br>";}elseif ($email == ""){echo "<font face=\"verdana\"><center>Es fehlt die Emailadresse<br><br>";}else{
$textb ="$text \n\n Absender:\n Name: $name \n Mail: $email\n\n";
$header="From:$name<$email>\n"; mail($deinemail,$betreff,$textb,$header);
echo "<font face=\"verdana\"><center><br><br>Folgende Nachricht wurde erfolgreich an<br><br> $deinname<br>$deinemail<br><br> versendet:<br><br> <em>$text</em><br><br> Vielen Dank, wir werden uns bei Dir melden.<br><br> <br><br>"; } echo"<a href=\"javascript:history.back()\">Hier geht's zurück</a></center></font>"; exit; } ?> <p><b><?php echo $subj; ?></b></p> <p></p> <p></p> <p></p> <p></p> <form action="formail.php" method="post" name="mail">
<?php
echo "<input type=\"hidden\" name=\"subj\" value=\"$subj\">"; ?>
<table border="0"><tr> <td>Ihr Name: </td><td><input type="text" name="name"></td></tr><tr> <td>Betreff: </td><td><input type="text" name="betreff"></td></tr><tr> <td colspan="2">Ihre Nachricht:<br> <textarea name="text" cols="53" rows="8"> <?php echo $teleworderror ?> </textarea></td></tr><tr> <?php
echo '<td>'; echo '</td><td>'; echo'</td></tr><tr><td>Ihre Emailadresse:</td><td>';
?>
<input type="text" name="email"></td></tr><tr><td colspan="2" align="center"> <input type="hidden" name="senden" value="Email senden"> <input width="140" value="Abschicken" name="abschicken" type="submit"> </td></tr></table> </form>
Den Teil mit den 2 Bereichen hab ich allerdings nicht überissen, kannst Du da bitte nochmal drauf eingehen.
Oder ist das so richtig?
PHP-Code:
if ($senden == "Email senden"){ if ($text == ""){echo "<font face=\"verdana\"><center>Es fehlt der Nachrichtentext<br><br>";}elseif ($email == ""){echo "<font face=\"verdana\"><center>Es fehlt die Emailadresse<br><br>";}else
statdessen das einfügen
PHP-Code:
if(isset($abschicken)) { // hier Formular prüfen und mail generieren, dann Erfolgsmeldung ausgheben // im Fehlerfall das Formular erneut ausgeben } else { // es wurde noch nichts abgeschickt, also Formular ausgeben }
Danke
marco
__________________
"Respect the Rock"
Geändert von m.weed (22.08.2005 um 23:18 Uhr).
|
|
|
23.08.2005, 15:55
|
#4
|
|
TP-Insider
Registriert seit: Aug 2002
Ort: Golling
|
...hallo 
sorry, will ja nich lästig sein, aber ich steh immer noch auf dem selben Schlauch wie gestern. Mir will einfach nicht einleuchten, warum der Hintergrund der Tabelle verschwindet, wenn ich den Code direkt in die HTML Seite Schreibe.
Danke
marco
__________________
"Respect the Rock"
|
|
|
23.08.2005, 16:16
|
#5
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
probiers mal aus:
HTML-Code:
<?php
$teleworderror=$subj="";
if(get_magic_quotes_gpc()) {
foreach($_POST as $postvar => $postval){ ${$postvar} = stripslashes($postval); }
foreach($_GET as $getvar => $getval){ ${$getvar} = stripslashes($getval); }
} else {
foreach($_POST as $postvar => $postval){ ${$postvar} = $postval; }
foreach($_GET as $getvar => $getval){ ${$getvar} = $getval; }
}
$deinname = 'Onkelmal';
$deinemail = 'm_hoeher@gmx.net';
if (isset($abschicken)){
if ($text == ""){
echo "<font face=\"verdana\"><center>Es fehlt der Nachrichtentext<br><br>";
} elseif($email == ""){
echo "<font face=\"verdana\"><center>Es fehlt die Emailadresse<br><br>";
} else {
$textb ="$text \n\n
Absender:\n
Name: $name \n
Mail: $email\n\n";
$header="From:$name<$email>\n";
if(@mail($deinemail,$betreff,$textb,$header)) {
echo "<font face=\"verdana\"><center><br><br>Folgende Nachricht wurde erfolgreich an<br><br>
$deinname<br>$deinemail<br><br>
versendet:<br><br>
<em>$text</em><br><br>
Vielen Dank, wir werden uns bei Dir melden.<br><br>
<br><br>";
} else {
echo "Fehler beim Verschicken der mail!";
}
}
echo"<a href=\"javascript:history.back()\">Hier geht's zurück</a></center></font>";
exit;
}
?>
<p><b><?php echo !empty($subj) ? $subj : "Kein Subject angegeben"; ?></b></p>
<p></p>
<p></p>
<p></p>
<p></p>
<form action="formail.php" method="post" name="mail">
<?php
echo "<input type=\"hidden\" name=\"subj\" value=\"$subj\">";
?>
<table border="0"><tr>
<td>Ihr Name: </td><td><input type="text" name="name"></td></tr><tr>
<td>Betreff: </td><td><input type="text" name="betreff"></td></tr><tr>
<td colspan="2">Ihre Nachricht:<br>
<textarea name="text" cols="53" rows="8">
<?php echo $teleworderror ?>
</textarea></td></tr><tr>
<?php
echo '<td>';
echo '</td><td>';
echo'</td></tr><tr><td>Ihre Emailadresse:</td><td>';
?>
<input type="text" name="email"></td></tr><tr><td colspan="2" align="center">
<input type="hidden" name="senden" value="Email senden">
<input width="140" value="Abschicken" name="abschicken" type="submit">
</td></tr></table>
</form>
Denk daran, das diese Datei auch formmail.php heissen muss 
|
|
|
24.08.2005, 07:02
|
#6
|
|
TP-Insider
Registriert seit: Aug 2002
Ort: Golling
|
Super super super,
der Backround bleibt jetzt, allerdings ist der Fußbereich, in dem sich die Seitennavi wiederholt immer noch verschwunden, aber so kann ich erstmal leben.
Danke schön.
gruß
marco
__________________
"Respect the Rock"
|
|
|
25.08.2005, 00:22
|
#7
|
|
TP-Insider
Registriert seit: Aug 2002
Ort: Golling
|
Entwarnung, hatte versehentlich einen Tag nicht geschlossen, so sollte es jetzt funktionieren.
Danke Dir nochmals für deine Hilfe.
Gruß
marco
__________________
"Respect the Rock"
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:34 Uhr.
|
 |