Falsche Monate im Php script
vegoh
- php
0 Marc Reichelt
0 vegoh0 Der Martin
1 Mathias Brodala0 Der Martin
0 vegoh
0 Johannes Zeller
0 Snucky1 Blaubart
Hallo auf unserem Gästebuch
http://www.wallwitzburg.de/800guest.php
werden englische Monate angezeigt, obwohl sie richtig im script stehen.
Wer kann helfen?
Alles Liebe und frohe Weihnachten.
Hallo vegoh,
[...]
werden englische Monate angezeigt, obwohl sie richtig im script stehen.
Falsch. Wenn das Skript richtig geschrieben ist, dürfte es ja deiner Meinung nach keine englischen Monate, sondern deutsche Monate ausspucken. Tut es aber nicht. Ergo ist es nicht richtig geschrieben.
Wer kann helfen?
Niemand, da du den Quelltext nicht rausrückst. Wir könnten nur ein lustiges Rätselraten veranstalten - und darauf habe ich gerade keine Lust. ;)
Grüße
Marc Reichelt || http://www.marcreichelt.de/
huhu... folgendes script haben wir benutzt:
<?php
############################################################################
############################################################################
// Settings:
// Name of the guestbook:
$title = "Gästebuch";
// Administration password:
$password = "xxx";
// File in which the entries will be saved (requires CHMOD 666):
$gbdata = "801guestbook.dat";
// How many entries per page?
$entries_per_page = 10;
// Admin E-mail for notifications (optional):
$adminemail = "info@wallwitzburg.de";
// BB-Codes on?
$bbcode = true;
// Make links clickable:
$autolink = true;
// If you want to use smilies specify the smiley folder e.g. "img/" (where these images are: smile.gif, wink.gif, biggrin.gif, tongue.gif, neutral.gif, frown.gif):
$smiley_folder = "forum/img/";
// Time format:
$time_format = "%d. %B. %Y, %H:%M";
// Length limitations:
$name_maxlength = 40;
$name_word_maxlength = 30;
$email_maxlength = 40;
$hp_maxlength = 40;
$place_maxlength = 40;
$place_word_maxlength = 25;
$text_maxlength = 3000;
$text_minlength = 5;
$text_word_maxlength = 50;
// Paths to images for Homepage and E-Mail links (optional):
$homepage_icon = "";
$email_icon = "";
// Language settings:
$new_entry = "Neuer Eintrag";
$back = "Zurück";
$preview_marking = "Vorschau";
$error_marking = "Fehler:";
$optional_marking = "*";
$name_marking = "Name:";
$email_marking = "E-Mail:";
$hp_marking = "Internetseite:";
$place_marking = "Ort:";
$comment_marking = "Kommentrar:";
$password_marking = "Passwort:";
$password_wrong_marking = "Passwort falsch!";
$submit_button = "Senden";
$preview_button = "Vorschau";
$bbcode_exp = "* optional <br> Der Text kann folgendermaßen formatiert werden: [b]Text[/b] für <b>fett</b>, [i]Text[/i] für <i>kursiv</i>.<br />Um Links einzufügen: [link]http://www.domain.de/[/link].";
$error_no_name = "Kein Name eingetragen!";
$error_no_text = "Keine Nachricht eingetragen!";
$error_email_wrong = "E-Mailaddresse scheint falsch!";
$error_text_too_long = "Ihre Nachricht ist mit ([characters] characters) Anschlägen zu lang, Bitte kürzen Sie Ihren Text auf [max_characters] Zeichen.";
$error_text_too_short = "Ihre Nachricht ist zu kurz.";
$error_word_too_long = "Das "[word]" ist zu lang!";
$error_already_made_entry = "Sie haben binnen den letzeten 5 Minuen schon einen Eintrag verfasst. Bitte versuchen sie es später noch einmal!";
$delete_entry_marking = "Eintrag löschen:";
$delete_entry_conf_marking = "Sind Sie sicher, dass Sie den Eintrag <b>[name]</b> löschen möchten?";
$no_authorisation_marking = "Nicht angemledet. Bitte loggen Sie sich ein.";
$log_in_marking = "Einloggen";
$edit_button = "Bearbeiten";
$delete_button = "Löschen";
$delete_conf_button = "Löschen";
$previous_page = "<";
$next_page = ">";
$still_no_entries_marking = "Bis jetzt keine Einträge";
$mail_subject = "Neuer Eintrag in unser Gästebuch auf www.wallwitzburg.de";
$hp_link_marking = "Internetseite";
$email_link_marking = "E-mail";
//$months_translated = array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
// End of settings
##############################################################################
(...)
lg
Hallo,
huhu... folgendes script haben wir benutzt:
<?php
[...]
$gbdata = "801guestbook.dat";
keine gute Idee, deine ganzen Interna hier zu veröffentlichen!
$time_format = "%d. %B. %Y, %H:%M";
Aha! Du überlässt es also dem PHP-Interpreter (und damit dem Server), aufgrund seiner Locale-Einstellungen die richtigen Monatsnamen ("%B") einzusetzen.
$comment_marking = "Kommentrar:";
Tippfehler?
$no_authorisation_marking = "Nicht angemledet. Bitte loggen Sie sich ein.";
Tippfehler?
//$months_translated = array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
Schön. Hier hat anscheinend schon jemand eine Lokalisierung _vorgesehen_, dann aber lieber auskommentiert gelassen.
Den wirklich entscheidenden Teil des Scripts, nämlich die Stelle, an der die Ausgaben aufbereitet werden, hast du hier allerdings weggelassen. Was du uns hier zeigst, ist quasi nur der Konfigurationsteil.
So long,
Martin
Hallo Martin.
$time_format = "%d. %B. %Y, %H:%M";
Aha! Du überlässt es also dem PHP-Interpreter (und damit dem Server), aufgrund seiner Locale-Einstellungen die richtigen Monatsnamen ("%B") einzusetzen.
[…]
//$months_translated = array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
Schön. Hier hat anscheinend schon jemand eine Lokalisierung _vorgesehen_, dann aber lieber auskommentiert gelassen.
Stimmt. Die Nutzung von setlocale ist doch weitaus gewitzter.
Einen schönen Dienstag noch.
Gruß, Mathias
Hallo Mathias,
Schön. Hier hat anscheinend schon jemand eine Lokalisierung _vorgesehen_, dann aber lieber auskommentiert gelassen.
Stimmt. Die Nutzung von setlocale ist doch weitaus gewitzter.
guter Gedanke. Die Funktion war mir bisher nicht geläufig - ich dachte, ein PHP-Script müsse die Eingestellung als gegeben hinnehmen. Danke für den Hinweis.
Ciao,
Martin
hallo, ja das ganze script hat er nicht angenommen...
zu viele zeichen?
lg
habs mal hochgeladen:
www.wallwitzburg.de/xxx.txt
Hallo vegoh,
<?php
############################################################################my little guestbook (C) 2003 by Alex (http://www.mylittlehomepage.net/).
There is no warranty for this script - use on own risk! #
############################################################################
[irrelevanter Quelltextauszug]
Warum verrätst du denn nicht gleich, dass du Alex' Gästebuchscript einsetzt? Dann hätte man sich die Rumraterei jedenfalls sparen können.
In der Version des Scriptest, die man sich von seiner Homepage runterladen kann, ist der entsprechende Teil allerdings auch nicht auskommentiert. Möglicherweise wäre die Frage in Alex Forum besser aufgehoben, auch wenn das nicht besonders gut besucht ist - aber ich hoffe dass zumindest Alex selber dort regelmäßig reinschaut.
Schöne Grüße,
Johannes
werden englische Monate angezeigt, obwohl sie richtig im script stehen.
Vermutlich stecken hier UNIX-timestamp Operationen hinter. Die Rückgabe der date()-Funktion mit Parameter 1 als 'n' liefert dir beispielsweise einen Integerwert für den Monat, der aus dem Timestamp resultiert, zurück (0=Januar, 1=Februar, .., 11=Dez.), welcher nun im Source ausgewertet werden will. Es ist einfach, dort ein Array anzulegen und die Rückgabe als Key weiterzuverwerten. Das Array hier stammt nun aus einem von vielen Beispielen:
$month_to_de = array(
'Januar',
'Februar',
'März',
'April',
'Mai',
'Juni',
'Juli',
'August',
'September',
'Oktober',
'November',
'Dezember'
);
Ich bin mir fast sicher, dass analog im Source mit den englischen Monaten verfahren wird. Kennst du denn den Source gar nicht richtig?
Es ist einfach, dort ein Array anzulegen und die Rückgabe als Key weiterzuverwerten.
Noch einfacher ist es IMO, gleich strftime() dafür zu benutzen und vorher mit setlocale() die gewünschte Sprache festzulegen.