Zum Inhalt springen

Formular in HTML und PHP

Erstellt am 26. Juni 2007 · 2 Antworten · letzte Antwort am 26. Juni 2007

Tags: Frage

dursus ·

Hallo,
vielleicht kann mir jemand helfen:
Habe mit dem normalen Formular-Element und nachher mit mailformplus versucht ein Formular zu erstellen. Dieses ruft eine Zielseite auf. Da ich aber nicht dahin gekommen bin, dass diese Zielseite im selben Fenster geöffnet wird (_self), habe ich versucht mit dem html-Element jeweils eine Seite zu erstellen.

Hier der Code der Formularseite (mit javascript zum überprüfen der unbedingten Formularfelder):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Unbenanntes Dokument</title>

<script language="JavaScript" type="text/JavaScript">
<!--
var textNoCheck = "formElementName!='mitteilung' && formElementName!='strasse' && formElementName!='ort'" 

withSubCheck = true;

missingText   = "Sie haben vergessen, ein Feld auszufüllen!\n\nDieses Feld wurde besonders gekennzeichnet.\n\nBitte tragen sie dort den fehlenden Inhalt ein!";
missingMail   = "Sie haben keine gültige E-Mail Adresse eingetragen!";
missingOption = "Sie haben vergessen, ein Kontaktwerk auszuwählen!";

missing  = "*fehlt*";
newEntry = "*neu eingeben*";
choose   = "*auswahl*";

function checkForm(){
    formElementsCount = document.form1.elements.length;
    for(i=0; i<formElementsCount; i++){
        formElementName = document.form1.elements[i].name;
        if(eval(textNoCheck)){
            formElement = document.form1.elements[i];
            if(formElement.value=="" || formElement.value==missing){
                if(formElement.type=="text" || formElement.type=="textarea"){
                    alert(missingText);
                    formElement.focus();
                    if(document.all || document.getElementById){
                        formElement.blur();
                        formElement.value=missing;
                        formElement.onclick = clean;
                    }
                    return false;
                }
            }
        }
    }
    if(withSubCheck)
        return startSubCheck();
}
   
function checkMailAddress(){
    dofem = document.form1.mail
    expression = /.+@.+\.{1,}[a-zA-Z]{2,}/;
    if(!expression.exec(dofem.value)){
        alert(missingMail);
        dofem.focus();
            if(document.all || document.getElementById){
                dofem.blur();
                dofem.value = newEntry;
                dofem.onclick = clean;
            }
        return false;
    }
}

function checkOptions(){
    var formElementsCount = document.form1.elements.length;
    for(i=0; i<formElementsCount; i++){
        if(document.form1.elements[i].type=="select-one"){
            selectedIndex = document.form1.elements[i].options.selectedIndex;
            
if(document.form1.elements[i].options[selectedIndex].text=="" || 
document.form1.elements[i].options[selectedIndex].text==choose){
                document.form1.elements[i].focus();
                
document.form1.elements[i].options[selectedIndex].text=choose;
                alert(missingOption);
                return false;
            }
        }
    }
}

function clean(){
    this.value="";
}
   
function startSubCheck(){
    cm = checkMailAddress();
    if(cm==false){
        return false;
    }else{
            co = checkOptions();
            if(co==false){
                return false;
            }
    }
}

function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}
//-->
</script>

</head>

<body>
<table>
<tr><td><br>
<form name="form1" action="index.php?id=kontakt-best" method="post" target="_self" onSubmit="return checkForm();">
<div>
<div>Mitteilung:</div>
<textarea name="mitteilung" cols="80" rows="5"></textarea>
</div>
<div><div>Name<font color="#E2001A">*</font></div>
<input type="text" name="name" size="80" value="" /></div>
<div><div>Vorname<font color="#E2001A">*</font> </div>
<input type="text" name="vorname" size="80" value="" /></div>
<div><div>Strasse</div>
<input type="text" name="strasse" size="80" value="" /></div>
<div><div>PLZ/Ort</div> <input type="text" name="ort" size="80" value="" /></div>
<div><div>E-Mail <font color="#E2001A">*</font></div>
<input type="text" name="mail" size="80" value="" /></div>
<<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Unbenanntes Dokument</title>

<script language="JavaScript" type="text/JavaScript">
<!--
var textNoCheck = "formElementName!='mitteilung' && formElementName!='strasse' && formElementName!='ort'"

withSubCheck = true;

missingText = "Sie haben vergessen, ein Feld auszufüllen!\n\nDieses Feld wurde besonders gekennzeichnet.\n\nBitte tragen sie dort den fehlenden Inhalt ein!";
missingMail = "Sie haben keine gültige E-Mail Adresse eingetragen!";
missingOption = "Sie haben vergessen, ein Kontaktwerk auszuwählen!";

missing = "*fehlt*";
newEntry = "*neu eingeben*";
choose = "*auswahl*";

function checkForm(){
formElementsCount = document.form1.elements.length;
for(i=0; i<formElementsCount; i++){
formElementName = document.form1.elements[​i].name;
if(eval(textNoCheck)){
formElement = document.form1.elements[​i];
if(formElement.value=="" || formElement.value==missing){
if(formElement.type=="text" || formElement.type=="textarea"){
alert(missingText);
formElement.focus();
if(document.all || document.getElementById){
formElement.blur();
formElement.value=missing;
formElement.onclick = clean;
}
return false;
}
}
}
}
if(withSubCheck)
return startSubCheck();
}

function checkMailAddress(){
dofem = document.form1.mail
expression = /.+@.+\.{1,}[a-zA-Z]{2,}/;
if(!expression.exec(dofem.value)){
alert(missingMail);
dofem.focus();
if(document.all || document.getElementById){
dofem.blur();
dofem.value = newEntry;
dofem.onclick = clean;
}
return false;
}
}

function checkOptions(){
var formElementsCount = document.form1.elements.length;
for(i=0; i<formElementsCount; i++){
if(document.form1.elements[​i].type=="select-one"){
selectedIndex = document.form1.elements[​i].options.selectedIndex;

if(document.form1.elements[​i].options[selectedIndex].text=="" ||
document.form1.elements[​i].options[selectedIndex].text==choose){
document.form1.elements[​i].focus();

document.form1.elements[​i].options[selectedIndex].text=choose;
alert(missingOption);
return false;
}
}
}
}

function clean(){
this.value="";
}

function startSubCheck(){
cm = checkMailAddress();
if(cm==false){
return false;
}else{
co = checkOptions();
if(co==false){
return false;
}
}
}

function MM_callJS(jsStr) { //v2.0
return eval(jsStr)
}
//-->
</script>

</head>

<body><table><tr><td><br><form name="form1" action="index.php?id=kontakt-best" method="post" target="_self" onSubmit="return checkForm();">
<div><div>Mitteilung: &nbsp;&nbsp;&nbsp;&nbsp;</div><textarea name="mitteilung" cols="80" rows="5"></textarea></div>
<div><div>Name <font color="#E2001A">*</font> &nbsp;&nbsp;&nbsp;&nbsp;</div><input type="text" name="name" size="80" value="" /></div>
<div><div>Vorname <font color="#E2001A">*</font> &nbsp;&nbsp;&nbsp;&nbsp;</div> <input type="text" name="vorname" size="80" value="" /></div>
<div><div>Strasse &nbsp;&nbsp;&nbsp;&nbsp;</div> <input type="text" name="strasse" size="80" value="" /></div>
<div><div>PLZ/Ort &nbsp;&nbsp;&nbsp;&nbsp;</div> <input type="text" name="ort" size="80" value="" /></div>
<div><div>E-Mail <font color="#E2001A">*</font> &nbsp;&nbsp;&nbsp;&nbsp;</div> <input type="text" name="mail" size="80" value="" /></div>
<div><input name="submit" type="submit" value="Abschicken"> <input name="reset" type="reset" value="L&ouml;schen"></div></form>
</td></tr></table></body>
</html>div><input name="submit" type="submit" value="Abschicken"> <input name="reset" type="reset" value="L&ouml;schen"></div></form>
</td></tr></table></body>
</html>

der Code des HTML-Elements der Zielseite ist folgender:

<?php
 $mail_empfaenger="meineadresse@bluewin.ch";
 $betreff="Kontakt HN-Webseite";
 $nachname=$HTTP_POST_VARS['name'];
 $vorname=$HTTP_POST_VARS['vorname'];
 $adresse=$HTTP_POST_VARS['strasse'];
 $ort=$HTTP_POST_VARS['ort'];
 $mail=$HTTP_POST_VARS['mail'];
 $frage=$HTTP_POST_VARS['mitteilung'];
{
   $mailtext.=" Name: ";
   $mailtext.=$nachname;
   $mailtext.="\n";
   $mailtext.=" Vorname: ";
   $mailtext.=$vorname;
   $mailtext.="\n";
   $mailtext.="Adresse: ";
   $mailtext.=$adresse;
   $mailtext.="\n";
   $mailtext.="Ort: ";
   $mailtext.=$ort;
   $mailtext.="\n";     
   $mailtext.="E-Mail-Adresse: ";
   $mailtext.=$mail;
   $mailtext.="\n";
   $mailtext.="Mitteilung: ";
   $mailtext.=$frage;
   $mailtext.="\n";
mail($mail_empfaenger, $betreff, $mailtext,"from:$mail");   
  }
 ?>

<table width="550">
<tr>
<td>
<h1>Danke</h1>
<h3>Ihre Kontaktnahme ist bei uns eingetroffen</h3>
Wir bearbeiten Ihre Mitteilung so rasch wie möglich.
</td>
</tr>
</table>

Das Problem ist nun, dass zwar die Zielseite korrekt aufgerufen wird, aber die Mail kommt nicht an!

Wo liegt da mein Denkfehler?

just2b ·

das in die Constants und du hast alles im gleichen Fenster:

PAGE_TARGET = 
content.pageFrameObj =
styles.content.links.extTarget = 
styles.content.mailform.target = 
styles.content.searchresult.resultTarget = 
styles.content.links.target = 
styles.content.searchresult.target =

oder ist das nicht das was du willst?

dursus ·

Danke just2b

hat ja schon genügt das "PAGE_TARGET = _self" in die Constants zu schreiben und mein ursprüngliches Problem ist gelöst 🙂
Manchmal sucht man die Lösung in der Ferne und dabei liegt es vor der Tür...

Danke nochmals

dursus

PS: Habe auch gleich gemerkt, dass ich noch mehr übr die Constants-Einstellungen lernen sollte...