fehlermeldung sobald in div-layout

Hallo,
Ich habe ein Problem das ich selber nicht verstehe und zwar geht es um ein Formular welches in einem Iframe-Layout & einfach so funkionier solbald ich es in dein Div-Layout einbinde kommen Fehlermeldungen:

Notice: Use of undefined constant eintragen - assumed 'eintragen' in /srv/www/htdocs/web25/html/turnier/anmeldung.php on line 7

Notice: Use of undefined constant eintragen - assumed 'eintragen' in /srv/www/htdocs/web25/html/turnier/anmeldung.php on line 18

Notice: Use of undefined constant submit - assumed 'submit' in /srv/www/htdocs/web25/html/turnier/anmeldung.php on line 24

PHP:
<?php
include('db.php');

if(isset(
$_REQUEST['action'])) $action=$_REQUEST['action'];

else $action=eintragen;

// Template laden
function gettemplate($template,$endung='htm')
{
return str_replace("\"","\\\"",implode("",file($template.".".$endung)));
}
function dooutput($template) {
echo $template;
}

if($action==eintragen)
{
eval("dooutput(\"".gettemplate("Templates/anmeldung")."\");");

}

  if($action==submit)
{

// Variabeln aus dem Formular 
if(isset($_POST['name']))   $name = $_POST['name']; else $name = '';
if(isset($_POST['mail']))   $mail = $_POST['mail']; else $mail = '';
if(isset($_POST['passwort1']))   $passwort1 = $_POST['passwort1']; else $passwort1 = '';
if(isset($_POST['passwort2']))   $passwort2 = $_POST['passwort2']; else $passwort2 = '';
if(isset($_POST['page']))   $url = $_POST['page']; else $page = '';
if(isset($_POST['agb']))   $agb = $_POST['agb']; else $agb = '';


// Pr&uuml;fen der Felder
if($name==''||$passwort1==''||$passwort2==''||$agb==''||!ereg('^[ -._A-Za-zÀ-ÖØ-öø-ÿ0-9-]+(\.[_A-Za-zÀ-ÖØ-öø-ÿ0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$', $mail )||preg_match('/^https?:\/\/(?:(?:[a-z][a-z0-9]{1,63}|[a-z0-9.-]+\.[a-z][a-z0-9]{1,63}             )\.[a-z]{2,4}|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})(?![a-z0-9_.-])/ix', $page))

{
// Fehlermeldungen

if($name==''){ include("error_name.php"); }
if($passwort1=='') { include("error_passwort.php"); }
if($passwort2=='') { include("error_passwort.php"); }
if($passwort1!=$passwort2) { include("error_pw.php"); }
if($agb=='') { include("error_agb.php"); }
if(!ereg("^[ -._A-Za-zÀ-ÖØ-öø-ÿ0-9-]+(\.[_A-Za-zÀ-ÖØ-öø-ÿ0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $mail)){      include("error_mail.php"); } 
if(preg_match('/^https?:\/\/(?:(?:[a-z][a-z0-9]{1,63}|[a-z0-9.-]+\.[a-z][a-z0-9]{1,63}             )\.[a-z]{2,4}|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})(?![a-z0-9_.-])/ix', $page)) { include("error_page.php");}

  include("error_zurueck.php");

}
else
{

// Datum wird ermittelt
$datum = date('d.m.Y');

// Daten werden  in Tabelle eingetragen
$eintrag = "INSERT INTO teilnehmer (name, mail, passwort1, passwort2, page, datum)
            VALUES ('".addslashes($name)."', '".addslashes($mail)."', '".addslashes($passwort1)."', '".addslashes($passwort2)."', '".addslashes($page)."', '$datum')";

    $eintragen = mysql_query($eintrag);
    
                  if($eintragen) {
                   include("good_eintrag.php");
                } else {
                    include("error_eintrag.php");
                }
                
            }
    }                       
?>
 
Das hat mit deinen Bedingungen zu tun:

PHP:
if($action==eintragen)

Prüft nicht ob der Inhalt von $action "eintragen" ist, sondern ob $action mit der Konstante eintragen übereinstimmt. Da es diese aber nicht gibt, kommt die Fehlermeldung.

Die Lösung:

PHP:
if($action == "eintragen")

Dadurch kennzeichnest du eintragen als String und er vergleicht den Inhalt von $action mit dem String "eintragen".
 
Durch die fehlenden Quotes bei
PHP:
$action=eintrage; // und andere, wie unten $action==eintragen
denkt PHP, dass es sich dabei um Konstanten handelt.

So dürfte es gehen:
PHP:
include('db.php');

if(isset($_REQUEST['action'])) $action=$_REQUEST['action'];
lse $action='eintragen';

// Template laden
function gettemplate($template,$endung='htm')
{
    return str_replace("\"","\\\"",implode("",file($template.".".$endung)));
}
function dooutput($template)
{
    echo $template;
}

if($action=='eintragen')
{
    eval("dooutput(\"".gettemplate("Templates/anmeldung")."\");");
}

if($action=='submit')
{

    // Variabeln aus dem Formular 
    if(isset($_POST['name']))   $name = $_POST['name']; else $name = '';
    if(isset($_POST['mail']))   $mail = $_POST['mail']; else $mail = '';
    if(isset($_POST['passwort1']))   $passwort1 = $_POST['passwort1']; else $passwort1 = '';
    if(isset($_POST['passwort2']))   $passwort2 = $_POST['passwort2']; else $passwort2 = '';
    if(isset($_POST['page']))   $url = $_POST['page']; else $page = '';
    if(isset($_POST['agb']))   $agb = $_POST['agb']; else $agb = '';
    
    
    // Pr&uuml;fen der Felder
    if($name=='' || $passwort1=='' || $passwort2=='' || $agb=='' ||  !ereg('^[ -._A-Za-zÀ-ÖØ-öø-ÿ0-9-]+(\.[_A-Za-zÀ-ÖØ-öø-ÿ0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$', $mail )||preg_match('/^https?:\/\/(?:(?:[a-z][a-z0-9]{1,63}|[a-z0-9.-]+\.[a-z][a-z0-9]{1,63}             )\.[a-z]{2,4}|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})(?![a-z0-9_.-])/ix', $page))
    {
        // Fehlermeldungen
        if($name==''){ include("error_name.php"); }
        if($passwort1=='') { include("error_passwort.php"); }
        if($passwort2=='') { include("error_passwort.php"); }
        if($passwort1!=$passwort2) { include("error_pw.php"); }
        if($agb=='') { include("error_agb.php"); }
        if(!ereg("^[ -._A-Za-zÀ-ÖØ-öø-ÿ0-9-]+(\.[_A-Za-zÀ-ÖØ-öø-ÿ0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $mail)){      include("error_mail.php"); } 
        if(preg_match('/^https?:\/\/(?:(?:[a-z][a-z0-9]{1,63}|[a-z0-9.-]+\.[a-z][a-z0-9]{1,63}             )\.[a-z]{2,4}|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})(?![a-z0-9_.-])/ix', $page)) { include("error_page.php");}
        
        include("error_zurueck.php");
    }
    else
    {
        // Datum wird ermittelt
        $datum = date('d.m.Y');
        
        // Daten werden  in Tabelle eingetragen
        $eintrag = "INSERT INTO teilnehmer (name, mail, passwort1, passwort2, page, datum)
                    VALUES ('".addslashes($name)."', '".addslashes($mail)."', '".addslashes($passwort1)."', '".addslashes($passwort2)."', '".addslashes($page)."', '$datum')";
        
        $eintragen = mysql_query($eintrag);
        
        if($eintragen)
        {
            include("good_eintrag.php");
        }
        else
        {
            include("error_eintrag.php");
        }
    }
}
 
Zurück