PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Nach Absenden eines Formulares öffnet sich die Danke Seite nicht. (http://www.selfphp.de/forum/showthread.php?t=25779)

s-mw 09.02.2016 20:07:12

Nach Absenden eines Formulares öffnet sich die Danke Seite nicht.
 
Hallo,
versuche meine eigene Seite zu schreiben und bin auf folgendes Problem gestoßen.
Nach Absenden eines Formulars www.s-mw.de öffnet sich die Danke Seite www.s-mw.de/Dankseite.php. nicht.

Bitte um Hilfe, die Seiten sind Online

vt1816 09.02.2016 22:14:29

AW: Nach Absenden eines Formulares öffnet sich die Danke Seite nicht.
 
Hallo und willkommen hier im Forum Konstantin.

Wie sieht es denn mit etwas Code aus?
Ohne Code und auf Grund der Winterferien meiner Glaskugel wird es ansonsten schwer Dir zu helfen.

s-mw 10.02.2016 16:23:08

AW: Nach Absenden eines Formulares öffnet sich die Danke Seite nicht.
 
Hallo Admin. vt1816

Der Quellcode sollte über die oben angegebenen Webseiten gelesen werden, aber hier ist der Ausschnitt.

PHP-Code:

<?php
$zieladresse 
'info@s-mw.de';
$absenderadresse htmlspecialchars($_POST["email"]);
$betreff 'Schnellanfrage';
$urlDankeSeite 'http://www.s-mw.de/Dankseite.php';
$trenner ":\t"// Doppelpunkt + Tabulator

$SESSION["Nachname"] = htmlspecialchars($_POST["name"]);
    
$_SESSION["E-Mail"] = htmlspecialchars($_POST["email"]);
 */

if (
$_SERVER['REQUEST_METHOD'] === "POST") {

    
$header = array();
    
$header[] = "From: ".mb_encode_mimeheader($absendername"utf-8""Q")." <".$absenderadresse.">";
    
$header[] = "MIME-Version: 1.0";
    
$header[] = "Content-type: text/plain; charset=utf-8";
    
$header[] = "Content-transfer-encoding: 8bit";
    
    
$mailtext "";

    foreach (
$_POST as $name => $wert) {
        if (
is_array($wert)) {
            foreach (
$wert as $einzelwert) {
                
$mailtext .= $name.$trenner.$einzelwert."\n";
            }
        } else {
            
$mailtext .= $name.$trenner.$wert."\n";
        }
    }

    
mail(
        
$zieladresse
        
mb_encode_mimeheader($betreff"utf-8""Q"), 
        
$mailtext,
        
implode("\n"$header)
    ) or die(
"Die Mail konnte nicht versendet werden.");
    
header("Location: $urlDankeSeite");
    exit;
}

header("Content-type: text/html; charset=utf-8");

?>


Die Nachrichten kommen sofort nach dem Senden per E-Mail zu, aber anstatt die Dankseite zu öffnen kommt eine Leere Weiße Seite.

Ich weiß nicht woran es hängt, und kämpfe damit schon mehrere Monate.

In PHP wollte ich nur das Formular an meine E-Mailadresse übersenden ansonsten ist die Webseite in html geschrieben.

Hat es vielleicht was mit dem WEB-Server zu tun, der ist von 1und1 und die Startseite muss mit index.html benannt sein. Dadurch erscheint die Web-Seite www.s-mw.de auf.

Die Dankseite ist im gleichen Ordner als Dankseite.php abgelegt. Gibt man www.s-mw.de/Dankseite.php ein so wird diese angezeigt, das ist auch der Pfad ($urlDankeSeite = 'http://www.s-mw.de/Dankseite.php';)

Das Problem müsste in der Verlinkung sein oder?

vt1816 10.02.2016 17:17:28

AW: Nach Absenden eines Formulares öffnet sich die Danke Seite nicht.
 
Schalte mal die Fehleranzeige ein/höher (einfügen in Deinen og. Code am Anfang).
PHP-Code:

<?php
error_reporting
(-1);   
ini_set('display_errors'TRUE);  

... 
?>

  • Was erhältst Du nach absenden des Formulars angezeigt?
  • Wo kommt $absendername her?
  • Entferne '*/' aus dem Code.

s-mw 10.02.2016 17:56:03

AW: Nach Absenden eines Formulares öffnet sich die Danke Seite nicht.
 
Den oben angegebenen Code habe ich in beiden Seiten eingefügt index.php und Dankseite.php.

Bei der Startseite wie man Sieht wird folgendes angezeigt:


Notice: Undefined index: email in /homepages/26/d477487878/htdocs/s-mw.de/index.php on line 21

Warning: Cannot modify header information - headers already sent by (output started at /homepages/26/d477487878/htdocs/s-mw.de/index.php:1) in /homepages/26/d477487878/htdocs/s-mw.de/index.php on line 74

Warning: include_once(analyticstracking.php): failed to open stream: No such file or directory in /homepages/26/d477487878/htdocs/s-mw.de/index.php on line 78

Warning: include_once(): Failed opening 'analyticstracking.php' for inclusion (include_path='.:/usr/lib/php5.4') in /homepages/26/d477487878/htdocs/s-mw.de/index.php on line 78


Nach absenden des Formulars erscheint:

Notice: Undefined index: email in /homepages/26/d477487878/htdocs/s-mw.de/index.php on line 21

Notice: Undefined variable: absendername in /homepages/26/d477487878/htdocs/s-mw.de/index.php on line 47

Warning: Cannot modify header information - headers already sent by (output started at /homepages/26/d477487878/htdocs/s-mw.de/index.php:1) in /homepages/26/d477487878/htdocs/s-mw.de/index.php on line 70


Es ist jetzt Online so, dass du es selbst sehen und beurteilen kannst.

vt1816 10.02.2016 20:32:50

AW: Nach Absenden eines Formulares öffnet sich die Danke Seite nicht.
 
Ok, habe es gesehen.
  • Benenne die Datei index.html um - die index.php sollte reichen.
  • Entferne in der index.php alle Einträge von '<?php'. Auch Lerrzeichen/-zeilen.
  • Kommentiere die analyticstracking.php - bis alles läuft.
  • Was steht in Zeile 74 in der index.php - noch besser Du postest sie hier.

Dann sehen wir weiter.

s-mw 11.02.2016 00:48:26

AW: Nach Absenden eines Formulares öffnet sich die Danke Seite nicht.
 
hab ein wenig den Quellcode angepasst und Online gestellt,
hier nochmal der Quellcode mit wenigen Zeilen Nummerierung.

1 <?php
2 error_reporting(-1);
3 ini_set('display_errors', TRUE);
4 ?>
5
6 <?php
7
8 $zieladresse = 'info@s-mw.de';
9 $absenderadresse = htmlspecialchars($_POST["email"]);
10 //$absendername = htmlspecialchars($_POST["name"]);
11 $betreff = 'Schnellanfrage';
12 $urlDankeSeite = 'http://www.s-mw.de/Dankseite.php';
13 $trenner = ":\t";
14 if ($_SERVER['REQUEST_METHOD'] === "POST")
15 {
16 $header = array();
17 $header[] = "From: ".mb_encode_mimeheader("utf-8", "Q")." <".$absenderadresse.">";
$header[] = "MIME-Version: 1.0";
$header[] = "Content-type: text/plain; charset=utf-8";
$header[] = "Content-transfer-encoding: 8bit";

$mailtext = "";

foreach ($_POST as $name => $wert)
{
if (is_array($wert))
{
foreach ($wert as $einzelwert)
{
$mailtext .= $name.$trenner.$einzelwert."\n";
}
} else
{
$mailtext .= $name.$trenner.$wert."\n";
}
}

mail(
$zieladresse,
mb_encode_mimeheader($betreff, "utf-8", "Q"),
$mailtext,
implode("\n", $header)
) or
die("Die Mail konnte nicht versendet werden.");
45 header("Location:$urlDankeSeite");
46 exit;
47 }
48 header("Content-type: text/html; charset=utf-8");
49 ?>


Folgende Fehler werden angezeigt.

Startseite:
Notice: Undefined index: email in /homepages/26/d477487878/htdocs/s-mw.de/index.php on line 9

Warning: Cannot modify header information - headers already sent by (output started at /homepages/26/d477487878/htdocs/s-mw.de/index.php:1) in /homepages/26/d477487878/htdocs/s-mw.de/index.php on line 48

48 header("Content-type: text/html; charset=utf-8");

Nach dem Senden des Formulars:

Notice: Undefined index: email in /homepages/26/d477487878/htdocs/s-mw.de/index.php on line 9

Warning: mb_encode_mimeheader(): Unknown encoding "Q" in /homepages/26/d477487878/htdocs/s-mw.de/index.php on line 17

Warning: Cannot modify header information - headers already sent by (output started at /homepages/26/d477487878/htdocs/s-mw.de/index.php:1) in /homepages/26/d477487878/htdocs/s-mw.de/index.php on line 45

45 header("Location:$urlDankeSeite");
17 $header[] = "From: ".mb_encode_mimeheader("utf-8", "Q")." <".$absenderadresse.">";

Leider weiß ich nicht weiter, es hängt wohl an der Zeile 45.

Ich Danke dir für deine Unterstützung und freue mich Sehr für so eine schnelle Reaktion.

vt1816 11.02.2016 11:32:50

AW: Nach Absenden eines Formulares öffnet sich die Danke Seite nicht.
 
Dann mal weiter Step by Step.

Ändere in den Zeile 9 & 10
PHP-Code:

$absenderadresse htmlspecialchars($_POST["email"]);
//$absendername = htmlspecialchars($_POST["name"]); 

in
PHP-Code:

$absenderadresse htmlspecialchars($_POST['E-Mail']);
$absendername htmlspecialchars($_POST["Nachname"]); 

Nach der Änderung packe die Zeilen 8-13 zwischen die Zeilen 15 & 16.

Was erhältst Du jetzt?

s-mw 12.02.2016 01:46:40

AW: Nach Absenden eines Formulares öffnet sich die Danke Seite nicht.
 
OK hab paar Optionen ausprobiert bin aber nicht weiter gekommen.

Also versuche jetzt Step by Step nach deinen vorgaben :-)

als nächstes wird folgender Fehler angezeigt beim laden der Seite:

Warning: Cannot modify header information - headers already sent by (output started at /homepages/26/d477487878/htdocs/s-mw.de/index.php:1) in /homepages/26/d477487878/htdocs/s-mw.de/index.php on line 39

Zeile 39 header("Content-type: text/html; charset=utf-8");


Nach dem versenden des Formulars erscheint ein weiterer Fehler:

Warning: Cannot modify header information - headers already sent by (output started at /homepages/26/d477487878/htdocs/s-mw.de/index.php:1) in /homepages/26/d477487878/htdocs/s-mw.de/index.php on line 37

Zeile 37 header("Location: $urlDankeSeite");

Hinweis!!! alle versendeten Formulare kommen sofort an die angegebene E-Mail Adresse an, nur halt die die Dankeseite öffnet sich nicht.

s-mw 12.02.2016 01:49:52

AW: Nach Absenden eines Formulares öffnet sich die Danke Seite nicht.
 
hier ist der aktuelle Quellcode

<?php
error_reporting(-1);
ini_set('display_errors', TRUE);
?>

<?php
if ($_SERVER['REQUEST_METHOD'] === "POST")
{
$zieladresse = 'info@s-mw.de';
$absenderadresse = htmlspecialchars($_POST['E-Mail']);
$absendername = htmlspecialchars($_POST["Nachname"]);
$betreff = 'Schnellanfrage';
$urlDankeSeite = 'http://www.s-mw.de/Dankseite.php';
$trenner = ":\t";
$header = array();
$header[] = "From: ".mb_encode_mimeheader($absendername,"utf-8", "Q")." <".$absenderadresse.">";
$header[] = "MIME-Version: 1.0";
$header[] = "Content-type: text/plain; charset=utf-8";
$header[] = "Content-transfer-encoding: 8bit";

$mailtext = "";

foreach ($_POST as $name => $wert){
if (is_array($wert)){
foreach ($wert as $einzelwert){
$mailtext .= $name.$trenner.$einzelwert."\n";}
} else{
$mailtext .= $name.$trenner.$wert."\n";}
}
mail(
$zieladresse,
mb_encode_mimeheader($betreff, "utf-8", "Q"),
$mailtext,
implode("\n", $header)
) or
die("Die Mail konnte nicht versendet werden.");
header("Location: $urlDankeSeite");
exit;}
header("Content-type: text/html; charset=utf-8");
?>


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:45:54 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.