Jump to content
Sign in to follow this  
zuhi

Kontaktformular - Probleme

Recommended Posts

Hallöchen,


Dies ist mein erster Thread in diesem Forum und ich begrüsse alle Mitglieder ganz herzlich.


Ich habe ein Problem mit einem Kontaktformular welches ich auf einer Seite einbinden soll.

Und zwar sollen ausser den normalen Angaben wie Name, Email etc auch einige Mehrfachabfragen stattfinden.

Das Formular ist auch soweit in Ordnung und funktioniert auch, bis auf eben diese Mehrfachabfragen.


Z.Zt. kann man dieses Formular hier anschauen: Kontaktformular


Beim Abschicken des Formulars werden alle Daten richtig übertragen, nur die Inhalte der Checkboxen nicht. Ich kann mir leider keinen Reim darauf machen, da ich des php nicht gerade übermachtig bin. Hier mal ein paar codeschnipsel aus den entsprechenden Bereichen. (bitte Bescheid sagen wenn die ganzen Files gepostet werden müssten)

                  
                   Objektausstattung


                   Extras



                   PoolWhirpoolEingezäuntKamin



                    


                   24 
                   Std. ServiceVoll 
                   ausgestatte Küche

 

und in der action.php steht dann:

$Distanz_maritim_Gebiet=$_POST[\'Distanz_maritim_Gebiet\'];

$Objekt_Extras=$_POST[\'Objekt_Extras\'];

$Lage_Objekt=$_POST[\'Lage_Objekt\'];

$Bodenbelag=$_POST[\'Bodenbelag\'];

$Zimmer=$_POST[\'Zimmer\'];

$Allgemeine_Ausstattung=$_POST[\'Allgemeine_Ausstattung\'];

$Technische_Ausstattung=$_POST[\'Technische_Ausstattung\'];

$Ausblicke[]=$_POST[\'Ausblicke[]\'];

$Infrastruktur=$_POST[\'Infrastruktur\'];

$oeffentliche=$_POST[\'oeffentliche\'];

$Objekt_Beschreibung=$_POST[\'Objekt_Beschreibung\'];

$nachricht=$_POST[\'nachricht\'];

...............................
und

\"Distanz_Nationalpark\".$Distanz_Nationalpark.\"\\n\".

\"Distanz_maritim_Gebiet\".$Distanz_maritim_Gebiet.\"\\n\".

\"Objekt_Extras\".$_Objekt_Extras.\"\\n\".

\"Lage_Objekt\".$Lage_Objekt.\"\\n\".

\"Bodenbelag\".$Bodenbelag.\"\\n\".

\"Zimmer\".$Zimmer.\"\\n\".

\"Allgemeine_Ausstattung\".$Allgemeine_Ausstattung.\"\\n\".

\"Technische_Ausstattung\".$Technische_Ausstattung.\"\\n\".

\"Ausblicke\".$Ausblicke.\"\\n\".

\"Infrastruktur\".$Infrastruktur.\"\\n\".

\"oeffentlich\".$oeffentliche.\"\\n\".

\"Objekt_Beschreibung\".$Objekt_Beschreibung.\"\\n\".

\"Nachricht:\\n\".$nachricht.\"\\n\\n\".

\"Dateianhang: \".$datei_info.\"\\n\".

$report;

 

Vielleicht kann ja hier ein Experte erkennen warum die daten aus den checkboxen nicht mit übertragen werden. Das wäre sehr nett. (Ich würde mich über php-Anfängergerechte Antworten sehr freuen) :-)


Vielen Dank


Zuhi

Share this post


Link to post
Share on other sites

Ich sehe nicht, wo du die Checkboxen überhaupt überprüfst. Dir ist aber klar, dass Checkbox-Values nur übertragen werden, wenn sie auch angeklickt wurden?


Gruß

Jogi

Share this post


Link to post
Share on other sites

Hallöchen


ja, dass man die checkboxen anklicken muss damit sie übertragen werden ist mir klar. Das einzige was ich geschafft habe ist, dass wenn ich von 6 checkboxen 3 anklicke, immer nur die letzte in der benachrichtigungs-email angezeigt wird. Aber es sollen ja alle angeklickten übertragen werden.


Habe nun, wie auch Du jetzt schreibst, einen Tip bekommen, dass ich die checkboxen ja noch überprüfen muss.


mit

$var = (isset($_POST["checkbox"])) ? "checked" : "unchecked";

 

oder

if(isset($_POST[\'Pool\']))

 

soll es wohl klappen. Nur kann ich als absoluter Anfänger, diese codeschnipsel leider nicht richtig einbauen, da ich sie nicht wirklich verstehe :(


Hat vielleicht jemand einen Tip dazu?


Gruss

Zuhi

Share this post


Link to post
Share on other sites

Hallo,

 

$var = (isset($_POST[\"checkbox\"])) ? \"checked\" : \"unchecked\"; 

 

diese Schreibweise ist für Anfänger gänzlich ungeeignet und dies nur zum kompakten Skripting geeignet. In dem Codeschnipsel ist eine If-Else Anweisung zu sehen, welche folgendes tut: Wenn $_POST[\'checkbox\'] gefühlt bzw. gesetzt ist, dann ist $var = \"checked\", wenn nicht, dann ist $var = \"unchecked\".


Äquivalent wäre auch folgender Code

 




Zu deinem eigentlich Problem. Werden Checkboxen nicht ohne ein Value geschrieben? Denn sie können ja nur "checked" oder "unchecked" sein!?



Als im folgenden Codeschnispsel ohne das values = ...




 

Zudem hast du der Checkbox ja einen Namen gegeben. Diesen kannst du auch einfach abfragen nachdem das Formular gesendet wurde. Und zwar, je nach Sendmethode (POST,GET), per $_GET ['Pool'] oder $_POST ['Pool']; letzteres steht bereits oben. In manchen Fällen musst du über $_REQUEST gehen, war bei mir gestern jedenfalls so. Da würde sich dann in der Verwendung im Vergleich zu PST oder GET nichts unterscheiden.



Grüße

Share this post


Link to post
Share on other sites

Dankeschön,


da mach ich mich gleich mal dran. (ich frage mich übrigens, warum meine code-schnipsel so viele backslashes haben. Die sind im Original nicht da)


Ich melde mich wieder, obs geklappt hat.



Gruss

Zuhi

Share this post


Link to post
Share on other sites
Guest
Original von otti_mania

die Backslashes sollen Leerzeichen verdeutlichen!



Nein, daran liegt es nicht.

Share this post


Link to post
Share on other sites

So, nun habe ich wieder ne Weile rumprobiert, aber entweder bin ich einfach zu alt oder zu doof, oder irgendwo gibt es noch einen Haken den ich nicht verstehe.


Nun funktioniert ja so ein Kontaktformular bei anderen Leuten auch, so dass ich irgendwie die Hoffnung nicht verliere, dass ich es irgendwie schaffe.

Um nochmal das Ziel meiner Bemühungen klarzustellen: Nach ausfüllen des Formulares soll ich eine Mail bekommen in der dann hinter den jeweiligen Abfragen die Eingabe des Ausfüllenden steht. Die klappt bei allen "normalen Abfragen" super.

Und hinter den checkboxabfragen soll dann der jeweilige inhalt stehen (siehe code)

 

Telefon 235678
Strasse Fluchtweg 23
Objekt_Extras Pool whirlpool Massagesalon
Lage_Objekt
Bodenbelag Teppichboden Fliesenboden Marmor 
Zimmer 12

 

Jetzt habe ich es mit den Vorschlägen von K00ni probiert, erhalte aber immer noch nicht das gewünschte Ergebnis. Mal steht nur die Bezeichnung der letzten checkbox hinter der Abfrage, mal ein checked oder unchecked, oder auch nichts. Egal wie ich herumbastel, ich kriegs einfach nicht hin.


Ist vielleicht jemand hier, der für wirklich ganz Doofe wie mich ein kleines Beispiel posten könnte. 2checkboxen mit passender Abfrage dazu? Ich würd mich wirklich wahnsinnig freuen, damit ichs endlich verstehe.


Vielen Dank und Grüße


Zuhi

Share this post


Link to post
Share on other sites
Original von A7
Original von otti_mania

die Backslashes sollen Leerzeichen verdeutlichen!



Nein, daran liegt es nicht.



sehr geil mal wieder dein Beitrag!


1. habe ich nur auf seine Frage geantwortet!

2. Wenn du weisst woran es liegt warum sagste es nicht - und hörst mal endlich auf zu spammen!

3. Wer lesen kann ist klar im Vorteil ;)

Share this post


Link to post
Share on other sites
Guest

[OT]wer die Suche benutzen kann und liest was er findet, der braucht nicht falsche Antworten posten um des Postens willen.[/OT]

Share this post


Link to post
Share on other sites
Original von A7

[OT]wer die Suche benutzen kann und liest was er findet, der braucht nicht falsche Antworten posten um des Postens willen.[/OT]



Du raffst echt garnix oder kerl?


guckst du in seine Frage dann du sehen was er hat gefragt vor meine antwort!


er hat doch gefragt warum die Backslashes da sind und bei ihm im Script nicht!


man, ich kann mich den ganzen tag nur über dich mit deinen 5 Acounts hier bei Powie aufregen!


Tu doch uns allen einen gefallen:


HÖR BITTE AUF ZU SPAMMEN UND UNSINNIGE BEITRÄGE ZU SCHREIBEN!!!!!


wenn dann was konstruktives was hilft.


BITTE

Share this post


Link to post
Share on other sites
Guest

Liest dich wohl gerne? Und hör auf zu schreien! :R:

Share this post


Link to post
Share on other sites

Ok, A7, du möchtest also das ich nochmal ganz von vorne anfange :-o


Natürlich kenn ich die selfhtml seiten, die auch wirklich sehr hilfreich waren in den letzen Jahren.

Ich habe deinen "wink mit dem Zaunpfahl" befolgt und nochmal bei Null angefangen.

Das sieht jetzt so aus:

 

                    Bodenbelag


                   TeppichbodenLaminatHolzbodenGranit

 

und in der Abfrage dann:

 

$Bodenbelag=$_POST[\'Bodenbelag\'];

.
.
.
.und weiter unten dann:

#--- Checkboxen
if (isset($_POST[\'checkbox\']))
{
$var = \'checked\';
}
else
{
$var = \'unchecked\';
}

 

Ausgegeben in der Email wird dann:

 

Objekt_Extras
Lage_Objekt
BodenbelagLaminat
Zimmer
Allgemeine_Ausstattung

 

Obwohl ich Teppichboden und Laminat angeklickt habe.


Wie gehts nun weiter? Es ist egal wie ichs mache, so richtig wie ich das möchte klappt das nicht. Hast du noch einen Rat?


Gruss


Zuhi

Share this post


Link to post
Share on other sites

Zeilen mit über 400 Zeichen sind nicht lesbar und damit disqualifizierst du dich.


Ein print_r($_POST); würde dir vielleicht auch weiterhelfen, genauso wie


http://www.php.net/manual/de

http://www.php-faq.de

http://www.php-einfach.de

http://www.schattenbaum.net/php/ (leider etwas veraltet)

http://www.galileocomputing.de/openbook/php4 (leider etwas veraltet)

http://tut.php-q.net/index.html

http://dev.mysql.com/doc/mysql/de/index.html

http://ffm.junetz.de/members/reeg/DSP/

http://www.phptutorials.de

http://www.dynamic-webpages.de/05.tutorials.php


und


Richtig debuggen

1. Man bemerkt, dass ein Skript nicht das tut, was es soll.

2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);

3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.

4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).

5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen

6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.

7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.

8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.


Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.


Gruß

Jogi

Share this post


Link to post
Share on other sites
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...