[PHP/HTML] Formularproblem

speedy00

Well-known member
28 April 2006
548
24
Ich include nur bestimmte Sachen im content
PHP:
<?php
 ini_set('display_errors', true);
 switch(@$_GET['p'])
 {
     case 1:
         $inc = '.php';
         break;
     case 2:
         $inc = '.php';
         break;
     case 3:
         $inc = 'info.php';
         break;
     default:
         $inc = 'home.php';
         break;
}
 include($inc);
?>

Der Link is dann
HTML:
<a href="<?php echo $_SERVER['PHP_SELF']; ?>?p=3">Info</a>
Wenn ich nun ein Formular so aufrufe das sich an sich selbst sendet, dann wird immer die default angezeigt. Weiss da wer Rat oder warum das net funzt?
 
speedy00 schrieb:
Ich include nur bestimmte Sachen im content
PHP:
<?php
 ini_set('display_errors', true);
 switch(@$_GET['p'])
 {
     case 1:
         $inc = '.php';
         break;
     case 2:
         $inc = '.php';
         break;
     case 3:
         $inc = 'info.php';
         break;
     default:
         $inc = 'home.php';
         break;
}
 include($inc);
?>
Der Link is dann
HTML:
<a href="<?php echo $_SERVER['PHP_SELF']; ?>?p=3">Info</a>
Wenn ich nun ein Formular so aufrufe das sich an sich selbst sendet, dann wird immer die default angezeigt. Weiss da wer Rat oder warum das net funzt?

zeig doch mal das formular her, oder alles, was sonst noch wichtig sein könnte...
 
PHP:
<HTML>
<HEAD>
<TITLE>Kontaktformular</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
</HEAD>
<BODY BGCOLOR=#FFFFFF>

<table width='550' border=1 cellpadding=4 cellspacing=0 bgcolor=#e1eaf0>
<tbody>
<tr bgcolor=#507ca0>
<td width='100%'><p class='tdhead'></p></td>
</tr>
<tr bgcolor=#e1eaf0>
<td colspan=2<p class='std'><TABLE BORDER=0 align="center" CELLPADDING=0 CELLSPACING=0>
<TR>
<tr>
<td><?php

function check_email($email) //Emailadresse prüfen (Keine Umlaute etc.)
{

if( !preg_match("/^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}|museum$/i", $email) )  return true;

return false;
}

// Allgemeine Variablen
$name_tag[0] = "Sonntag";
$name_tag[1] = "Montag";
$name_tag[2] = "Dienstag";
$name_tag[3] = "Mittwoch";
$name_tag[4] = "Donnerstag";
$name_tag[5] = "Freitag";
$name_tag[6] = "Samstag";
$num_tag   = date( "w");
$day      = $name_tag[$num_tag];
$year      = date("Y");
$day_num   = date("d");
$month      = date("m");
$time      = (date("H:i"));

$empfaenger = ""; //Die eigene emailadresse
$subject01 = "Kontaktformular"; //Der Betreff der Email
$subject02 = "Danke das Sie das Kontaktformular ausgefüllt haben."; //Betreff der Bestätigungsmail

if ($flag==1) //Wenn das Fromular ausgefüllt wurde.
{
    //Die Eingaben prüfen
    if(!$namer){$fehler="Bitte Namen eingeben<br>";}
    if(!$vorname){$fehler.="Bitte Vornamen eingeben<br>";}
    if(check_email($email) & $email!="") {$fehler.="Emailadresse ist ungültig<br>";}
    if(!$email) {$fehler.="Bitte die Emailadresse eingeben<br>";}
    if(!$text) {$fehler.="Bitte eine Nachricht eingeben<br>";}

    if($fehler) //Bei Fehlern, Meldung ausgeben
    {
        $meldung="<b>" .$fehler. "</b>";
        unset($flag);
        echo "<center><font face='verdana' size='2'color='red'>" .$meldung. "</font></center>";
								    }
    else //Wenn es keine Fehler gibt kann ja gemailt werden.
    {
      //Der Body für die Mail
      $body01 = "Nachricht gesendet am $day, $day_num.$month.$year um $time:
----------------------------------------------------------------
Vorname        : $vorname
Name           : $namer
eMail          : $email
----------------------------------------------------------------
Nachricht:
$text";

       //Body für die Bestätigungsmail
       $body02 = "Am $day, $day_num.$month.$year um $time haben wir folgende Nachricht von Ihnen erhalten:
-----------------------------------------------------------------------------------
Name           : $namer
Vorname        : $vorname
eMail          : $email
-----------------------------------------------------------------------------------
Nachricht:
$text
-----------------------------------------------------------------------------------
Ihre Mail wird so schnell wie möglich bearbeitet.";

       //Nun kann gemailt werden
       //Erst die Mail an den Webmaster
       mail ($empfaenger, $subject01, $body01, "From:$email");
       //Dann die Bestätigungsmail
       mail ($email, $subject02, $body02, "From:$email");
							
						echo "<font face='verdana' size='2'> Die Nachricht wurde erfolgreich gesendet.</font>"; }
}

if(!$flag) //Formular noch nicht abgesendet
{
?>
<form action='<? echo $PHP_SELF; ?>' method='post' enctype='multipart/form-data' name='form' id="form">
<input type="hidden" name="flag" id="flag" value=1>
<div align="center"><font size="1,5" face="Verdana">Hier können Sie mir eine Nachricht senden.</font>
<center>
<table border="0" cellpadding="0" cellspacing="0" bordercolor="#000000" style="border-collapse: collapse">
<tr>
<td><table border="0" align="center" cellpadding="4">
<tr>
<td><font size="1,5" face="Verdana">Name:</font></td>
<td><input name="namer" type="text" id="namer" size="30" value='<?php echo $namer; ?>'>
</td>
</tr>
<tr>
<td><font size="1,5" face="Verdana">Vorname:</font></td>
<td><input name="vorname" type="text" id="vorname" size="30" value='<?php echo $vorname; ?>'>
</td>
</tr>
<tr>
<td><font size="1,5" face="Verdana">Emailadresse:</font></td>
<td><input name="email" type="text" id="email" size="30" value='<?php echo $email; ?>'>
</td>
</tr>
<tr>
<td valign="top" class="textb"><font size="1,5" face="Verdana">Nachricht:</font></td>
<td><textarea name="text" id="text" cols="30" rows="5"><?php echo $text; ?></textarea>
</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="Abschicken" class='std'>
</td>
</tr>
</table></td>
</tr>
</table>
</center>
</div>
</form>
<?php
      }
  ?>
</TD>
</TR>
</TABLE></td>
</tr>
</tbody>
</table>
</BODY>
</HTML>
 
<form action='<? echo $PHP_SELF; ?>' method='post' enctype='multipart/form-data' name='form' id="form">
mach da mal
PHP:
<form action='<? echo $_SERVER['PHP_SELF']; ?>' method='post' enctype='multipart/form-data' name='form' id="form">
draus - oder wo hast du $PHP_SELF gesetzt/initialisiert ?
 
Im Script steht $_GET, das Formular POSTest du aber ;)

Möglichkeit 1: Im Script auf POST und GET checken:
PHP:
switch(isset($_POST['p']) ? $_POST['p'] : @$_GET['p'])
Möglichkeit 2: Den Parameter p im Formular über GET schicken:
HTML:
<form action="<? echo $PHP_SELF; ?>?p=1" method="post" enctype="multipart/form-data" name="form" id="form">