Umfrageformular [GELÖST]

Forum rules
Post Reply
Solo
Posts: 11
Joined: Mon Mar 21, 2011 2:03 pm

Umfrageformular [GELÖST]

Post by Solo » Thu May 19, 2011 11:12 pm

Also ich habe eine neue Seite angelegt und brauche Hilfe.
Dann das Mailformular hineingebracht und habe plötzlich 2 Seitenverwaltungen. Ist das Richtig?
Dann habe ich weitere Checkboxen hinzugefügt, weil ich ein Umfrageformular daraus machen möchte.
Der Code von meinem Hoster sieht so aus:
<FORM method="post" action="http://www.IhreDomain.de/cgi-bin/FormMail.pl">
<input type="hidden" name="recipient" value="Ihre@Emailadresse.xy">
<input type="hidden" name="subject" value="Titel Ihrer Email">
<input type="hidden" name="redirect" value="http://www.IhreDomain.de/neueSeite.html">
</FORM>
Problem: Wie / Wo binde ich den Code ein? Brauche wahrscheinlich nur meine Mailadresse? Aber wohin damit? Tab "Form" / externer Verweis / Url ?
Mit "Test" wird das "Thank you for your message?!" mit ? und ! angezeigt und vor dem Button "Go BAck" noch ein ?
Das scheint mir nicht ganz richtig.
Und bei einem Test auf dem Server bekomme ich das angezeigt: Page incorrectly accessed (e.g. by a bot)

Tut mir Leid, aber eine Lösung wäre schön.
Last edited by Solo on Mon May 23, 2011 11:13 pm, edited 3 times in total.

reuterr
Posts: 253
Joined: Sat Jul 24, 2010 9:59 am

Re: Umfrageformular

Post by reuterr » Fri May 20, 2011 8:08 am

Tach,
aaaalso, dass da plötzlich eine neue Seitenverwaltung erscheint ist normal, denn das Kontaktformular enthält ja eine. Es besteht nämlich aus 2 Seiten:
Die erste enthält das eigentliche Formular, auf dem sich alle Eingabenfelder befinden.
Formularseite1.JPG
Die zweite (immer die höher nummerierte) ist die für die PHP-Funktionen. Darauf befinden sich die Antworten(Nachrichten) für den Nutzer sowie 3 Direct-HTML Objekte. Das obere davon enthält die Daten, die du auf dich "zuschneiden" musst.
Formularseite2.JPG
Wenn du nun dieses HTML-Objekt auswählst, kannst du im Kontextfeld HTML-Tab deine Daten eingeben.
Formularseite4.JPG
$recipient = "your@email.com, you2@email.de, you3@email.de"; Hier kann man mehrere Adressen eingeben, an die das Formular dann die Inhalte schickt. Achtung! Nach der letzten Adresse darf KEIN Komma stehen.
$subject = "Contact form"; Hier gibt man den Betreff ein, unter dem das Formular sich "meldet".
Die folgenden Zeilen betreffen Eingabefelder, die zwingend ausgefüllt werden sollen.
Falls das also nicht geschieht, erscheinen die darin befindlichen Nachrichten.
if ($_POST["name"] == "") $err="You must specify a name!"; else
if ($_POST["message"] == "") $err="You must specify a message!"; else

Wenn du nun auf dem Formular selbst ein neues Feld einfügst (nennen wir es "Schuhgroesse"), das zwingend ausgefüllt werden soll, musst du eine dieser Zeilen einfach nur kopieren, direkt darunter einfügen, und dann entsprechend ändern.
if ($_POST["Schuhgroesse"] == "") $err="Bitte Schuhgröße angeben!"; else
Diese code-Zeilen dürfen, außer bei der eigentlichen Nachricht, KEINE Umlaute oder "ß" enthalten.

Du kannst auch die Abschlussnachricht oder die Button-Texte ändern, wie sonst im Editor auch.
Formularseite3.JPG
Die Meldungen, die erschienen sind, sollten, wenn du das alles geändert hast, nicht mehr auftauchen.
Hier, damit du siehst, was man damit so alles machen kann, schau mal rein:
http://www.rechtsanwalt-deibert.de/Page3.html
Alles klar? Wenn nicht, melden.

Cheerio
You do not have the required permissions to view the files attached to this post.

Solo
Posts: 11
Joined: Mon Mar 21, 2011 2:03 pm

Re: Umfrageformular

Post by Solo » Fri May 20, 2011 12:54 pm

Hallo reuterr,
danke für die schnelle Antwort.

So wie ich das sehe, habe ich das genau so gemacht. Ich bekomme aber am Schluss die Ansage in Rot "Page incorrectly accessed (e.g. by a bot)" und verschickt werden die Daten auch nicht.

Liegt das an diesem Abschnitt? Da habe ich nichts geändert.

//if ($_POST["access"]!="dfm2html") $err="Page incorrectly accessed (e.g. by a bot)"; else Muss ich für das "Hiddenfeld" was ändern?
// if ($_POST["name"] == "") $err="You must specify a name!"; else Die Umfrage ist anonym. Name?
// if ($_POST["message"] == "") $err="You must specify a message!"; else
// if ($recipient == "your@email.com") $err="No recipient defined by the web designer!"; else Auch eine Mailadresse wird nicht abgefragt wegen anonym
// $err="";

Gruß Solo

reuterr
Posts: 253
Joined: Sat Jul 24, 2010 9:59 am

Re: Umfrageformular

Post by reuterr » Fri May 20, 2011 1:23 pm

Hi,
na, so GANZ genau hast du wahrscheinlich nicht gemacht, was ich geschrieben habe.
Die Meldung "Page incorrectly accessed (e.g. by a bot)" taucht überlicherweise dann auf, wenn in DIESER Zeile ( Siehe vorherigen Eintrag, 3. Bild = Formularseite4.jpg unten.) $recipient = "your@email.com "; der Originalinhalt drin steht.
Da hinein MUSS eine andere E-Mail Adr. "your@email.com" darf da nicht drin stehen.
Die folgende Zeile // if ($recipient == "your@email.com") $err="No recipient defined by the web designer!"; darfst du nicht verändern, weil diese "deine" Fehlermeldung produziert, da sie das "recipient"-Feld nach eben dieser E-Mail Adresse abfragt.

Du darst auf keinen Fall in dem "Hidden"Feld was verändern! Soweit ich weiß, geht das auch gar nicht.
Überhaupt NUR auf der FormularPage und im oberen Direct-HTML Object auf der 2. Page. NIRGENDS SONST! Auch die Reihenfolge (Position) der einzelnen Objekte auf der 2. Seite nicht verschieben.

Wenn das alles anonym sein soll, musst du diese Zeilen löschen, oder mittels vorne stehenden "//" slashes auf inaktiv setzen:
// if ($_POST["name"] == "") $err="You must specify a name!"; else
// if ($_POST["message"] == "") $err="You must specify a message!"; else
Da diese ja erwarten, dass im entsprechenden Feld des Formulars eine Eingabe gemacht wird.

Noch eine Frage zu deinem Serverplatz: Bist du sicher, dass der php-fähig ist. Kostenlose Serverplätze sind das häufig nämlich nicht.
Das lässt sich mit dem Besucherzähler des Editors aber rausfinden. Beschreibung steht dabei, oder im Tutorial.

Vor den Zeilen, die du einkopiert hast, stehen immer 2 Slashes "//" .....wie kommen die dahin?
"//" wird nur bei Hinweiszeilen innerhalb des scripts verwendet, um die Orientierung zu behalten.
"//" setzt also die Funktionen auf Inaktiv und somit das script außer Gefecht.

Hier zur Klärung der komplette Originalinhalt des bewussten Direct-HTML-Objects:
(Die Sachen, die du ändern kannst/darfst/musst, habe ich nochmal "highlighted". Sonst um Himmels Willen im script nix ändern.)

<?php
$recipient = "your@email.com";
$subject = "Contact form";

if ($_POST["access"]!="dfm2html") $err="Page incorrectly accessed (e.g. by a bot)"; else
if ($_POST["name"] == "") $err="You must specify a name!"; else
if ($_POST["message"] == "") $err="You must specify a message!"; else
if ($recipient == "your@email.com") $err="No recipient defined by the web designer!"; else
$err="";
if ($err=="") {
$msg= "";
foreach($_POST as $key=> $val) {
if ($key != "access") $msg .= $key." : ".$val."\n\n";
}
$header='';
if (isset($_POST["email"])) $header .= 'From:'.$_POST['email']."\n";

if (count($_FILES)>0) {

$boundary = strtoupper(md5(uniqid(time())));

$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: multipart/mixed; boundary=$boundary\n\n";
$header .= "This is a multi-part message in MIME format.\n\n";
$header .= "--$boundary\n";
$header .= "Content-Type: text/plain\n";
$header .= "Content-Transfer-Encoding: 8bit\n\n";
$header .= "$msg\n";
$msg='';


foreach ($_FILES as $filefield => $file) if (is_uploaded_file($file['tmp_name'])) {

$content=chunk_split(base64_encode(fread(fopen($file['tmp_name'],"r"),filesize($file['tmp_name']))));

$header .= "--$boundary\n";
$header .= "Content-Type: ".$file['type']."; name=\"".$file['name']."\"\n";
$header .= "Content-Transfer-Encoding: base64\n";
$header .= "Content-Disposition: attachment; filename=\"".$file['name']."\"\n\n";
$header .= "$content\n";

}
$header .= "--$boundary--";
}
mail($recipient, $subject, $msg, $header);

?>

Gruß
Last edited by reuterr on Sat May 21, 2011 12:58 pm, edited 3 times in total.

Solo
Posts: 11
Joined: Mon Mar 21, 2011 2:03 pm

Re: Umfrageformular

Post by Solo » Fri May 20, 2011 2:41 pm

Also die beiden Slashes, die du ansprichst, sind nicht im Script, die habe ich hier im Beitrag nur reingesetzt, damit die Anweisungen (sofern es welche sind) deaktiviert sind. Bin halt nur ein Laie ;)
Mein Serverplatz ist php-fähig, hatte dort schon ein Forenscript laufen und der Counter läuft auch http://www.globalletter.net

"...um Himmels Willen ...nix ändern" kommt wohl doch ein wenig zu spät :lol: Werde das Formular noch einmal neu machen.

Vielen Dank für deine Erklärungen
Solo

Nachtrag: Heureka es funktoniert! Danke!

Solo
Posts: 11
Joined: Mon Mar 21, 2011 2:03 pm

Re: Umfrageformular [Teil - GELÖST]

Post by Solo » Sat May 21, 2011 12:52 am

Habe mir mal die Anwaltsseite angesehen.
Bin echt positiv überrascht bis geplättet.
Mir ist aufgefallen, dass er mehrere Senden Buttons auf der Seite hat. Wie das?

Ich habe versucht (neben dem Umfrageformular) ein weiteres Kontaktformular einzubinden und es meckert mich wieder an von wegen BOT und so. Ich schwöre, ich habe nur die Änderungen vorgenommen, die erlaubt sind. :!:

reuterr
Posts: 253
Joined: Sat Jul 24, 2010 9:59 am

Re: Umfrageformular [Teil - GELÖST]

Post by reuterr » Sat May 21, 2011 10:30 am

Tach Solo,
Das mit den Send-Buttons ist ganz einfach: Kopiere den ursprünglichen, oder erstelle einen neuen und siehe Pic "Formularfunktion".
Sieh dir auch all die anderen Möglichkeiten an. DFM2HTML rules, man..... ein scheiß Geniestreich.....
LinkButton.JPG
Der Grund für mehrere Send-Buttons ist einfach nur, dass eventuelle Klienten, direkt nach Ausfüllen des bestimmten Abschnitts, das Formular abschicken können.

Wenn du das Kontaktformular mehrfach verwenden willst, musst du jedes einzelne davon als separate website erstellen.
Also beispielsweise "Kontakt1" u. "Kontakt2". Diese beiden Ordner lädst du, so wie sie sind, hoch und erstellst dir in deiner eigentlichen homepage iFrames, oder du verweist mit einem "target="_blank""-Link darauf.
pfadangabeiframe.JPG
Hier ein Beispiel, wie es auf dem Server aussehen sollte: (Der Ordner "Kontakt" liegt in der selben Ebene wie die homepage)
Serverseite.JPG
Ganz prinzipiell würde ich auch empfehlen, Seiten, die sehr umfangreich sind oder häufig Änderungen unterliegen, separat (quasi als sub-homepages) zu erstellen und mittels iframes einzubetten. Das erspart viel Arbeit und Hochladezeit und ist sehr viel übersichtlicher. Hier meine private Unfugseite http://www.ichrr.de - alle Seiten sind separate Ordner und werden ausschließlich in iFrames angezeigt.
Serverseite2.JPG
Als letzten Tip würde ich noch empfehlen zum Hochladen auf den Server ein externes FTP (FileZilla) zu verwenden. Da hat man alles auf einen Blick.
Ist jetzt zwar wieder eine riesen Litanei geworden, aber Bilder sagen doch mehr als Worte, oder?

Ich hoffe es bringt dich weiter.
Weitermachen und Gruß
You do not have the required permissions to view the files attached to this post.

Solo
Posts: 11
Joined: Mon Mar 21, 2011 2:03 pm

Re: Umfrageformular [GELÖST]

Post by Solo » Mon May 23, 2011 11:18 pm

Guten Morgern reuterr.

Wieder einmal: Heureka es läuft.

Eins will ich an dieser Stelle einfach mal loswerden: In den 99 anderen Foren traut sich ein Newcomer kaum eine Frage zu stellen, weil er meisst auf ziemlich überhebliche Art abgecancelt wird.

Nicht nur, dass dieses dfm2html eine Topsache für "Newbies" ist, auch der Support den Du hier leistest ist absolut Top (selbst bei Fragen, bei denen man sich selbst fragt, ob man sich damit als Dummy outet) Danke.

Gruß
Solo

Post Reply

Return to “German Forum”