Kontaktformular nur noch offline zu öffnen - header?

W-Neuling

Grünschnabel
Hallo,

ich habe ein Problem mit einem Kontaktformular für meine Homepage:

1. Von einem bereitgestellten Formular, das gut aussah aber nicht so richtig laufen wollte
habe ich die Optik (Karte, css) übernommen und noch an meine Bedürfnisse angepasst.

2. Von einem zweiten Formular, dass mir zu schlicht war aber sehr gut funktionierte
habe ich dann die Formularbefehle übernommen und kam am Ende tatsächlich
wieder bei der Karten-Optik an. Ich kann das Formular zwar offline auch
zur 2., auswertenden php-Datei weiterschicken, soweit das php
offline läuft jedenfalls. Das geht bei mir leider nur begrenzt,
wie ich zuvor schon an meinen Hompageseiten merkte.

3. Das Problem ist nun also folgendes:
Von einigen kleineren Schönheitsfehlern abgesehen, scheint das Formular nun
eigentlich zu laufen - aber eben nur auf dem Heim-PC. Sobald ich die beiden
PHP-Dateien ins Netz lade, wird nicht einmal das Formular angezeigt,
egal ob ich die Datei mit unicode, UTF-8 oder AINSI abspeichere.

Seitenquelltextanalyse über irgendein Firefox3-Plugin zeigt mir an, das ein xml-
oder sonstiger Befehl (im Prolog) nicht geschlossen wurde, was Quatsch ist.
Ich weiß einfach nicht weiter, forsche schon eine Weile umsonst nach.
Weder Umbenennungen im Headerbereich, noch Verlagern des css
in den Headerbereich ändern irgendetwas - was kann das sein?

Link zum Original(?) des benutzten funktionierenden Formulars, wobei die veränderte
zweite Datei (die auswertende) nicht mehr angezeigt wird (selber Fehler tritt hier auf):
Link zum Original, online (müsste fast unverändert sein, denke ich)
Link zum 1. zip:
oiginaleres formular.zip


Link zum neuen, "kaputten" Formular, online (ohne Anzeige im Browser)
Link zum 2. zip (Formular & auswertende Datei zusammen):
kaputtes Formular ohne Anzeige im Browser


Ich hoffe, dass mir da irgendjemand weiterhelfen kann, weil die Seite spätestens am 30.
stehen soll, nachdem sie ein gutes Jahr offline war. Vielen Dank schon mal im voraus.:(

Ach ja, die Namen, Emailadresse usw. sind verändert, weil ich zuerst
den Quelltext direkt hochladen wollte - bin ja durch das Verlinken
sowieso nicht so richtig anonym, möchte aber falls man mich
später doch einmal gezielt sucht auf meiner Homepage
und nicht nur in Forenbeiträgen gefunden werden.

Gruß, W-Neuling
 
Hi,
du unterdrückst wohl Fehler, denn bei mir wird folgender Fehler, bei aufruf von kontakt.php ausgegeben:
Code:
Parse error: syntax error, unexpected '}' in C:\***\xampp\htdocs\testzeug\kontakt.php on line 148
Im Code wäre das folgende Zeile:
PHP:
</html>< ="1"> <input name="key2" type="hidden" id="key2" value="<?php echo $key; ?>"> <input name="t" type="hidden" id="t" value="<?php echo time(); ?>"> </div> </form> <?php } ?>
Also nimmst du entweder den Teil hinter </html> raus, oder steckst die <input>-Tags innerhalb des <form>-Tags.

//edit: das </form> muss auf jedenfall hinter das letzte <input>-Tag verlegt werden.

//edit2: Den Fehler selbst, erzeugt folgende Anweisung, nur zur Information:
PHP:
<?php } ?>
 
Zuletzt bearbeitet:
Danke schon mal. :)

Die erste Seite kann ich nun auch online sehen und den letzten Teil php-Code
habe ich nun einfach entfernt, da er wohl lediglich ein Neuladen der Seite
erzwingen soll, was ich bei diesem Formular wohl nicht brauche.
Link zum anzeigbaren Formular, online


Leider fand ich keinen Fehler in der zweiten, auswertenden php-Datei,
habe aber nochmal das Original gefunden und online lief es gut,
Nun habe ich lediglich diese zwei Mitteilungstexte verändert
und schon wieder lädt die Auswertungsseite plötzlich nicht.
Habe deshalb sogar vor jedem Link Font und Größe geschlossen
und im Link selbst wieder aufgemacht, weil ich das Problem
von früher kenne, daran lag es aber auch nicht.
Sind die codes hier nur begrenzt einsetzbar?
Link zum zip der neuen auswertenden Datei

Das Original der Datei ist von diesem Tutorial hier:
Link zum Tutorial

Wäre schön, wenn ich das Ganze in etwa so anzeigen lassen könnte,
wie es offline aussieht, ansonsten: in kleiner Schrift läuft es ja notfalls.

Danke und Gruß,
W-Neuling
 
Hi,
bei den beiden Texten, die per echo auf den Bildschirm ausgegeben werden, hast du lediglich falsch gequotet.
PHP:
echo"<center><font size= "+2" color="maroon">&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;
....(schnipp)";
Setzt du entweder das echo in einfache Anführungszeichen '
oder du escapest die Gänsefüsschen der HTML Tags:
HTML:
<font size=\"+2\" color=\"maroon\">
Im zweiten hast du sogar schon begonnen, die HTML Tags zu escapen:
PHP:
echo"<center><font size= "+1">...(schnipp).... <a href=\"kontakt.php\">
...(schnapp)";
dies musst du aber bei allen Gänsefüsschen tun.
Hier findest du mehr Informationen zur String Syntax.
 
Hallo nochmal.

Ich habe jetzt wie angeraten vor jedem " in den html-Befehlen einen backslash gesetzt
- leider keine Wirkung, die Seite bleibt online weiterhin weiß. Ich finde den Fehler nicht.
Nachfolgend das zip zur neuestn Auswertungs-Datei: neue Auswertungs-Datei
Loomes hat gesagt.:
Im zweiten hast du sogar schon begonnen, die HTML Tags zu escapen:
Schön wärs.:-) Das war im Code schon vorhanden.



Ich habe wirklich nur in den 3 (nicht 2 wie zuvor geschrieben) Formular-Mitteilungen gewurstelt.
Bin ich etwa blind? Bei der Kürze dieser Texte kann man doch kaum was übnersehen, oder ?

Gruß & gute Nacht, W-Neulimg
 
Upps, liegt wohl im falschen Ordner.:eek:

Also hier nun der aktualisierte Code selbst:
PHP:
<html>
<head>
<title>Kontaktformular mit PHP</title>
</head>
<body bgcolor="A5895B">
<?php

$Empfaenger = "karate@web.de";

if($_REQUEST['Send'])
{
   if(empty($_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Nachricht']))
   {
      echo"<center><font size=\"+1\">&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>Bitte</font> <a href=\"javascript:history.back();\"><font size=\"+1"\>zurückgehen</font></a> <font size=\"+1\">und alle Felder<br>(bis auf Homepage, da freiwillig) ausfüllen.</font></center>";
   }
   else
   {
      $Mailnachricht = "neue Dojo-Nachricht erhalten: \n\n";
      while(list($Formularfeld, $Wert)=each($_REQUEST))
      {
         if($Formularfeld!="Send")
         {
            $Mailnachricht .= $Formularfeld.": ".$Wert."\n";
         }
      }
      $Mailnachricht .= "\nDatum/Zeit: ";
      $Mailnachricht .= date("d.m.Y H:i:s");
      $Mailbetreff = "Kontakt: ";
      $Mailbetreff .= $_REQUEST['Betreff'];
      mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: ".$_REQUEST['Email']);
      echo"<center><font size=\"+2\" color=\"maroon\">&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>Diese Nachricht wurde soeben versendet<br>
und eine schnellstm&ouml;gliche Antwort erfolgt.<br>
&nbsp;<br>
Falls innerhalb von 7 Tagen nichts geschieht,<br>
wenden Sie sich bitte nochmal über eine der<br>
anderen angebotenen Möglichkeiten an mich.<br>&nbsp;<br>
Mit freundlichen Gr&uuml;&szlig;en,</font><br>
<font size=\"+2\" color=\"green\">hans otto</font><br>
<font size=\"+1\" color=\"maroon\">kkschule</font><br>
<b>Jiujitsu<br>
-kung fu-</b></center>";
   }
}
else
{
   echo"<center><font size=\"+1\">&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>Leider ist ein Eingabefehler aufgetreten.<br> Bitte noch einmal auf diese</font> <a href=\"kontakt.php\"><font size=\"+1\"> Seite</font></a><font size=\"+1\">zurückgehen.</font></center>";
}

?>

</body>
</html>

Gruß, W-Neuling
 
Hier:
Code:
...(schnipp)...<font size=\"+1">zurückgehen</font></a> <font size="+1\">...(schnapp)....
 
Oh Mann...:suspekt: und da habe ich scon eine Brille auf.

Vielen Dank nochmal. Das Formular läuft jetzt und ich werde bei Gelegenheit
mal versuchen, ob ich ein paar Grundabfragen einfügen kann bzw. wie
(Email nur mit @ gültig, Name mehr als 3 Buchstaben etc.)
Das muss aber glücklicherweise nicht sofort sein.

So, Formular geht jetzt erst einmal online
und dann schaffe ich es ja bis zum 30..

Mit extrem dankbaren Grüßen,
W-Neuling
 
Zurück