Notice: Undefined index:

Mir ist gerade aufgefallen, das nicht nur der Rücksprung auf den strReturnhtml nicht funktioniert sondern das ganze Mailformular. Das heißt es wird keine Mail mehr rausgesendet.

Hängt das evtl mit dem Rücksprung zusammen oder liegt es jetzt an was anderem?

Brauche unbedingt ein wenig Hilfe....

Code siehe 3 letzten Beitrag von mir... (dieser ist aktuell)
 
Zuletzt bearbeitet:
.oO langsam hasse ich diesen Satz )

Schon mal error_reporting(E_ALL); an den Anfang der Datei gesetzt?
 
Ja, eigentlich läuft error_reporting(E_ALL).

Werde aber nochmal nachschauen...



edit:
habs eingeschaltet. besser gesagt es war schon eingeschaltet. Kommt aber keine Meldung. Ist der Pfad vielleicht falsch von der $strReturnhtml oder in der index.php wo die Links, Parameter und die Includes stehen?

Hier nochmal das Mailformular:

PHP:
<?php
error_reporting(E_ALL);
$strEmpfaenger = 'meinemail';
$strFrom       = '"absender';
$strSubject    = 'Andere Spiele';
$strReturnhtml = 'index.php?site=games&id=new&done=true';
$strDelimiter  = ":\t";
$done = isset($_GET['done']);

if($_POST)
{
 $strMailtext = "";

 while(list($strName,$value) = each($_POST))
 {
  if(is_array($value))
  {
   foreach($value as $value_array)
   {
    $strMailtext .= $strName.$strDelimiter.$value_array."\n";
   }
  }
  else
  {
   $strMailtext .= $strName.$strDelimiter.$value."\n";
  }
 }

 if(get_magic_quotes_gpc())
 {
  $strMailtext = stripslashes($strMailtext);
 }

 mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
  or die("Die Mail konnte nicht versendet werden.");
 header("Location: $strReturnhtml");
 exit;
}
?>


<form name="Formular" onSubmit="return chkFormular()" action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">




Hier die links und der include von der index.php:

// Games
        case 'games':
            $includePage = 'gam/index.php';
            if(isset($_GET['console']))
            {
                switch($_GET['console'])
                {
                    case 'xbox':
                        $includePage = 'gam/xbox360/index.php';
                        break;
                    case 'ps':
                        $includePage = 'gam/ps3/index.php';
                        break;
                    case 'pc':
                        $includePage = 'gam/pc/index.php';
                        break;
                }
            }
            if(isset($_GET['id']))
            {
                switch($_GET['id'])
                {
                    case 'new':
                        $includePage = 'gam/extraW/index.php';
                        break;
                                    }
            }
            if(isset($_GET['done']))
            {
                switch($_GET['done'])
                {
                    case 'true':
                        $includePage = 'gam/extraW/index.php';
                        break;
                }
            }
            break;


Hoffe das erklärt einiges... Wie gesagt, normalerweise sollte nach absenden des Formulars auf die gleice Seite verwiesen werden und über die Variable done eine Textausgabe gemacht werden. Anstatt dessen werde ich auf die Startseite verwiesen und das Formular wird auch nicht versendet.
 
Sollte das:

PHP:
$strReturnhtml = 'index.php?site=games&id=new&done=true';

nicht eigentlich so aussehen:

PHP:
$strReturnhtml = 'index.php?site=contact&id=mail&done=true';



Denn ich dächte wir sind im switch(site) = contact und net games und im switch(_GET[id]) = mail. ;)
 
Ich habe im Contact und im Games Zweig genau das Gleiche.

In beiden Fällen funktioniert es nicht, ist aber der gleiche Code.

Ich vermute es liegt an dem Include oder dem php Link, denn vorher hat es mit genau dem gleichen Code bestens fuktioniert. Da waren nur statische Links vorhanden (also Pfadangaben).
 
Dann solltest du mal schauen ob die switch-Anweisungen korrekt übergeben werden, das machst am besten indem du jeweils hinter die letzte "case "": .......; break; ein:
PHP:
default:
    echo "Keine Daten!";
break;
... schreibst...

Das wird dann angezeigt wenn keine oder eine falsch Anweisung an den switch übergeben wurde.
 
Ich habs jetzt mal eingefügt, trotzdem werde ich auf die Startseite zurück verwiesen. Eine Ausgabe erfolgt nicht. Also es hat keinen sichbaren Erfolg gebracht.

In der strReturnhtml steht ja: index.php?site=games&id=new&done=true

in der index.php steht: der Pfad: games/extraW/index.php

Nach drücken des Submit Buttons werde ich aber auf index.php zurück verwiesen.


Ich weiß echt nicht mehr weiter und habe echt keine Idee was daran falsch ist.



EDIT: Habe etwas rausgefunden!
Wenn ich das Template anders aufrufe, dann funktioniert es!

meinedomäne.de/gam/extraW/index.php und dann den Submit button drücke, dann kommt die url meinedomäne.de/index.php?site=games&id=new&done=true ----> alles ist bestens!, bis auf die url!

Rufe ich das Template über: meinedomäne.de/index.php?site=games&id=new auf und drücke den Submit Button, dann werde ich auf die Startseite verwiesen!


hab noch etwas rausgefunden! Hab jetzt mal den Pfad in der $strReturnhtml komplett geändert auf einen anderen Pfad, dieser wird gar nicht mehr benutzt. Er funktioniert einfach nicht solange ich das Template über die Domäne: meinedomäne.de/index.php?site=games&id=new&done=true aufrufe. Wenn ich es über die normale Domäne: meinedomäne.de/gam/extraW/index.php aufrufe funktioniert alles besten, dann wird der $strReturnhml ausgeführt.


Hilft dir das vielleicht weiter?
 
Zuletzt bearbeitet:
Is seh bei dem Code zwar schon durch aber irgendwie versteh ich die zusammenhänge gerade net, tja man steckt eben net drin *g*

egal, schau dir mal die Zeile an:

PHP:
<form name="Formular" onSubmit="return chkFormular()" action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">

kann es sein das du das $_SERVER['PHP_SELF'] evtl. durch eine andere (direktere) URI ersetzen mußt? Weil du sagtest ja das die Mail/das Formular garnicht versand wird, ergo kommts garnicht bis zum header() und da vermute ich ist der Fehler...
 
Zurück