Willkommen in der Webstatt Zum Webstatt Blog und Stories
Al3x0r Al3x0r am 16.04.06 20:48

Guten Tag,

Vielleicht ist es eine dumme Frage, wie auch immer ich habe auf jedenfall nichts brauchbares bei Google gefunden.

Also ich rufe meine Seite für gewöhnlich so auf: http://www.meineurl.de/

Wenn ich nun den ersten Link anklicke (nennen wir ihn Link1) so ändert sich meine Url in: http://www.meineurl.de/index.php?param=link1

( Später frage ich dann ab ob der Parameter link1 gewählte wurde und wenn ja , wie reagiert werden soll.
<?php
switch ($param) {
case 'link1' : include("link1.html"); break;
}

)

Nun meine Frage: Wie stelle ich das an, dass ich nur meine URL in der URL-Zeile des Browsers habe, sprich das kein index.php?param ... angehängt wird?

Ich dachte mir bei weiteren Variablen (sobald sich dort noch mehr anreiht ) Speicher ich diese einfach in der Session und übergebe sie nicht in der URL-Zeile.
Kann ich das auch mit meiner ersten Variablen machen?
Was schlagt ihr vor, wie man sowas am besten löst ?
Ich denke die Übergabe der Variablen in der URL-Zeile ist auch nicht unbedingt der sicherste Weg, oder?

Vielen danke schonmal
mfg Alex

netcup.de Warum gibt es hier Werbung?
Sven Sven am 16.04.06 21:01

Viel einfacher. Du machst einfach nen Frame um deine gesamte Seite rum.

Al3x0r Al3x0r am 16.04.06 21:03

Quote
Original von Sven
Viel einfacher. Du machst einfach nen Frame um deine gesamte Seite rum.


Frames sind out, oder wie war das ?

Zudem , falls meine Page jemals bei Google indexiert wird steht sie dann an noch schlechterer Postition.

Da gibt es doch sicher noch ne andere Lösung oder ?

mfg Alex

Sven Sven am 16.04.06 21:06

So wird das aber gelöst, tut mir leid.
Schau dir doch mal irgendeine .de.vu Website an und guck in den Quelltext.

Al3x0r Al3x0r am 16.04.06 21:10

Quote
Original von Sven
So wird das aber gelöst, tut mir leid.
Schau dir doch mal irgendeine .de.vu Website an und guck in den Quelltext.


Mhhh ich möchte je keine de.vu Seite haben. :D :D

Ach was ich gerade vergessen habe: Danke das du so schnell geantwortest hast.

Ja dann werde ich das wohl notgedrungen so machen müssen.

Gibt es denn eine optisch ansprechendere Form als:

index.php?part1=a&part2=b

irgendwas à la

index.php/a/b oder sowas ??

mfg Alex

Sven Sven am 16.04.06 21:11

http://www.modrewrite.de/

Al3x0r Al3x0r am 16.04.06 21:30

Quote
Original von Sven
http://www.modrewrite.de/


super danke...

werde mich da mal reinlesen...

Auf den ersten Blick scheint das ein ziemlich großes Thema zu sein...


mfg Alex

Sven Sven am 16.04.06 21:36

Ja, aber wenn man sich auf die wesentlichen Sachen beschränkt nicht all zu schwer.

Al3x0r Al3x0r am 16.04.06 21:47

Eine Frage hätte ich da noch.

Diese ganzen Regex Ausdrücke zum rewriten der URL werden ja in der (einer?) .htaccess Datei abgelegt.
Ist das einfach eine Datei die ich mir erstellen kann und bei meinem Webspace in das Hauptverzeichnis laden kann?
Ich lese die ganze Zeit "die Datei liegt im Root verzeichnis". Sowas habe ich aber nicht... kann ich mir die Datei nun einfach in mein Webspacehauptverzeichnis tun ?

danke schonmal und sorry falls das wieder eine absolute Noobfrage ist aber ich bin ja hier um zu lernen. :D

mfg Alex

Sven Sven am 16.04.06 21:54

Jo, du erstellst eine Text-Datei und benennst sie in .htaccess um.
Das root Verzeichnis IST das Hauptverzeichnis :P

Al3x0r Al3x0r am 16.04.06 22:03

Quote
Original von Sven
Jo, du erstellst eine Text-Datei und benennst sie in .htaccess um.
Das root Verzeichnis IST das Hauptverzeichnis :P


ok wieder was dazu gelernt... Es hielt es fälschlicherweiser für das Hauptverzeichnis eines Servers. Nicht für das Hauptverzeichnis meines Webspaces.

danke
mfg alex

edit://

Ich habe folgendes im Internet gefunden:

RewriteEngine On
Options +FollowSymlinks
RewriteBase /

# Fuer die Kleinanzeigen
RewriteRule ^kurzerdateiname,(.*),(.*),(.*)(\.html?)$ umstaendlicher_datei_name_und_lang\.php?ka_id=$1&mail=$2&top=$3 [L]

# Rule Fuer die Module
RewriteRule ^(.*)(\.html?)$ modules.php?name=$1


Bei RewriteBase / muss ich ja angeben auf welches Verzeichnis sich die htaccess bezieht.

Wie mache ich das , wenn die htaccess in dem verzeichnis liegt, auf dass sie sich bezieht ?

Sven Sven am 16.04.06 22:16

Quote
Original von Al3x0r

ok wieder was dazu gelernt... Es hielt es fälschlicherweiser für das Hauptverzeichnis eines Servers. Nicht für das Hauptverzeichnis meines Webspaces.

Stimmt aber auch, nur halt nicht in deinem Fall :)

Du kannst das RewriteBase einfach weglassen.

Al3x0r Al3x0r am 16.04.06 23:21

Ich habe da nun gerade mal ein Stündchen mit rumgekaspert und muss sagen so einfach finde ich das nicht. :D

Ähm wie sieht das auch wenn ich einen Link à la:

index.php?param1=a&param2=b&param3=c

...habe. Gesetz dem Fall der Link würde noch so weitergehen und wie ersetzen param1, param2 und param3 durch total unterschiedliche Begriffe könnte ich dann irgendwie sagen:

Mach daraus

/a/b/c.html

d.h. mache aus den Variablen Ordner und mache aus der letzten Variable eine html datei oder müsste ich das für jeden link einzeln machen.

Sprich der Link: index.php?param=links wird zu /links.html umgewandelt

neuer Code: index.php?param=blue&next_param=blub2 wird zu blue/blub2.html

oder kann man das irgendwie in einem code vereinheitlichen. Also "Mache mir aus jeder Variable einen Ordner, Mache aus der Letzten Variable eine .html Datei.

Ich bin bei google leider (noch) nicht fündig geworden, was diese Frage anbelangt.

mfg Alex


edit:// eine Sache noch. Ich bin absoluter Neuling was mod rewrite betrifft, daher kann es sein , dass die URL leiste, so wie ich sie haben will vom aussehen her absoluter schwachsinn ist, ich find aber es sieht dann besser aus als "normal".

Sven Sven am 16.04.06 23:37

Ich würde sagen, beschäftige dich mal mit http://www.regenechsen.de ;)

Al3x0r Al3x0r am 17.04.06 15:33

Ich habe gerade mal überlegt ob sich der Aufwand mit dem ganzen mod rewrite überhaupt lohnt wenn dabei auch mal solche urls vorkommen:

.../pp_v1.1/index.php?param=ausgabe&sDirpath=./gallery/pics/31.03.06%20-%2008.04.06%20Mayrhofen%202006%20-%20Part%202&bild=mayrhofen%2020000.jpg&iPerpage=12&seite=1

Oder meint ihr es wäre rein von der Aufmachung her den Aufwand wert wenn man dann in der Titelleiste etwas à la

.../pp_v1.1/ausgabe/gallery/pics/31.03.06%20-%2008.04.06%20Mayrhofen%202006%20-%20Part%202/mayrhofen%2020000.jpg/12/1.html

Ich bin mir grade echt unsicher ob ich wirklich den ganzen Aufwand mit dem umschreiben sämtlicher Links mache oder nicht

mfg Alex

milahu milahu am 17.04.06 16:15

Warum willst du denn die URL verstecken? Um Verlinkung deiner Seiten zu vermeiden..?

In eine URL musst du übrigens nicht Datum, Titel etc. reinpacken, das kommt alles schön per HTML.
Arbeite lieber mit IDs und Schlüsselwörtern:
[FONT=monospace]RewriteRule ^gal/(\d+)/(\d+).html$ index.php?seite=galerie&galID=$1&picID=$2[/FONT]

Flexibler wäre es, die Anfrage an PHP weiterzuleiten und dort verarbeiten zu lassen ($_SERVER['QUERY_STRING']):
[FONT=monospace]RewriteRule ^(.+).html$ index.php?$1[/FONT]
Dadurch wäre das System auch portabler: Für Apachen ohne mod_rewrite einfach ein index.php? vor jede URL hängen - fertig.

Al3x0r Al3x0r am 17.04.06 16:42

Ich schreibe gerade erstmal das Galleryscript in der Form um, dass ich gal_ids sowie auch bild_ids vergebe... (danek für den Tipp ;) )
Wie mache ich das am besten mit der Seite und mit der Anzahl der Bilder pro Seite ?
Kann ich da auch noch was kürzen ?

Bisschen dumme Frage aber: Was für eine Abkürzung nehme ich am besten für "Bilder pro Seite"? Vielleicht ppp für Pics Per Page oder sowas ? :D
Im Grunde genommen ist die Frage ja schwachsinn, weil die Abkürzung so gewählt sein muss, dass ich weiss was es bedeutet, aber ich habe grade keine Ahnung was ich da für einen kurz und bündigen Variablennamen nehmen könnte. Alternativ könnte ich auch einfach ein "a" für Anzahl setzen. ^^

Wäre es dumm den ganzen kram in der Session zu übergeben , so hätte ich so gut wie nichts mehr in der URl-Leiste stehen..

mfg Alex

edit:// Das ganze ohne gravierende Fehler und unter Benutzung von . und ,.

milahu milahu am 17.04.06 17:16

Erstaunlich, welche Gedanken du dir beim Coden machst..
Überleg dir lieber mal selbst, wie du das mit den Galerie-Seiten gebacken bekommst. Tipp: ceil()

Die Parameter in einer Session zu speichern ist schlicht wahnsinnig.
Es bringt auch nix außer Problemen (Verlinkung, Übergeben der SID --> Cookies..)
Das gleiche bekommst du billiger mit Frames.. aber Vorsicht, die sind ja out.

Al3x0r Al3x0r am 17.04.06 17:22

Quote
Original von milahu
Erstaunlich, welche Gedanken du dir beim Coden machst..
Überleg dir lieber mal selbst, wie du das mit den Galerie-Seiten gebacken bekommst. Tipp: ceil()


Ja so bin ich nunmal. :D

Was für gedanken sollte ich mir um die Seite machen ? Eine Blätterfunktion besteht ja.

mfg Alex

milahu milahu am 17.04.06 17:46

Ach das war auf deine lustige URL bezogen.. Die Anzeigeoption mit "Bildern pro Seite" solltest weglassen - überflüssig.
Das mit den Seiten kannst so machen:
/gal/32/ => 1. Index
/gal/32/idx3.html => 3. Index
/gal/32/1.html => 1. Bild

Al3x0r Al3x0r am 17.04.06 18:04

Da wäre noch die Frage wie ich das mit der Bild id mache.

Ich habe mir gedacht , sobald eine Kommentar zu einem Bild abgegeben werden soll wird mit der Datenbank abgeglichen, ob unter diesem Bildnamen eine ID hinterlegt ist, falls nicht holt er sich die höchste id aus der Datenbank rechtnet 1 dazu und weisst sie dem Bild zu ...
Ist das sinnvoll oder wieder voll daneben ? :D :D

Eine Sache nocht: Die Option Bilder pro Seite. Wieso sollte ich die weblassen ? wäre es nicht evtl. gut dem User zu überlassen, wie viele Bilder er pro seite sieht ?


mfg Alex

milahu milahu am 17.04.06 18:53

Wenn du die Bilder in der Datenbank speicherst bzw. die Pfade zu den Bildern,
kannst du eine Spalte für die ID anlegen, mit der du das Bild referenzieren kannst.
Diese wird dann auch zur Zuordnung von Kommentaren genutzt.

Oder wo wolltest du deine IDs herbekommen? rand()? :>

Al3x0r Al3x0r am 17.04.06 19:08

Ich glaube du weisst nicht ganz wie die Gallerie aufgebaut ist.
Es sieht so aus.
Ich habe eine Index Seite. Auf der steht die Überschrift der Gallerie ein Zufallsbild und einige Informationen wie ein Beschreibungstext beispielsweise.
Von dort aus linke ich derzeit so auf die eig. gallerie, also den Teil wo auch die Bilder zu sehen sind: index.php?param=fotos&gal_id=$gal_id
Dann komm ich zu eig. Gallerie, der Datei bilderscript.php
Dort werden die Bilder aus dem Ordner ausgelesen (standardmäßig werden 12 Bilder pro seite angezeigt) und die Seiten werden generiert. Bei der auswahl der Seite biete ich dem benutzer gleichzeitig die Möglichkeit die Anzahl der Fotos die er Pro seite sehen will zu bestimmen ( Auswahl aus 10, 20, 35, alle )
Unter jeden Bild werden die zu diesem Bild abgegebenen Kommentare angezeigt
Mit einem Klick auf das Bild wird dann eine weitere Seite, die Seite ausgabe.php geöffnet ( index.php?param=ausgabe&gal_id=$gal_id&bild_id=$bild_id&s=$seite&ppp=$picsperpageauf )der das Bild, die dazu abgegebenen Kommentare und ein Formular zum abgeben eines eigenen kommentars dargestellt werden. Die Bild_id wird wie oben angegeben zuvor ermittelt.
zu dieser seite werden die variablen s ( für die seite auf der sich der user befand, bevor ihr die seite ausgabe.php besucht ) und ppp ( für die anzahl der anzuzeigenden bilder pro seite ) damit auch beim wiederkehren zur übersicht die selben einstellungen vorliegen.

am schönsten wäre natürlich dieser gal/1/1.html style ( also mit den "/" ) aber ich weiss nicht, auf welche art und weise, ich dann die Bilder in das Galleryscript sowie den stylesheet ( liegt im verzeichnis /style ) in die index.php reinladen muss. So wie er jetzt geladen wird , wird er bei einer mod rewrite konfiguration, bei der die url in sowas gal/1/1.html umgewandelt wird , nicht mehr angezeigt...

Ich hoffe ich kriege nicht wieder einen für meine, evtl. total schwachsinnige schwachsinnige, Denkweise auf den Deckel. :D

mfg Alex.

edit:// mir ist grade aufgefallen das ich entweder den namen des Bildes an die datei ausgabe.php übergeben muss oder ich muss zuvor alle bilder mit id in die Mysql datenbank eintragen , damit hinter einer bestimmten id überhaupt ein bildname steckt.Andernfalls macht die übergabe einer Id ja gar keine SInn und würde ins Leere führen.

milahu milahu am 17.04.06 19:27

Wie gesagt, die Anzeigeoption finde ich überflüssig. Außerdem gibt's für sowas ja die Cookies :)

Für deine aufgebauschte Story bekommst du zwar keinen Klaps, aber dafür,
dass du die Bilder nicht in der Datenbank speicherst.

Würde dir empfehlen, die Bilder komplett in der Datenbank abzulegen (BLOB),
statt sie im normalen Dateisystem zu speichern und nur die Pfade in die DB einzutragen.
Ist erstens übersichtlicher und zweitens geht kein "space" für die Bilder drauf. :D

Als Nebeneffekt bekommst dann auch gleich für jedes Bild eine ID, die du URL-mäßig verwurschteln kannst.

Ich befürchte jedoch, dass du ungern ein eigenes Skript für die Galerie schreibst.. :\

Al3x0r Al3x0r am 17.04.06 19:32

Ich habe mir bereits ein Script geschrieben, mit dem ich von allen Bilder ein Thumbnail erstelle, könnte man nicht in dem Zuge auch gleich die Bilder ( sowie auch die Thumbnails) in der DB Speicher?

Und kann ich ein ganzes Bild in einer DB speicher? oder nur den Pfad zum Bild ?
Entweder habe ich dich falsch verstanden oder ich habe die ganzen zeit nach dem falschen gesucht. :D

Ähm btw: hast du Icq? Das wird ja hier langsam zum Zwiegespräch :D

mfg Alex

edit:// Würde das die MySQL Datenbank bei 10.000 Fotos beispielsweise nicht tierisch auslasten ?

milahu milahu am 17.04.06 19:53

Mhh.. Böse Stimmen meinen, es wäre besser, die Bilder im Dateisystem zu lassen.

Eine interessante Alternative ist, den Hashwert der Datei (MD5, SHA1, ...) zu ermitteln und diese dann umzubenennen in hash.jpg/gif/png.
Dadurch kannst du später Redundanz in deinem Bilder-Bestand vermeiden: Einfach beim hochladen prüfen, ob schon eine Datei mit demselben Hashwert existert.

Dann noch schön in /bilder/ ablegen und in der Datenbank mit einer ID versehen.

Zum Thema Auslastung verweise ich auf o.g. Artikel. Speicherplatz-mäßig macht es jedoch keinen Unterschied - mySQL muss ja auch irgendwo seine Daten ablegen.

ICQ? Ne, hier isses gemütlicher. ;)

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt