

Anmelde-Formular

Strohhalm Spendenkonto
Konto-Inhaber: Mathias Bank
Konto-Nummer: 83 04 297
BLZ: 200 905 00
Kreditinstitut: Netbank AG
Hinweis: Die Spenden werden bis auf weiteres ausschließlich dafür eingesetzt, den Strohhalm gegen rechtliche Angriffe zu schützen. Ein anderer Verwendungszweck muss von der gesamten Administration genehmigt werden.
aktueller Spendenstand: 188.01 €

strohhalm Standard (aktiv) von baumeister
(Noch keine User-Stylesheets vorhanden)
Hinweis: Zum Wechseln der Styles muss ein Cookie akzeptiert werden. Jedes registrierte Community-Mitglied darf eigene Styles entwickeln und einreichen. Ausführliche Infos unter Styleswitcher-Hilfe.
Neue Styles an baumeister@strohhalm.org senden.

strohhalm.org / Archiv / Programmierung Serverseitig / Eintrag lesen
Fixstern 23. November 2004, 11:09
Hallo,
ich habe einen kleinen Formmailer ( von drweb) und möchte die Ausgabe nun sortieren lassen. Also die $name Variablen, welche durch eine Schleife ausgelesen werden. Hierzu gibt es den sort Befehl. Nun weiss ich aber nicht wo dieser eingebaut werden muss. Habe schon einiges getestete. Könnt ihr helfen? Ich danke Euch!
---------------------------
<?php
$admin = "meine@mailadresse.de";
$subject = "Mailanfrage";
$message = "Nachricht fuer $admin von $email:\n\n";
while(list($name,$value)=each($HTTP_POST_VARS))
{
$message.="$name: $value\n\n";
}
mail($admin,$subject,$message,"From: $admin");
?>
-------------------------
mut 23. November 2004, 11:17
moin,
also das Formular dürfte doch schon ein wenig veraltet sein...
nimm mal lieber $_POST anstatt $HTTP_POST_VARS - und dann sortier einfach das $_POST mit sort.
Gruss,
Daniel
deetee 23. November 2004, 12:34
Ich frage mich wozu du die Namen sortieren willst, das hätte doch überhaupt keine Relevanz für dieses Skript, oder?
Ansonsten würde ich aber natcasesort() verwenden. Mir sort() bekommt man falsche Sortierung, wenn die Namen mal Groß mal klein geschrieben sind.
Wo das hier eingebaut werden könnte, gute Frage. Müsste man etwas umbauen denke ich.
Fixstern 23. November 2004, 13:26
Hallo,
ohne Sortierung werden die Formulareingaben unsortiert ausgegeben. So kann es passieren, dass Formularfelder, obwohl thematisch zusammengehörig in unterschiedlicher Reihenfolge ausgegeben werden. Insbesondere immer dann, wenn es sich um verschiedene Formularfelder (radiobutton, textarea, checkbox) handelt. Mit der Sortierung möchte ich erreichen, dass die $name variablen mit den zugehörigen $values zusammengehörig ausgegeben werden.
Wo müsste ich den sort Befehl bei $_POST einsetzen?
mut 23. November 2004, 13:38
Hmmm,
also irgendwie scheint da ein Verständnisproblem zu sein...
> Mit der Sortierung möchte ich erreichen, dass die $name variablen mit den zugehörigen $values zusammengehörig ausgegeben werden.
das geschieht eh schon...
WAS genau willst Du denn sortieren ? Die Feldnamen ?
Ich blick nicht so ganz durch...
Fixstern 23. November 2004, 13:40
Sorry, habe mich vielleicht zu umständlich ausgedrückt!
Ja, die Feldnamen. Also Beispielsweise name, vorname, telefon, geschlecht, stadt,
Die Ausgabe hätte ich dann gerne so sortiert:
stadt, geschlecht, telefon, name (Beispiel)
Man kann das alphabetisch sortieren, oder nummerisch klar, mir ist ersteinmal wichtig zu wissen, wie man sortieren kann, also wo der Schalter eingebaut werden muss .....
danke!
Fixstern 24. November 2004, 08:47
Hat denn jemand noch eine Idee bzw. wo müsste ich den sort Befehl einhängen?
Danke!
mut 24. November 2004, 09:41
Hallo Fixstern,
also - Du machst einem das aber auch nicht einfach:
> stadt, geschlecht, telefon, name (Beispiel)
Was soll das den für eine Reihenfolge sein ? Woher soll php denn wissen, welche Du willst ?
Wenn Du nach den Feldnamen sortieren willst, dann schau Dir mal KSORT an:
http://de3.php.net/manual/de/function.ksort.php
Falls wir immer noch aneinander vorbei reden, muss ich wohl passen...
;-)
Fixstern 24. November 2004, 10:02
Hallo,
ok, versuche es mal anders, vielleicht hast Du ja noch Lust Dich damit auseinanderzusetzen:
Mein Formular hat unterschiedliche Eingabefelder (Checkboxen, Texteingabefelder, Radiobuttons etc.)
Unter anderem gehören thematisch Radiobuttons und bestimmte Auswahlfelder zusammen. (Beispiel ja/nein und Auswahl vorbelegter Werte)
ZUr Zeit werden die Daten bei der Übermittlung wahllos und unsortiert ausgegeben. Mein Ziel besteht darin die Daten in einer bestimmten Reihenfolge auszugeben. Als Ansatz sehe ich die alphabetische Sortierung der Feldnamen "name". Bei folgender Bennenung müsste die alphabetische Sortierung möglich sein.
<input type="radio" name="a_radiobutton" value="wert1">
<p>
<input type="checkbox" name="b_checkbox" value="wert2">
<p>
<input type="text" name="c_textfield" value="wert3">
Ist es etwas klarer geworden?
Gruß
Fixstern
mut 24. November 2004, 10:52
Also,
1. Gib den Dingern Namen, die Du zuordnen kannst - also meinetwegen a_geschlecht c_name usw.
2. Da Du ein assoziatives Array hast, wende einfach ein
ksort($_POST) an (bevor DU dann die message generierst natürlich ;-) - das sollte klappen (schau Dir doch einfach mal die Doku oben an).
Nun sollte es aber klappen - oder ?
Gruss,
Daniel
Fixstern 24. November 2004, 11:48
Danke zunächst.
Habe jetzt folgendes modifiziert, kommt aber eine Fehlermeldung:
Fatal error: Maximum execution time of 30 seconds exceeded
--------------
while(list($name,$value)=each($_POST))
sort($_POST);
{
$message.="$name: $value\n\n";
}
----------------
ist sort an der richtige Stelle?
mut 24. November 2004, 12:12
nee,
jetzt sortiert er dir ja jedesmal INNERHALB der Schleife Dein Array - auuserdem sortier er mit sort() die WERTE, nicht die Schlüssel...
Aber ich hab so das Gefühl, Du drückst Dich hier ganz schön um einen Blick ins Manual - ich will hier nicht nen RTFM loswerden oder so, aber ein wenig mitarbeit kann doch nicht so schlimm sein, oder ?
Fixstern 25. November 2004, 15:00
Nein, drücke mich überhaupt nicht um einen Blick ins Manual. Im Gegenteil. Das Problem besteht einfach darin, dass mir noch Basiswissen fehlt.
Und wieso unterstellts Du Arbeitsverweigerung? Was soll das? Keiner zwingt Dich zu antworten, dann lass es, wenn Dich die Newbies ärgern oder nerven.
Grundsätzlich danke ich allen, die sich an diesem Forum beteiligen, ob passiv oder aktiv. Jeder trägt so mehr oder weniger zu einem großen Wissenspool bei.
... und die negativen Punkte sind doch wirklich auch nicht nötig. Dieser erhobene Zeigefinger ist doch albern ...
Juggler 25. November 2004, 16:09
Hi Fixstern,
ich denke es gibt hier noch ein Kommunikationsproblem.
Deshalb stelle ich nochmal die Frage: was genau willst du sortieren?
Gib bitte ein besseres Beispiel in dem du die Feldnamen und auch die Inhalte berücksichtigst. In dem vorhandenen Beispiel von dir
name, vorname, telefon, geschlecht, stadt
stadt, geschlecht, telefon, name
ist für mich jedenfalls keine (sinnvoll) Sortierung erkennbar.
Grundsätzlich werden die Formularfelder übrigens in der selben Reihenfolge ausgegeben, in der sie auch definiert sind. Wenn also deine Ausgabe unlogisch und durcheinander ist, solltest du vielleicht mal prüfen, ob das Formular nicht vielleicht überarbeitet werden sollte.
Wenn die Reihenfolge bei der Eingabe sinnvoll ist, frage ich mich, warum sie dann bei der Ausgabe auf einmal durcheinander ist.
Da das Array $_POST ohnehin assoziativ ist, dürfte die Reihenfolge ohnehin keine Rolle spielen.
Vielleicht solltest du also mal erklären, was du genau machen willst. Aber unterschlage dabei bitte keine Informationen, damit wir das Problem komplett verstehen können.
MfG
Juggler