PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : checkboxes, mail(), usw.


Swordfish
30.04.2002, 23:21:40
Moinmoin

ich möchte gleich was vorausschicken: ich bin noch ein ziemlicher n00b in Sachen PHP. Meine Probleme dürften für andere klar sein, aber dies ist ja wohl der Zweck des Boards ;)

Die Fragen beziehen sich auf folgende "Dummie-Site": http://209.15.183.79/~musikenzler/form/anmeldung.htm

Ich möchte die Eingaben eines Anmeldeformulars überprüfen und dabei die in Variablen umgewandelten Eingaben, die korrekt sind, übernehmen. (und die andern nochmals zurückschicken) Allerdings besteht das Formular nicht nur aus Text-Inputs, sondern auch aus checkboxes und radios... Wie kann ich nun die korrekten Eingaben aus checkboxes, z. B., in php übernehmen? Bei den Text-Feldern kann man ja einfach "$textfeldeingabe" nehmen, aber bei den checkboxes?!? Unter JavaScript gibt's da sowas wie "checkboxinhalt[0], checkboxinhalt[1]" usw, aber wie macht man das in php?

Nun sollte das korrigierte Formular per E-mail an mich geschickt werden, über die Funktion "mail()" Sowas wie "mail($email_to,$email_betreff,$name,$vorname,$adresse,....);" funktioniert aber nicht... muss ich irgendwo noch den Pfad zu "sendmail" angeben?

Als letztes habe ich noch ein Datum-Problem: Ich zeige unten an der Site "lastmodified" durch JavaScript an. Allerdings mögen dies nicht alle Browser und einige geben dann "1. Januar 1970" aus, was mir ja doch etwas zu früh erscheint ;) Wenn ich PHP aber im Format jFY das Datum ausgeben lasse, ist der Monat natürlich englisch. Wie kann ich nun den Monat in Deutsch ausgeben lassen?


thx a lot.....

Nev
01.05.2002, 01:10:10
Hi Swordfish

Du hast recht irgendwie dient dieses Forum Leute zur Starthilfe, aber nicht nur dennen *hoff ich zumindest*

Wie du die Text-fields wieder ausgibst weißt du ja schon.

Bei Radio und Check-Feldern ist es fast gleich.

Sobald du den Feld einen Namen gibst kannst du diesen Namen als Variable anstrechen

Die HTML-Definition von Check und Radio-Buttons ist ja so:
<input type='checkbox' name='name value='J'>

wenn das Feld-Vorausgewählt sein soll schreibst du noch ein
checked bzw. selected in den Tag

das bedeutet wenn du nun das Formular abschickst bekommst du unter dem Namen des Feldes den Wert (wenn es ausgewählt ist).

dadurch kannst du deine Überprüfung machen.
wenn nun ein Fehler auftritt, rufst du das Formular mit den Werten auf, wo bei du abfragst ob das Feld gesetzt ist oder nicht
wenn ja, schreib ein checked bzw. selected.


Zu deinen 2ten Problem:
es gibt eine Mail-Funktion in PHP.
Mail() (http://www.php.net/manual/de/function.mail.php)

mail(to,titel, msg, [header]);
to, titel ist logisch
msg kannst du als umbruch
machen oder ein einfaches Enter
Im Header (optional) kannst du definieren, ob es ein HTML-Mail oder Plain-Text-Mail ist, und einiges mehr.

Zum 3 Problem:
Ich wüßte jetzt nicht das es geht, da eine PHP-Datei jedes mal neu generiert.
Du kannst nur das Files-Änderungs-datum auslesen d.h wann du die PHP-Datei das letzte Mal geändert hast

Hoffe ich konnte helfen

Swordfish
01.05.2002, 01:53:35
Hallo Nev

Erst mal vielen Dank! Das Mail-Problem hat sich mittlerweile gelöst, ich sandte das Ganze einfach an eine andere meiner Adressen, schon funzte es (da soll einer drauskommen ;).

Genau, das Datum der letzten Änderung lese ich aus, die Frage ist eigentlich nur eine des Formats... Denn ich möchte die Monatsnamen deutsch haben, die eigentlichen Werte, die zurückkommen sind aber englisch....

Noch was zum ersten Problem:

Angenommen, ich habe 4 radios und möchte jeden einzeln abfragen, müsste das dann etwa so aussehen?
if ($radio1 == checked)..... if ($radio2 == checked).... if ($radio3 == checked).... if ($radio4 == checked)....

Dann habe ich noch was anderes gefunden... Ich habe 6 checkboxes, die alle zur selben Gruppe gehören, aber unterschiedliche values haben. Ich lasse mir nun einfach $checkboxes via mail() schicken, aber es wird im Mail jeweils nur die letzte angeklickte Chechbox gezeigt, nicht alle angeklickten. Was kann wohl hier noch das Problem sein?!?....

Nochmals vielen Dank!

Nev
01.05.2002, 01:59:19
HI @gain

zum 1ten:

Du bekommst nicht checked zurück sondern den Value des Feldes
zB:
<input type='checkbox' name='test' value='Hallo'>

dann bekommst du wenn es aktiviert (checked) ist den Wert 'Hallo'
wenn nicht bekommst du nix

daher heißt deine Funktion:
if ($test == 'Hallo') ....
bzw.
if ($test) ....

Nev
01.05.2002, 02:08:11
Hab doch noch was vergessen :-)

zu Punkt 2:

diese kleiner Code bringt dir das was du willst:

function get_month_name($month_number)
{
$name_monat[1] = "Januar";
$name_monat[2] = "Februar";
$name_monat[3] = "M&auml;rz";
$name_monat[4] = "April";
$name_monat[5] = "Mai";
$name_monat[6] = "Juni";
$name_monat[7] = "Juli";
$name_monat[8] = "August";
$name_monat[9] = "September";
$name_monat[10] = "Oktober";
$name_monat[11] = "November";
$name_monat[12] = "Dezember";

return $name_monat[$month_number];
}

$file = $PHP_SELF;
$day = getdate("d",filemtime($file));
$month = get_month_name(getdate("m",filemtime($file)));
$year = getdate("Y",filemtime($file));
echo $day."-".$month."-".$year;


Sollte funken

Matthias
01.05.2002, 13:33:34
Ich bezweifel das du mit getdate die letzte Änderung einer Datei bekommst.
Probiers mal so ;))

<?PHP
$zeit=filemtime($PHP_SELF);
setlocale("LC_TIME","de_DE");
echo strftime("%d-%B-%Y",$zeit);
?>

Bei strftime hab ich zuhause Probleme mit manchen Platzhaltern. Auf den Serven funktioniert es immer einwandfrei. Falls da mir jemand einen Tipp geben kann.


Hier die Links zu den Funktionen:

http://www.selfphp.info/funktionsreferenz/dateisystem_funktionen/filemtime.php

http://www.selfphp.info/funktionsreferenz/string_funktionen/setlocale.php

http://www.selfphp.info/funktionsreferenz/datums_und_zeit_funktionen/strftime.php

Swordfish
01.05.2002, 18:23:23
@ nev: funzt leider nicht, gibt 10 Zeilen Errors raus aber kein Datum :( thx anyway...

@ Matthias: Das funzt, thx... allerdings habe ich probiert, die "0" vor den einstelligen Zahlen wegzunehmen, was ja mit "j" statt "d" funzen sollte, es wird dann aber das Datum von heute so ausgegeben: 121. Mai 2002, was eventuellerweise falsch sein könnte :))

Matthias
01.05.2002, 23:18:23
%j steht für den aktuellen Tag im Jahr.
Ist also der 121igste Tag in diesem Jahr.

Schau dir mal das an:
http://selfphp.info/funktionsreferenz/datums_und_zeit_funktionen/date.php

mußt wahrscheinlich date() und strftime() benutzen.