bvdcomp
Goto Top

Probleme mit Formularausgabe

Hallo zusammen
kann mir jemand sagen was hier nicht richtig ist?

Hallo zusammen
kann mir jemand sagen was hier nicht richtig ist?


kontakt.html
<tr>
<td class="field_title">Demontage Ladeort:</td>  
<td>
<select name="field24" id="field24" size="" class="select">  
<option value=" "> </option>  
<option value="keine Demontage">keine Demontage</option>  
<option value="1 Möbelstück">1 Möbelstück</option>  
<option value="2 Möbelstücke">2 Möbelstücke</option>  
<option value="3 Möbelstücke">3 Möbelstücke</option>  
<option value="4 Möbelstücke">4 Möbelstücke</option>  
<option value="5 Möbelstücke">5 Möbelstücke</option>  
<option value="6 Möbelstücke">6 Möbelstücke</option>  
<option value="7 Möbelstücke">7 Möbelstücke</option>  
</select>
</td>
</tr>
ausgabe.php
<?php
$nachname = @$_POST["nachname"];  
$email = @$_POST["email"];  
$tel = @$_POST["tel"];  
$betreff = @$_POST["betreff"];  
$nachricht = @$_POST["nachricht"];  
$field24 = @$_POST["field[]"];  

# Inhalt der Danke E-Mail:
$inhalt ="Hallo $nachname,\nVielen Dank für Ihren Besuch bei $url. \n  
Wir haben folgende Nachricht erhalten:\n\n
======== Beginn Nachricht =========\n\n

$nachricht\n\n
Demontage Ladeort: $field24


======== Ende Nachricht ==========\n\n;
Ich hoffe ihr könnt mir weiterhelfen.

Besten Dank

Content-Key: 118258

Url: https://administrator.de/contentid/118258

Ausgedruckt am: 28.03.2024 um 18:03 Uhr

Mitglied: 66268
66268 16.06.2009 um 11:41:30 Uhr
Goto Top
müsste glaube ich

$field24 = @$_POST["field24[]"];

statt

$field24 = @$_POST["field[]"];

heissen
Mitglied: Arano
Arano 16.06.2009 um 11:46:13 Uhr
Goto Top
Was IST denn da nicht richtig ?


Eigentlich sollte ich hier aufhören zu schreiben aber... ...mitleid.
Was hältst du den davon beim Nächstem mal...
    1. ...uns mitteilst was du den vorhast (welche Funktion das Script übernehmen soll)
    2. ...was das Script __nicht__ macht (ggf. Angabe der Fehlermeldung)
    3. ...die Formatierungshilfe dieses Forums verwendest um Programmcode für den Helfer lesbarer und somit den gesamten Beitrag übersichtlicher zu gestalten.

Hey, Ihr wollt doch was von uns... wieso kommt dann nur ein "Machmal richtig!" ?


So, erst einmal frage ich mich, warum die das <select> "field24" genannt hast ?
    1. ist der Name selbst dafür doch recht unpassend und
    2. durch die beiden eckigen Klammern wird $_POST['field24'] in PHP zu einem Array (was ja nur wirklich Sinn bei einer Mehrfachauswahl machen würde.
Also, benenne das <select> in z.B: "zuDemontieren" um und greife dessen Wert innerhalb PHP's mit $_POST['zuDemontieren'] wieder ab.

Weiter frage ich mich ob du dir der Funktion des "@" (Error Controle Operators - PHP Manual) bewusst bist ?

Und zu guter letzt:
"Alle Eingaben die von einem Benutzer kommen (egal ob User oder Admin) sind Böse und müssen überprüft werden !"

Tipp:
Schau dir mal die beiden Funktionen print_r - PHP Manual und var_dump - PHP Manual an , die können sehr nützlich bei der Fehlersuche sein ;)


~Arano
Mitglied: dog
dog 16.06.2009 um 11:48:25 Uhr
Goto Top
kann mir jemand sagen was hier nicht richtig ist?

Du hast dich nicht an die Formatierungsregeln im Forum gehalten - Der Link ist sogar rot hervorgehoben.

Abgesehen davon ist dein Skript der totale Horror und zeugt von vollkommner unverständnis - OK, sind alles die üblichen Anfängerfehler face-smile

<select name="field24" id="field24" size="" class="select">  

mit field24 erzeugst du einen zweidimensionalen Speicher für einen eindimensionalen Wert. Oder auf Deutsch: Ein select-Feld kann immer nur einen Wert ausgewählt haben (Ja, es gibt auch ausnahmen), deshalb macht es in 98% der Fälle keinen Sinn, das Feld als Array zu übergeben.

Zur Verdeutlichung.
Was du derzeit bekommst:
$_POST => array(
	feld24 => array(
		0 => "1 Möbelstück"
	)
)

Was du eigentlich willst (?):
$_POST => array(
	feld24 => "1 Möbelstück"
)

Also, schmeiss die an deinem feld24 raus und du bist schon ein Stück weiter (dein Code enthält aber noch andere Fehler)

Grüße

Max
Mitglied: bvdcomp
bvdcomp 16.06.2009 um 13:22:11 Uhr
Goto Top
Hallo @ all

Besten Dank für die Einträge. Der Code soll folgendes machen:


- Offertenformular wird vom Kunden ausgefühlt
- Sowohl der Kunde als auch ich erhalten eine Email mit den ausgeühlten Angaben.

Das ist alles.

Ich habe ein Problem mit der Ausgabe vom Dropdown Auswahl, an sonsten funktioniert es.

Ist das Richtig? Ich haben einen Input von einem kollegen erhalten:

$field24 = @$_POST["field24"];

Ich sollte einfach die [ ] weglassen??

Thank you
Mitglied: Arano
Arano 17.06.2009 um 00:08:38 Uhr
Goto Top
Ja, so ist das doch schon besser....

nur Hinweise
    1. Das was du von einem Kollegen bekommen hast und das was du schon für die anderen Felder benutzt hast sind ziemlich identisch, findest du nicht auch ? Könnte sein das es funktioniert...
    2. Was spricht gegen ausprobieren und
    3. Hast du unsere Beiträge gelesen ? Dort geben wir die eine Antwort auf diese Frage: "Ich sollte einfach die [ ] weglassen??"


So, gute Nacht
~Arano
Mitglied: nxclass
nxclass 17.06.2009 um 08:33:29 Uhr
Goto Top
die '' benötigst Du nur wenn der Benutzer die Möglichkeit haben soll mehrere Optionen auszuwählen:

<select name="feld" multiple="multiple">  
    <option value=""> </option>  
    <!-- ... -->
</select>

.. oder Bestimmte Formular Elemente gruppiert werden sollen
<input type="checkbox" name="feld" value="1" />  
<input type="checkbox" name="feld" value="2" />  
<input type="checkbox" name="feld" value="3" />  

wenn Du nur das Problem hast das Array in deine Email zu speichern:
echo 'FELD24: ' . print_r( $_POST['feld24'], true ) . "\n";