SelfHTML Formmailer funktioniert nicht mit Include
Groggy
- php
0 Ingo Turski0 Groggy0 Ingo Turski0 Groggy0 ChrisB0 Ingo Turski0 Groggy0 Ingo Turski0 Groggy
Hallo erstmal,
naja, meine Frage steht im Titel, der Formmailer funktioniert mit meinem Includescript nicht, d.h. es wird nix gesendet. Wenn ich ihn aber so aufrufe geht es.
Hier das Script (mit einem ganz normalen Include geht es):
<?php
$page = $_GET["page"];
$homepage = "page/home.htm";
if($page == '')
{
include $homepage;
}
else
{
$pagehtm = $page.".htm";
$pagephp = $page.".php";
if(file_exists($pagehtm))
{
include $pagehtm;
}
else if(file_exists($pagephp))
{
include $pagephp;
}
else
{
include $homepage;
}
}
?>
Hi,
naja, meine Frage steht im Titel,
ich gehe davon aus, Du meinst diesen Formmailer.
der Formmailer funktioniert mit meinem Includescript nicht, d.h. es wird nix gesendet.
was ganz klar ist... das Script ist nicht für eine solche Einbindung konzipiert, was zu folgenden Problemen führt:
<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
wird die Daten an Deine Index-Datei senden, die damit nichts anfangen kann.
header("Location: $strReturnhtml");
funktioniert auch nur, wenn zuvor keinerlei HTML-Output erfolgt ist. Ich vermute aber, dass Deine Indexdatei vor dem include schon irgendwas ausgegeben hat. Falls ja, dann wäre natürlich auch das HTML-Grundgerüst aus dem Formmailer-Quelltext zu entfernen.
Davon abgesehen solltest Du Dein "Include-Script" überarbeiten:
$page = $_GET["page"];
das wirft ggfls. eine Fehler-Notice aus.
$homepage = "page/home.htm";
wozu das Verzeichnis und dann noch im Query-String? Was passiert beim direkten Aufruf von "page/home.htm" und was bei "page/"?
include $homepage;
enthält diese Datei überhaupt PHP-Code, so dass ein include erforderlich ist?
$pagehtm = $page.".htm";
dito. readfile() dürfte sinnvoller sein.
else
{
include $homepage;
}
was soll denn das? In diesem Fall sollte doch wohl eine ordentliche Fehlerseite ausgegeben werden!
freundliche Grüße
Ingo
Davon abgesehen solltest Du Dein "Include-Script" überarbeiten:
$page = $_GET["page"];
das wirft ggfls. eine Fehler-Notice aus.
$homepage = "page/home.htm";
wozu das Verzeichnis und dann noch im Query-String? Was passiert beim direkten Aufruf von "page/home.htm" und was bei "page/"?
bei page passiert nix, beim direkten aufuf wird eben page/home.htm angezeigt
include $homepage;
enthält diese Datei überhaupt PHP-Code, so dass ein include erforderlich ist?
Nö, aber es muss ja nicht erforderlich sein, um es zu benutzen.
$pagehtm = $page.".htm";
dito. readfile() dürfte sinnvoller sein.
Inwiefern? Beispielcode?
else
{
include $homepage;
}
was soll denn das? In diesem Fall sollte doch wohl eine ordentliche Fehlerseite ausgegeben werden!
Hmm stimmt, werde ich bei Gelegenheit überarbeiten.
freundliche Grüße
Ingo
aber wie könnte man den Formmailer so überarbeiten, dass es klappt? Headerweiterleitung brauch ich eigentlich nicht, hab ich bei mir auch rausgemacht.
MFG
Groggy
Hi,
bei page passiert nix, beim direkten aufuf wird eben page/home.htm angezeigt
wieso nix? Und page/home.htm anzeigen zu lassen ist Murks bzgl. Suchmaschinen.
enthält diese Datei überhaupt PHP-Code, so dass ein include erforderlich ist?
Nö, aber es muss ja nicht erforderlich sein, um es zu benutzen.
Du kannst auch mit dem Auto zum Supermarkt um die Ecke fahren... Ich mache das jedoch nur, wenn ich z.B. ein Paar Wasserkästen zu schleppen hätte.
aber wie könnte man den Formmailer so überarbeiten, dass es klappt? Headerweiterleitung brauch ich eigentlich nicht, hab ich bei mir auch rausgemacht.
Du musst das Formular zum einen an die richtige URL mit query-String schicken und zum anderen die Bestätigung direkt ausgeben anstatt weiter zu leiten.
freundliche Grüße
Ingo
Hi,
bei page passiert nix, beim direkten aufuf wird eben page/home.htm angezeigt
wieso nix? Und page/home.htm anzeigen zu lassen ist Murks bzgl. Suchmaschinen.
»»
wieso soll da was passieren? die datei page.htm/page.php gibts nicht, also wird $homepage angezeigt
enthält diese Datei überhaupt PHP-Code, so dass ein include erforderlich ist?
Nö, aber es muss ja nicht erforderlich sein, um es zu benutzen.
Du kannst auch mit dem Auto zum Supermarkt um die Ecke fahren... Ich mache das jedoch nur, wenn ich z.B. ein Paar Wasserkästen zu schleppen hätte.
wie soll ich denn sonst eine html-datei dynamisch einbinden?
Du musst das Formular zum einen an die richtige URL mit query-String schicken und zum anderen die Bestätigung direkt ausgeben anstatt weiter zu leiten.
hast du da mal beispielcode?
Hi,
bei page passiert nix, beim direkten aufuf wird eben page/home.htm angezeigt
wieso nix? Und page/home.htm anzeigen zu lassen ist Murks bzgl. Suchmaschinen.wieso soll da was passieren? die datei page.htm/page.php gibts nicht, also wird $homepage angezeigt
Also werde weder ich als Nutzer noch ein Suchmaschinenrobot vernuenftig darueber informiert, dass das angeforderte Dokument nicht (mehr) vorhanden ist - sondern kommentarlos auf die Startseite weitergeleitet.
Das *ist* Murks. In so einem Falle sollte eine 404-Fehlerseite kommen, die mich darueber informiert.
MfG ChrisB
Hi,
enthält diese Datei überhaupt PHP-Code, so dass ein include erforderlich ist?
Nö, aber es muss ja nicht erforderlich sein, um es zu benutzen.
Du kannst auch mit dem Auto zum Supermarkt um die Ecke fahren... Ich mache das jedoch nur, wenn ich z.B. ein Paar Wasserkästen zu schleppen hätte.wie soll ich denn sonst eine html-datei dynamisch einbinden?
readfile();
Du musst das Formular zum einen an die richtige URL mit query-String schicken und zum anderen die Bestätigung direkt ausgeben anstatt weiter zu leiten.
hast du da mal beispielcode?
Du solltest doch selbst wissen, wie die URL zur "Seite" auszusehen hat.
freundliche Grüße
Ingo
Hi,
enthält diese Datei überhaupt PHP-Code, so dass ein include erforderlich ist?
Nö, aber es muss ja nicht erforderlich sein, um es zu benutzen.
Du kannst auch mit dem Auto zum Supermarkt um die Ecke fahren... Ich mache das jedoch nur, wenn ich z.B. ein Paar Wasserkästen zu schleppen hätte.wie soll ich denn sonst eine html-datei dynamisch einbinden?
readfile();Du musst das Formular zum einen an die richtige URL mit query-String schicken und zum anderen die Bestätigung direkt ausgeben anstatt weiter zu leiten.
hast du da mal beispielcode?
Du solltest doch selbst wissen, wie die URL zur "Seite" auszusehen hat.freundliche Grüße
Ingo
naja aber wie man das dann macht weiß ich nicht
MFG
Groggy
Hi,
Du solltest doch selbst wissen, wie die URL zur "Seite" auszusehen hat.
naja aber wie man das dann macht weiß ich nicht
wo siehst Du ein Problem, die URL aus der Browserzeile der angezeigten Seite in das action-Attribut zu übertragen?
freundliche Grüße
Ingo
Hi,
Du solltest doch selbst wissen, wie die URL zur "Seite" auszusehen hat.
naja aber wie man das dann macht weiß ich nicht
wo siehst Du ein Problem, die URL aus der Browserzeile der angezeigten Seite in das action-Attribut zu übertragen?freundliche Grüße
Ingo
In dem Code xD
ich kann nicht so gut PHP
Hi,
wo siehst Du ein Problem, die URL aus der Browserzeile der angezeigten Seite in das action-Attribut zu übertragen?
In dem Code xD
ich kann nicht so gut PHP
brauchst Du dazu auch gar nicht. Du suchst den <form>-Tag und trägst in action="" die im Browser angezeigte URL ein.
freundliche Grüße
Ingo