Schon wieder brauche ich Hilfe. Die Suchfunktion hat mir zwar reichlich Themen angezeigt, nur wird das alles sehr unübersichtlich und hilft mir nicht genau weiter.
Ich bin dabei eine Anzeige für eine Bildergalerie zu vereinfachen und möchte folgendes erreichen.
Es existiert ein Skript, welches den Ordner 'bilder' überprüft. Werden dort Unterordner mit Bildern gefunden, sollen die jeweiligen Unterordner als Link aufgelistet werden. Z.B. Sommer2006, Schützenfest2010.
Ich übergebe den Ordnernamen dann an ein weiteres Skript, welches mir die Bilder dann als Thumbs auf den Bildschirm verteilt. Soweit funktioniert alles.
Da es sich um eine Seite eines Schützenvereins handelt, kommen in den Ordnernamen also auch 'ü' und so vor. Die Anzeige bei der Auflistung wird richtig angezeigt und auch die Übergabe, die man unten im Browser sehen kann zeigt ein 'ü' an. Wenn jetzt die Seite des Unterordners 'Schützenfest2010' geöffnet wird, wird der Name auch richtig übergeben, der wird als Überschrift angezeigt. In der Pfad-Anzeige des Browsers steht allerdings anstelle des 'ü' ein '%FC'. Da sich sämtliche Pfade zur Verarbeitung der Bilder auf den übergebenen Namen beziehen und das dann auch nicht richtig funktioniert, wird auch leider kein Bild angezeigt.
Die Bilderordner lade ich einfach per ftp mit dem Total Commander hoch.
Als Standard habe ich in der PHP.ini den Charset ISO-8859-1 eingestellt.
Meine Frage wäre, wie ich das Problem am einfachsten lösen kann.
Welcher Charset sollte man benutzen, ISO-8859-1 oder UTF-8, die Meinungen gehen stark auseinander.
Ich hoffe, es ist nicht zu kompliziert beschrieben.
Gruß
HerrFrie
Ankündigung
Einklappen
Keine Ankündigung bisher.
[Erledigt] Leidiges Thema Umlaute bzw. Charset
Einklappen
Neue Werbung 2019
Einklappen
X
-
[Erledigt] Leidiges Thema Umlaute bzw. Charset
Stichworte: -
-
Ein Gast antwortete@RustXXL: So funktioniert es natürlich auch
-
Das hört sich doch schon mal alles verständlich für mich an. Schon mal besten Dank, ich werde das nachher direkt mal probieren !
Gruß
HerrFrie
Einen Kommentar schreiben:
-
Datei includes_conf.php:
PHP-Code:$inc['1'] = 'gallery.php';
$inc['2'] = 'guestbook.php';
$inc['3'] = 'helloworld.php';
PHP-Code:include 'includes_conf.php';
if(array_key_exists((int) $_GET['id'], $inc))
{
include $inc[(int) $_GET['id']];
}
else
{
echo 'Datei nicht gefunden';
}
Einen Kommentar schreiben:
-
Ein Gast antworteteDas geht auch über eine Datei per Datenbank.
Deine Beschreibung zu meinem Beispiel ist korrekt. Nachteil, du must bei jeder PHP Datei die du neu in deinen Ordner hochlädst diese Datei mit den Case Beispielen editieren.
Die Dateien die du mit der Datenbank bzw. mit der Switch/Case Funktionen füllst, musst du dann natürlich in der index.php bekannt machen per Include
Einen Kommentar schreiben:
-
Hmm,
wenn meine Startseite also z.B. index.php heißt und ich im Menü oder so einen Link www.sonstwas.de/index.php?id=7 aufrufe, dann würde dein Code mit in der index.php stehen und über die case Anweisung müssten dann alle benutzten id's drin stehen, die dann mit include den richtigen Skripten zugewiesen werden.
War das so richtig ?
Ohne Datenbank könnte man aber über den Quelltext trotzdem die Dateien rausfinden, also wäre eine Datenbank besser ? Geht das auch ohne Datenbank mit einer eigenen Datei oder so ?
Somit gibt es also keine eigene Funktion oder Befehl für sowas und wird also komplett von Hand zugewiesen ?
Einen Kommentar schreiben:
-
Ein Gast antworteteSimple Lösung!
PHP-Code:<?php
$var1 = $_GET['id'];
switch($var1) {
case 1:
include '222222.php';
break;
}
?>
Dann liest du Sie aus und Includiest sie!
Einen Kommentar schreiben:
-
Hallo Jens,
ich weiß schon, wie ich eine übergebene Variable greifbar mache, es geht mir eher darum, dass ich nicht sowas als Link übergebe :
PHP-Code:http://www.sonstwas.de/?name=geheimskript.php
PHP-Code:http://www.sonstwas.de/?id=12
Einen Kommentar schreiben:
-
Ein Gast antworteteZitat von HerrFrie Beitrag anzeigenHallo Nikosch,
Ich habe mal 'url über id' und 'url verschlüsselung' ...
$_GET
PHP: $_GET - Manual
Einen Kommentar schreiben:
-
Hallo Nikosch,
das mit den ID's habe ich schon öfters gesehen und fand das auch gut. Wie genau funktioniert das ? Ich habe mal 'url über id' und 'url verschlüsselung' als Suchbegriff probiert, habe da aber nicht das gefunden , was du erklärt hast. Wonach genau muß ich da suchen ?
Ich hoffe ich verstehe das richtig. Meine Skripte haben weiterhin die Bezeichnung index.html, galerie.php, ... und die id ist diesen dann nur zugeteilt ?
Gruß
HerrFrie
Einen Kommentar schreiben:
-
[keine Antwort]
Ich sag mal so, UTF-8 ist auch mehr die Antwort auf allgemeine Zeichensatzprobleme bei der Anzeige. Was Dateisystem (und gerade auch die Übergabe via URL) anbelangt, gibt es da noch andere Überlegungen.
Die Hauptüberlegung:
- UTF-8-Sonderzeichen in der URL werden zwar großglächig unterstützt, sind aber genau genommen kein Standard. Das kann also immer zu Problemen führen
- URL-basierte dynamische Verzeichnisteile sind ein Sicherheitsrisiko in der Applikation. Damit kann es möglich werden, beliebige Files auf dem Server auszulesen. Ja, auch Logfiles oder Dateien, in denen Deine Zugriffsdaten auf die DB stehen etc.
- UTF-8 als Filesystemzeichensatz ist ebenfalls mit Vorsicht zu genießen
Summ Summarum:
- Du solltest Deine URLs auf Basiszeichen oder sogar IDs beschränken
- Über diese IDs kannst Du Deine Verzeichnisse ansprechen (das ist auch besser, wenn man dort mal eine Bezeichnung ändert)
- Die „optische“ webseitige Beschriftung des Ordners solltest Du als Metadaten (bspw. in einer Datenbank relational bezogen zum echten Verzeichnisnamen) abspeichern. Da drin kann dann noch mehr stehen (wer hats angelegt, ein Icon, eine Beschreibung etc.)
Einen Kommentar schreiben:
-
Danke,
bei meiner Testseite habe ich gerade festgestellt, dass zwar der Pspad auf UTF-8 eingestellt war, er aber warum auch immer als Ansi gespeichert hat. Ich habe das nun umgestellt und jetzt funktioniert das auch. Habe das auch mit den Hauptseiten der restlichen HP gemacht und auch das wird jetzt richtig angezeigt.
Jetzt muß ich erst mal weiter sehen, ob ich den Rest von meinem Problem selber in den Griff bekomme.
Aber eine spontane Frage hätte ich noch. Gibt man den Charset im Header IMMER an, auch wenn man das z.B. in der .htaccess, bzw. php.ini schon als standard deklariert hat ?
Gruß
HerrFrie
Einen Kommentar schreiben:
-
Zitat von HerrFrie Beitrag anzeigenWenn ich das jetzt richtig verstanden habe, dann sollte es funktionieren, wenn ich als standard, bzw. im Skript utf-8 als charset auswähle und das skript auch als utf-8 abspeichere.
Es hat sich bewährt, dabei eine Doppel-Strategie zu fahren:
Zuerst sagt der Webserver (oder das PHP-Script, was dort läuft) per HTTP-Header, welche Kodierung verwendet wurde:
PHP-Code:// allererste Ausgabe im Script:
header('Content-Type: text/html; charset=utf-8');
Code:<html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!-- allererste Angabe im Header --> </head>
Code:<?xml version="1.0" encoding="UTF-8" ?> <html> <head> <!-- usw. -->
Ich arbeite mit pspad und habe dort utf-8 als standard ausgewählt.
Allerdings wird auf einer Testseite, bei der ich mir einfach äöü anzeigen lasse, nur ein komisches viereck angezeigt.
Es kann aber auch andere Ursachen haben, die man ohne den Text zu sehen, aber schlecht beurteilen kann. Beispielsweise kann die von dir eingestellte Schriftart (der Font) die entsprechenden Zeichen gar nicht eingebaut haben.
Könnt ihr mir nicht noch einen Tipp geben ?
Einen Kommentar schreiben:
-
Ich habe jetzt noch einmal hier im Forum gesucht und bei den alten Beiträgen angefangen.
Wenn ich das jetzt richtig verstanden habe, dann sollte es funktionieren, wenn ich als standard, bzw. im Skript utf-8 als charset auswähle und das skript auch als utf-8 abspeichere. Ich arbeite mit pspad und habe dort utf-8 als standard ausgewählt.
Allerdings wird auf einer Testseite, bei der ich mir einfach äöü anzeigen lasse, nur ein komisches viereck angezeigt.
Könnt ihr mir nicht noch einen Tipp geben ?
Einen Kommentar schreiben:
-
Ok,
habe gerade mal eine dummy-Erklärung gefunden, die mir schon mal soweit geholfen hat, dass ich jetzt verstehe warum eher utf-8 benutzt werden soll.
ABER, heißt das jetzt, dass ich vorhandene Skripte/Seiten, auf denen Sonderzeichen vorkommen, neu als utf-8 abspeichern muß und es wird wieder ein ä,ö oder ü angezeigt, oder wird das schwieriger ?
Einen Kommentar schreiben:
Einen Kommentar schreiben: