HTML/PHP: Cookies bzw. Get-Variablen.

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

Hi,

also wie oft fällt dir denn ein das du noch etwas hinzufügen möchtest?

Du kannst für alle Links ein Standard-anhängsel definieren, dass dann alle Werte enthält als Variabeln...

$anhang = $style.$farbe.$size

"<a href="index.php?area=startseite&".$anhang.">startseite</a>"

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

Stimmt, geht ja auch -.-° Ok, darauf muss man erstmal kommen. Da haperts bei mir immer...

Geht auch, ich wollte halt nur wissen, ob es nicht noch flexibler geht (immer das maximum rausholen), aber das ist eigentlich auch schon eine gute Lösung. <)

Das mit den Variablenwerten in den Links muss ich dann manuell handhaben, was solls.
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

Hi,

also grundsätzlich geht es noch flexibler, ich versteh nur nicht ganz was du eigentlich willst....

Währe nett wenn du nochma erklären könntest wo dein Problem ist?

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
Thalius
Beiträge: 476
Registriert: 17.02.2005 16:17
Wohnort: Basel / Schweiz

Beitrag von Thalius »

Code: Alles auswählen

echo '
<head>
 ...
 <link rel="stylesheet" type="text/css" href="'.$_GET['Style'].'.css">
 ...
</head>'; 
Um mal Stargates Methode etwas zu entbeineln:

geht auch einfacher ( und schneller ):

Code: Alles auswählen

<html>
<? echo $foomatic; ?>
</html>
Alles was ned dynamisch sein muss ist schneller wenn dus ned durch echo passt. Hierbei gehen auch if else abfragen.

Nochwas in Punkto Sicherheit .. pass NIEMALS NEI NIE NIE Filenames ueber GET Variablen, dasselbe bei SQL Statements... Das erlaubt jedem php-dummy-user dir code einzuschleusen.

Thalius
"...smoking hash-tables until until you run out of memory." :P
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

Thalius hat geschrieben:Nochwas in Punkto Sicherheit .. pass NIEMALS NEI NIE NIE Filenames ueber GET Variablen, dasselbe bei SQL Statements... Das erlaubt jedem php-dummy-user dir code einzuschleusen.
Mh, aber in diesem Falle geht es ja nur um Stylesheets... und diese liegen in einem Unterordner des PHP Skripts auf meinem Webspace. Die Variablen sind die Ordnernamen. Also letztendlich sähe es so aus:

Code: Alles auswählen

<link href="design/".$VARIABLE."/style.css" type="Text/css" rel="stylesheet">
Wenn da rumgepfuscht wird, wird der Standardsheet aufgerufen (wenn die Variable halt keinen Wert beinhaltet, der abgefragt wird).
Thalius hat geschrieben:Alles was ned dynamisch sein muss ist schneller wenn dus ned durch echo passt. Hierbei gehen auch if else abfragen.
Mh, ja, dessen bin ich mir bewusst, jedoch steht das irgendwie zu dem im Widerspruch ^^:
#php/QuakeNet Tutorial hat geschrieben: Die zweite Schreibweise hat aber einen Nachteil: Ihr könnt dann nicht mehr die Headerangaben mit PHP ändern. Header müssen vor dem eigentlichen Inhalt gesendet werden. Mit der Variante habt ihr keine Chance, noch die Header zu modifizieren. Denn beim ersten Zeichen, das gesendet wird (hier das < von <!DOCTYPE ...>), werden die Header mitgesendet und können ab diesem Zeitpunkt nicht mehr durch Aufrufe von setcookie etc. geändert werden. Man erhält die bekannte Fehlermeldung Warning: Cannot add header information - headers already sent by .... Dieses Wissen ist wichtig, wenn man mit Cookies arbeiten möchte (Cookies müssen im Header definiert werden).

Deswegen sollten PHP-Dateien immer mit <?php anfangen, und zwar in der ersten Zeile ab dem ersten Zeichen. Ein Leerzeichen oder ein Zeilenumbruch (Enter) vor <?php ist schon zuviel, denn das sind auch Zeichen, die gesendet werden, obwohl sie nicht sichtbar sind.
Aber Moment, da ich ja keine Cookies will... :? ...brauche ich das doch nicht komplett so zu machen...

---

Ich fühle mich voll missverstanden von der Welt ^^ (zum Heulen) Ich wette, ihr denkt jetzt ich bin ein Vollidiot der es einfach nicht begreift, aber ich denke, ich habe das irgendwie immer noch nicht richtig ausgedrückt, was ich machen will. ^^

Also,

Phase 1: Benutzer tippt meine URL ("www.thenameless.de") in die Adressleiste ein und drückt Return.

Phase 2: Server kriegt Anfrage und fängt an, das PHP Skript durch zu nudeln. Da der Benutzer keine Get-Variablen oder eine Session-ID mit rangeschrieben hat, als er die URL eingetippt hat, werden die Variablen auf Standardwerte gesetzt. Dann "gibt" er es dem Benutzer.

Phase 3: Der Benutzer hat eine fertige HTML Seite vor sich. Darauf befindet sich ein Link, der auf dasselbe Dokument verweist ("index.php"). Dieser Link soll aber eine Variable auf einen anderen Wert setzen, bevor die Seite erneut geladen wurde, nachdem der Benutzer darauf geklickt hat.
Die Hyperreference des Links soll automatisch generiert werden, dass alle Variablen (gehen wir mal davon aus, dass ich nicht weiß, wie viele Variablen ich habe) als z.B. Get Variable (oder halt in einer Session-ID) beim ersten Aufruf des Skripts in die URL geknattert werden, mit all ihren aktuellen Werten, bis auf den der style.css-Variable, der ja gerade anders sein soll, als der aktuelle.

Phase 4: Mit dem veränderten Variablenwert wird das Skript nochmal geparst.

Ich hoffe, jetzt ist es klar... -.-° Wenn nicht, dann schreibe ich das halt "manuell". Was soll's.
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

Jup,

dann is ja klar nimm einfach den Anhang von mir bzw. das was die anderen auch schon beschrieben haben...

Wie gesagt ich versteh dein Problem nicht?
Die Umsetzung?
Verwendung von Variabeln?
Ist dir aufgefallen, dass du kein Fragezeichen in deinem letzten Post hast?
Also worauf willst du hier eine Antwort?

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

Scarabol hat geschrieben:Ist dir aufgefallen, dass du kein Fragezeichen in deinem letzten Post hast?
lol -.-° vergesst es am besten einfach.
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Benutzeravatar
Thalius
Beiträge: 476
Registriert: 17.02.2005 16:17
Wohnort: Basel / Schweiz

Beitrag von Thalius »

Phase 1: Benutzer tippt meine URL ("www.thenameless.de") in die Adressleiste ein und drückt Return.

Phase 2: Server kriegt Anfrage und fängt an, das PHP Skript durch zu nudeln. Da der Benutzer keine Get-Variablen oder eine Session-ID mit rangeschrieben hat, als er die URL eingetippt hat, werden die Variablen auf Standardwerte gesetzt. Dann "gibt" er es dem Benutzer.

Phase 3: Der Benutzer hat eine fertige HTML Seite vor sich. Darauf befindet sich ein Link, der auf dasselbe Dokument verweist ("index.php"). Dieser Link soll aber eine Variable auf einen anderen Wert setzen, bevor die Seite erneut geladen wurde, nachdem der Benutzer darauf geklickt hat.
Die Hyperreference des Links soll automatisch generiert werden, dass alle Variablen (gehen wir mal davon aus, dass ich nicht weiß, wie viele Variablen ich habe) als z.B. Get Variable (oder halt in einer Session-ID) beim ersten Aufruf des Skripts in die URL geknattert werden, mit all ihren aktuellen Werten, bis auf den der style.css-Variable, der ja gerade anders sein soll, als der aktuelle.

Phase 4: Mit dem veränderten Variablenwert wird das Skript nochmal geparst.
Gut , super - hab ich auch verstanden - was ist daran so schwer ? Brauchst du ein Beispiel ?

Methode 1 : Setze vars - überschreibe wenn GETs kommen und include deine unterpages mit ein paar if/else -> schreibe relevante vars beim link mit oder übergib ne form mit hidden fields.. oder session was auch immer dir lieber ist.

Methode 2: Strukturier deine page in Verzeichnissen, txt files , database oder was auch immer und bau dir ein Array welches die Struktur abbildet , bau deine links so dynamisch um zugleich zu wissen WO auf deiner sitemap du dich ( oder der user sich , gerade befindet ).

Und von wegen cookies und der oberen Methode kannst du das leicht umgehen indem du mit Output Objects arbeitest.. erlaubt dir auch caching von nicht veränderten dynamischen Inhalten usw.



Thalius
"...smoking hash-tables until until you run out of memory." :P
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

Naja, das hat sich erstmal erledigt. ^^ Die einzige (GET) Variable ist nun, die die aktuelle Seite bestimmt. Denn lieber ein einheitliches Design, ist besser so. Und lieber deutsche Sprache (erstmal), denn im englischssprachigen Raum wird sich wahrscheinlich derzeit keiner interessieren...

Wie dem auch sei, ihr hört spätestens von mir, wenn ich fertig bin :mrgreen: (will Meinungen hörn)
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Antworten