• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Was ist hier falsch eingestellt ?

mazcapone

Neues Mitglied
Hab ein Kontaktformular per .php eingebunden.
Jedoch wird es im IE falsch angezeigt und ich weiss nich warum:
Zum vergleich darunter ein Screenshot, wie es im Firefox angezeigt wird und
dann zu guter letzt den betreffenden Code:
http://www.imageput.com/hosted/16696iekontakt.bmp

http://www.imageput.com/hosted/93518ffkontakt.bmp

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Kontaktformular</title>
<meta name="title" content="Kontaktformular">
<meta name="description" content="Kontaktformular ">
<meta name="keywords" content="Kontakt, Kontaktformular">
<meta name="author" content="name zensiert">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h1>Kontakt</h1><br>
<?php
// wenn das Formular übermittelt wurde
if(isset($_POST['abschicken'])){
    while(list($feld,$wert)=each($HTTP_POST_VARS)){
        // übermittelte Inhalte "entschärfen"
        $wert=preg_replace("/(content-type:|bcc:|cc:|to:|from:)/im", "",$wert);
           $$feld=$wert;
        // die übermittelten Variablen werden zum "Text der Email" zusammengefasst
        if($feld!="abschicken"){
            $mailnachricht.=ucfirst($feld).": $wert\n";
        }
    }
    $mailnachricht.="\nDatum/Zeit: ". date("d.m.Y H:i:s");
    // Überprüfen ob alle Pflichtfelder gefüllt sind
    empty($nachname) ? $err[] = "<p>- Bitte den Nachnamen angeben.</p>" : false;
    empty($vorname) ? $err[] = "<p>- Bitte den Vornamen angeben.</p>" : false; 
    empty($email) ? $err[] = "<p>- Bitte die Email-Adresse angeben.</p>" : false; 
    empty($text) ? $err[] = "<p>- Welchen Wunsch haben Sie? Bitte den Text eingeben.</p>" : false; 
    // wenn nicht, werden die Fehlermeldungen ausgegeben und das "halbgefüllte" Formular angezeigt
    if(!empty($err)) {
        echo "<p>Bitte korrigieren Sie folgende Fehler:</p>";
        foreach($err as $fehler){
            echo $fehler;
        } ?>
        <form action="#" method="post">
        <table width="100%" border="0" cellpadding="3" cellspacing="1">
        <tr><td width="140%" align="right">*Nachname:<td align="left"><input type="text" name="nachname" value="<?php echo $nachname; ?>" style="width:100%;" /></td></tr>
        <tr><td align="right">*Vorname:</td><td align="left"><input type="text" name="vorname" value="<?php echo $vorname; ?>" style="width:100%" /></td></tr>
        <tr><td align="right">Firma:</td><td align="left"><input type="text" name="firma" value="<?php echo $firma; ?>" style="width:100%" /></td></tr>
        <tr><td align="right">Postanschrift:</td><td align="left"><input type="text" name="strasse" value="<?php echo $strasse; ?>" style="width:100%" /></td></tr>
        <tr><td align="right">Telefon:</td><td align="left"><input type="text" name="telefon" value="<?php echo $telefon; ?>" style="width:100%" /></td></tr>
        <tr><td align="right">*E-Mail:</td><td align="left"><input type="text" name="email" value="<?php echo $email; ?>" style="width:100%" /></td></tr>
        <tr><td colspan="2"><textarea rows="12"  style="width:100%" name="text"><?php echo $text; ?></textarea></td><td>&nbsp;</td></tr>
        <tr><td colspan="2" align="left" nowrap><br /><input type="reset" value="Formular l&ouml;schen" style="width:49%" />&nbsp;&nbsp;<input type="submit" name="abschicken" class="button" value="Formular absenden" style="width:49%" /></td></tr>
        </table>
        </form>
        <p>*Pflichtfelder</p>
<?php    // sind keine Fehler vorhanden, wird die Email versendet
    } else {
        $mailbetreff="Kontaktformular ".$_SERVER['HTTP_HOST'];
        // HIER DIE EMPFÄNGER EMAIL-ADRESSE ANPASSEN!!!        
        if(mail("emailadresse zensiert", $mailbetreff, $mailnachricht, "From: $email")){
            echo "<p>Vielen Dank für Ihre eMail!</p>";
        } else {
            echo "<p>Ein Fehler ist aufgetreten!</p>";
        }
    }
// das Formular welches als erstes dem Besucher angezeigt wird
} else { ?>
        <form action="#" method="post">
        <table width="100%" border="0" cellpadding="3" cellspacing="1">
        <tr><td width="140" align="right">*Nachname:</td><td align="left"><input type="text" name="nachname" value="" style="width:100%;" /></td></tr>
        <tr><td align="right">*Vorname:</td><td align="left"><input type="text" name="vorname" value="" style="width:100%" /></td></tr>
        <tr><td align="right">Firma:</td><td align="left"><input type="text" name="firma" value="" style="width:100%" /></td></tr>
        <tr><td align="right">Postanschrift:</td><td align="left"><input type="text" name="strasse" value="" style="width:100%" /></td></tr>
        <tr><td align="right">Telefon:</td><td align="left"><input type="text" name="telefon" value="" style="width:100%" /></td></tr>
        <tr><td align="right">*E-Mail:</td><td align="left"><input type="text" name="email" value="" style="width:100%" /></td></tr>
        <tr><td colspan="2"><textarea rows="12"  style="width:100%" name="text"></textarea></td><td>&nbsp;</td></tr>
        <tr><td colspan="2" align="left" nowrap><br /><input type="reset" value="Formular l&ouml;schen" style="width:49%" />&nbsp;&nbsp;<input type="submit" name="abschicken" value="Formular absenden" style="width:49%" /></td></tr>
        </table>
        </form>
        <p>*Pflichtfelder</p>
        <br />
        <br />
        <br />
        <br />
        </p>
<?php
}
?>

<p></p>

</body>
</html>
Wer kann mir helfen ?
Vielen Dank.
 
Zuletzt bearbeitet:
Werbung:
Hallo mazcapone,

der IE8 erkennt, dass Du eine Tabelle verwendest, obwohl da gar keine tabellarischen
Daten sind, daher schlägt er zurück! ;-)

Nein, Du hast einen Fehler in Deiner Tabelle - diesen wird jeder Browser versuchen,
zu korrigieren (das macht jeder so wie er meint...):
Du möchtest, dass die letzten beiden Tabellenzeilen über die gesamte Breite der
Tabelle gehen, und hast entsprechend colspan verwendet, aber übersehen, die
zweite Zelle zu löschen...

Code:
        <table width="100%" border="0" cellpadding="3" cellspacing="1">
        <tr><td align="right">*E-Mail:</td><td align="left"><input type="text" name="email" value="<?php echo $email; ?>" style="width:100%" /></td></tr>
        <tr><td colspan="2"><textarea rows="12"  style="width:100%" name="text"><?php echo $text; ?></textarea></td>[COLOR=Red][B]<td>&nbsp;</td>[/B][/COLOR]</tr>
        <tr><td colspan="2" align="left" nowrap><br /><input type="reset" value="Formular l&ouml;schen" style="width:49%" />&nbsp;&nbsp;<input type="submit" name="abschicken" class="button" value="Formular absenden" style="width:49%" /></td></tr>
        </table>
Grüße
Bernhard
 
also das rot markierte einfach löschen ?

ich mein, mir gehts nur darum, das oben die maske genauso vom
IE dargestellt wird, wie es beim FF der Fall ist.

vielen dank !!
 
Werbung:
also das rot markierte einfach löschen ?

ich mein, mir gehts nur darum, das oben die maske genauso vom
IE dargestellt wird, wie es beim FF der Fall ist.

vielen dank !!

Hallo mazcapone,

ja, wenn Du das löschst, sollte es hinhauen.

Grundsätzlich solltest Du aber nicht nur an FF und IE denken, sondern vor allem
auch an alle noch in Gebrauch befindlichen Versionen des IE (mindestens IE6 - IE8,
ich berücksichtige rudimentär auch noch die noch älteren) und all die anderen
(Opera, Safari, Chrome usw.), wobei die weitestgehend problemlos sind...

Wenn Du ordentliche Arbeit machen möchtest, dann solltest Du auch versuchen,
Dich von Tabellen zu Layout-Zwecken zu trennen.
Das erscheint am Anfang schwierig, vereinfacht aber am Ende vieles...

Grüße
Bernhard
 
das rot markierte entfernt, doch der fehler bleibt.

hat auch ansich nichts mit unten zu tun, oder ?

ich möchte doch das OBEN bei Nachnahme die Tabelle so dargestellt wird,
wie es vom Firefox dargestellt wird.
 
das rot markierte entfernt, doch der fehler bleibt.

hat auch ansich nichts mit unten zu tun, oder ?

ich möchte doch das OBEN bei Nachnahme die Tabelle so dargestellt wird,
wie es vom Firefox dargestellt wird.

Hallo mazcapone,

Du hast Recht, in der ersten Tabellenzeile herrscht auch noch Chaos (hab ich übersehen,
da ich schon seit Jahren nichts mehr mit Layout-Tabellen zu tun hatte)...

Dein Code:

Code:
<tr><td width="100%" align="right">*Nachname:<td align="left"><input type="text" name="nachname" value="<?php echo $nachname; ?>" style="width:100%;" /></td></tr>

Du machst in der <td> eine neue <td> auf, <td> darf aber nur in <tr> vorkommen,
<tr> nur in <table> - da muss jeder Browser streiken!

Versuch mal:


Code:
<tr><td width="100%" align="right">*Nachname:[COLOR=Red][B]</td>[/B][/COLOR]<td align="left"><input type="text" name="nachname" value="<?php echo $nachname; ?>" style="width:100%;" /></td></tr>

(diesmal das rote ergänzen!)

Grüße
Bernhard
 
Werbung:
das hat leider auch nicht geholfen. ist vielleicht das style width am ende der zeile daran schuld ?

Hallo mazcapone,

einfacher wäre es, wenn Du die Seite mal hochlädst...

Die Breitenangaben könnten Schuld sein:
Deine Tabelle soll eine Breite von 100% (des Browserfensters) haben.
Die erste Zelle soll eine Breite von 140% (der Tabellenzeile) haben
Die zweite Zelle soll den Rest der Zeile auffüllen...

Veränder mal die Breite der ersten Zelle (der Wert muss kleiner als 100% sein).
Allerdings fürchte ich, dass das dann bei Deinem Viewport passt, aber bei
kleinerem oder größerem nicht...

Grüße
Bernhard
 
da lagst du goldrichtig !!!

hat geklappt.

oben 80% und unten bei Nachname einfach 10% und schwups passts wieda.

vielen dank (auch wenn mein arbeitskollege - an dieser stelle einen schönen gruss - mit dem tipp schneller war !!)

Hau rein !! & Vielen Dank - bis zum nächsten mal !
 
Werbung:
Zurück
Oben