mail() funktioniert nicht bei includiertem formular

  • Hallo,

    ich möchte mein Formular per mail() verschicken und es funktioniert auch eigentlich. Aber wenn ich die Formularseite mit include in eine andere reinlade funktioniert es nicht mehr. Schon die abfrage ob die Pflichtfelder ausgefüllt sind funktioniert nicht. Beim klicken auf den Absendebutton wird direkt wieder meine Hauptseite geöffnet (also die in der das include steht) und da dann defaultmäßig mein Willkommen gezeigt.

    Woran liegt das und wie bekomme ich es hin damit es wieder funktioniert?

    Danke für eure HIlfe
    Jessy

  • Schade, meine Glaskugel ist gerade etwas verstaubt, da wirst du wohl mal den Quellcode zeigen müssen.

  • Hallo, hier mal meine beiden Dateien zu dem oben beschriebenen Problem:

    index.php:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Strict//EN">
    <HTML>

    <?php
    $page = $HTTP_GET_VARS['page'];
    if ($page == "") $page = "main.html";
    ?>

    <HEAD>


    <link type="text/css" rel="stylesheet" href="style.css">
    <script src="script.js" language="Javascript"></script>


    <style type="text/css">

    </style>

    </HEAD>

    <BODY bgcolor="#F7F7F7" STYLE="padding:0px; margin:0px;">
    <CENTER>


    <DIV STYLE="background-color:#DEDFE7; border:0 solid black; padding:0px; padding-top:10px; margin:0px; width:100%;">


    <DIV align="left" STYLE="width:730px; border:1pt solid #6B757B; border-bottom:0pt solid #f58220; margin:0px; padding:0px; background-color:#FFFFFF;">


    <table cols="2" width="100%" cellpadding="0px" cellspacing="0px"><tr>
    <td valign="bottom"><DIV STYLE="padding-left:32px; padding-bottom:40px;"></DIV>

    </td>

    <td align="right"></td>
    </tr>
    </table>

    </DIV>


    </DIV>


    <?php include($page); ?>


    <DIV STYLE="width:730px; height:30px; border:1pt solid #6B757B; background-color:#DEDFE7; margin-bottom:5px;" >
    <table align="left" height="100%"> <tr>

    <td nowrap="nowrap">
    <a href="main.html">
    <div class="Unten">Home</div>
    </a>
    </td>

    <td nowrap="nowrap">
    <a style="" href="sitemap.html">
    <div class="Unten">Sitemap</div>
    </a>
    </td>

    </tr>
    </table>

    <table align="right" height="100%"> <tr>

    <td nowrap="nowrap">
    <a href="index.php?page=kontakt.php">
    <div class="Unten">Kontakt</div>
    </a>
    </td>

    <td nowrap="nowrap">
    <a style="" href="impressum.html">
    <div class="Unten">Impressum</div>
    </a>
    </td>

    </tr>
    </table>

    </DIV>


    </CENTER>
    </BODY>
    </HTML>


    und kontakt.php:

    <?php

    ### Konfiguration ###

    # Bitte passen Sie die folgenden Werte an, bevor Sie das Script benutzen!

    # An welche Adresse sollen die Mails gesendet werden?
    $strEmpfaenger = "email";

    # Welche Adresse soll als Absender angegeben werden?
    # (Manche Hoster lassen diese Angabe vor dem Versenden der Mail ueberschreiben)
    $strFrom = "Homepage";

    # Welchen Betreff sollen die Mails erhalten?
    $strSubject = "Kontaktformular";

    # Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden?
    # Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben!
    $strReturnhtml = "index.php?page=email_verschickt.html";

    # Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen?
    $strDelimiter = ":\t";

    ### Ende Konfiguration ###

    if($_POST)
    {

    $strMailtext = "";

    while(list($strName,$value) = each($_POST))
    {


    if($strName=="m_tbName" and $value==""){
    echo "Bitte geben Sie Ihren Namen an!";
    return 0;
    }
    else if($strName=="m_tbEmail" and $value==""){
    echo "Bitte geben Sie Ihre Email-Adresse an!";
    return 0;
    }

    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;
    }

    ?>


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Strict//EN">
    <HTML>

    <HEAD>


    <link type="text/css" rel="stylesheet" href="style.css">
    <script src="script.js" language="Javascript"></script>


    <style type="text/css">

    </style>

    </HEAD>

    <BODY bgcolor="#F7F7F7" STYLE="padding:0px; margin:0px;">
    <CENTER>


    <DIV STYLE="text-align:left; width:730px; border:1pt solid #6B757B; border-top:0 solid #FF9966;
    background-color:#FFFFFF; margin:0px; margin-bottom:5px; padding:0px;">

    <DIV style="text-align:left; background-color:#FFFFFF; border:0px black solid; padding:10px; margin:5px; margin-top:0px;">

    <H1 class="headline" style="margin-bottom:28px; magin-top:0px;">Kontakt</H1>

    <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">

    <table STYLE="margin-left:60px" width="60%">

    <tr>
    <td style="width: 71px; height: 25px;" align="right">
    <span class="text" id="Name">Name:</span></td>
    <td style="height: 25px;">
    <input name="Name" size="26" id="m_tbName" class="formulare" type="text"><font color="red">*</font>
    </td>
    </tr>
    <tr>
    <td style="width: 71px;" align="right">
    <span class="text" id="Street">Straße:</span></td>
    <td>
    <input name="Straße" size="26" id="m_tbStreet" class="formulare" type="text"></td>
    </tr>
    <tr>
    <td style="width: 71px;" align="right">
    <span class="text" id="Zip">Plz:</span></td>
    <td>
    <input name="Plz" size="5" id="m_tbPlz" class="formulare" type="text"></td>
    </tr>
    <tr>
    <td style="width: 71px;" align="right">
    <span class="text" id="City">Ort:</span></td>
    <td>
    <input name="Ort" size="26" id="m_tbCity" class="formulare" type="text"></td>
    </tr>
    <tr>
    <td style="width: 71px;" align="right">
    <span class="text" id="Email">E-Mail:</span></td>
    <td>
    <input name="Email" size="26" id="m_tbEmail" class="formulare" type="text"><font color="red">*</font>

    </td>
    </tr>
    <tr>
    <td style="width: 71px; height: 25px;" align="right">
    <span class="text" id="Phone">Telefon:</span></td>
    <td style="height: 25px;">
    <input name="Telefon" size="26" id="m_tbPhone" class="formulare" type="text"></td>
    </tr>
    <tr>
    <td style="width: 71px;" align="right">
    <span class="text" id="Fax">Fax:</span></td>
    <td>
    <input name="Fax" size="26" id="m_tbFax" class="formulare" type="text"></td>
    </tr>
    <tr>
    <td style="width: 71px;" align="right" valign="top">
    <span class="text" id="Message">Nachricht:</span></td>
    <td>
    <textarea name="Nachricht" cols="40" rows="10" id="m_tbMessage" class="formulare"></textarea></td>

    </tr>
    <tr>
    <td></td>
    <td style="text-align:right;" valign="top">

    <span STYLE="color:red;">*Pflichtfelder</span>
    </td>

    </tr>
    <tr>
    <td style="width: 71px; height: 21px;" align="right">
    <span id="Send"></span></td>
    <td style="height: 21px;">
    <input type="submit" class="text" STYLE="border:0; font-size:16px; background-color:#FFFFFF; font-weight:bold; color: #686d71; text-align:center;" value=" Absenden ">

    </td>


    </tr>

    </table>

    </form>


    </DIV>
    </DIV>


    </CENTER>
    </BODY>
    </HTML>


    wäre schön wenn sich jemand der ein bisschen mehr ahnung hat als ich sich das mal angucken könnte.

    Liebe Grüße Jessy

  • Setz das mal als Inhalt von index.php (sieht besser aus):


    Und im kontakt.php aendere:

    Code
    <form action="index.php?page=kontakt" method="post">
  • ich hab das jetzt mal so geändert, aber jetzt kann ich keine seite mehr aufrufen, jedesmal wird die index.php mit der main aufgerufen.
    Was soll das script denn logisch gesehen anders machen als meine version?

  • Logische (non-code) Uebersetzung der index:

    Code
    FALLUNTERSCHEIDUNG von GET_Parameter "page"
       wenn page = kontakt:
         variable = 'kontakt.php'
       sonst:
          variable = 'main.html'
    ENDE FALLUNTERSCHEIDUNG
    binde VARIABLE ein
    stirb (programm ist ja beendet) //kann man weglassen