php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.03.2007, 14:52  
Erfahrener Benutzer
 
Registriert seit: 17.11.2003
Beiträge: 212
R4v3r
Standard Frage zu MD5

Hallo!

Ich habe eine Frage zur MD5-Codierung eines Strings:

Ist die Stringlänge und die Inhalte des Scripts (-> Sonderzeichen) egal und ergibt es wirklich immer eine eindeutige ID?

Ich möchte Smarty-Caching benutzen und da bei mir alle über eine Datei läuft, muss ich Caching IDs nutzen. Meine Seite besteht aus mod_rewrite und um eine Seite wieder klar identifizieren zu können, möchte ich einfach die REQUEST_URI der jeweiligen Seite nehmen. Da die aber teilweise recht lang ist und ich mich vor überlangen Dateinamen schützen möchte, kam mir der Gedanke mit der MD5-Codierung.

Würde das soweit klappen?

Danke & Gruß
R4v3r ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.03.2007, 14:57  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Mh bei Smarty kannst du aber auch mehrere verschiedene Seiten die über nur eine Datei angezeigt werden cachen ... schau dir mal Multiple Caches an das müsste dein Problem lösen.

Ansonsten ein md5 Hash ist immer 32 Zeichen lang und es ist egal ob Sonderzeichen oder sonst was in dem String der codiert werden soll ist. Achja die Request-URI muss nicht immer gleich sein! Stell dir vor einer gibts per http://www.site.com, einer per www.site.com, einer per site.com und noch einer per http://site.com ein ... und dann z.B. noch nen # Zeichen mit beliebigem String dahinter ein oder irgenwelche Variablen etc.
Aber es ist mit diesen multiplen Caches sehr einfach für jede Unterseite einen eigenen Cache zu schreiben.
Flor1an ist offline  
Alt 13.03.2007, 15:05  
Erfahrener Benutzer
 
Registriert seit: 17.11.2003
Beiträge: 212
R4v3r
Standard

Hallo,

ja, das mit den Multiple Caches will ich ja verwenden. Dazu muss aber eine ID übergeben werden, welche ich aus der REQUEST_URI gewinnen, und durch MD5 verkürzen möchte, da die REQUEST_URI teilweise etwas länger ist.

Ich könnte auch irgendwelche anderen IDs vergeben, da die Seite aber recht komplex ist, wäre es recht aufwändig.

Das mit "www." oder nicht besteht bei der REQUEST_URI auch nicht, da dies ja nur die "Anhängsel" (Verzeichnissnamen und Dateien), nicht aber die die Domain selbst zurück gibt.
R4v3r ist offline  
Alt 13.03.2007, 15:11  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Du rufst doch die Seite über eine Datei auf oder? Und durch welche Kriterien ändert sich dann der Inhalt der angezeigt wird? Da müsste doch mindestens nen ?site=news oder sonst was übergeben werden ... und dann kannst du die Variable $site als ID verwenden.
Flor1an ist offline  
Alt 13.03.2007, 15:24  
Erfahrener Benutzer
 
Registriert seit: 17.11.2003
Beiträge: 212
R4v3r
Standard

das läuft über mod_rewrite...

z. B.: product/[PRODUCTID]-[PRODUCTNAME].html
category/[CATID]-[CATNAME].html

und noch viele andere.

Natürlich könnte ich für alles eine eigene ID erstellen, zb p-[PRODID] und c-[CATID], nur über die REQUEST_URI wäre es einfacher...

Oder meinst du, dass ich mir doch die Mühe machen sollte, weil es damit klar identifizierbar ist??
R4v3r ist offline  
Alt 13.03.2007, 15:27  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

mod_rewrite hat doch damit garnichts zutun! Im Skript selber muss doch durch irgendwelche Variablen der Inhalt geladen werden ... zB wird bei den Produkten jedes Produkt durch eine ID identifiziert und noch dadurch das product/ aufgerufen wird ... also könnte deine ID sein "product-55" oder z.B. "category-2" also des erste wäre dann wohl $site und das zweite halt $product_id oder $cat_id ... so würde ich das machen.
Flor1an ist offline  
Alt 13.03.2007, 15:45  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Statt REQUEST_URI würde ich REDIRECT_QUERY_STRING verwenden (nur über ModRewrite verfügbar), denn in REQUEST_URI steht der komplette Pfad-Request ab Document-Root, in REDIRECT_QUERY_STRING nur der, ab der htaccess, die die ModRewrite-Rule festlegt. Das macht solange keinen Unterschied, wie das Projekt im Document-Root liegt, verschiebt man es in einen Unter-Ordner, wird dieser in REDIRECT_QUERY_STRING nicht erwähnt. Dein Cache wäre also dann immernoch gültig, bei REQUEST_URI nicht.
Zergling-new ist offline  
Alt 13.03.2007, 15:54  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

noch kurz zur ausgangsfrage: md5 ist ein hash-wert und damit nicht eindeutig. aber die wahrscheinlichkeit einen identischen string zu erzeugen ist wohl so gering, dass sie zu vernachlässigen ist.
nikosch ist gerade online  
Alt 13.03.2007, 15:57  
Erfahrener Benutzer
 
Registriert seit: 17.11.2003
Beiträge: 212
R4v3r
Standard

Hallo!

Danke für die Hilfe!!!

Habe es jetzt so gemacht, wie Razor es meinte. War doch kein so hoher Aufwand, wie ich dachte
R4v3r ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Frage zur dauerhaften voting sperre! litterauspirna PHP Tipps 2008 19 29.05.2008 16:19
Frage zu spam bots und captcha litterauspirna PHP Tipps 2008 6 20.05.2008 23:56
Smarty frage: switch($action) PHP Tipps 2007 5 30.12.2006 18:07
Frage zu einem mySQL/php/html Konstrukt <Daniel> PHP Tipps 2006 5 11.07.2006 16:07
Frage zu Counter PHP Tipps 2006 1 17.02.2006 21:45
Frage zu grafiken JohnRambo PHP Tipps 2005-2 23 16.08.2005 20:57
.htaccess - Frage Stümper PHP Tipps 2005 11 30.05.2005 11:56
Performence Frage PHP-Fortgeschrittene 10 06.05.2005 19:00
Frage zu einem Editformular PHP Tipps 2005 3 25.04.2005 14:58
mal ne Frage PHP Tipps 2005 7 14.04.2005 09:46
Hallo und Frage zu dynamischer Veränderung in Textfeldern. PHP Tipps 2004-2 2 27.12.2004 22:29
[Erledigt] Frage zur Funkrionen? PHP Tipps 2004-2 10 01.12.2004 09:42
Frage zum Einfügen von Fotos PHP Tipps 2004 11 26.09.2004 14:28
[Erledigt] Frage! PHP Tipps 2004 4 27.07.2004 11:25
[Erledigt] fputs frage PHP Tipps 2004 2 16.07.2004 19:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
md5 smarty, smarty md5(), smarty md5, smarty md5 variable, md5 verkürzen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:38 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.