"Stylechanger"

Moins,
also ich habe mir folgendes überlegt. Also ich würde gerne für meine Seite soetwas wie einen "Stylechanger" basteln. Spricht es würde dnan 3 CSS Dateien geben, einmal Blau, Rot und Grün, mit jeweils 3 verschiedenen Headerimages.

So das habe ich bisher gecodet, aber das will nicht so ganz funktionieren:

PHP:
echo "<html>";
echo "<head>";
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"style_".$_GET['style'].".css\">";

Also übergeben werden die "Styles":

  • red
  • green
  • blue

... dementsprechend heißen auch die .CSS Dateien.... aber klappen tuts i-wie net.
Achja die Styles wählt man in einem Dropdownmenü, welches ich dann auch gerne Farbig ändern würde, wenns ginge :D
 
Rein PHPMäßig machst du nichts falsch es wäre nur gut wenn du mal schreiben würdest, was genau als Fehler ausgegeben wird.

PS.: Benutze anstatt den maskierten " lieber ' dann schleichen sich fehler die auf unübersichtlichkeit zurückzuführen sind nicht so schnell ein.

CU Lük
 
Ja der Fehler ist der, das ich egal welchen Style ich auswähle eig nix passiert, der bleibt immer bei dem stanndart Blau, welches ja voreingestellt ist...
 
Original von Abstauber: Achja die Styles wählt man in einem Dropdownmenü, welches ich dann auch gerne Farbig ändern würde, wenns ginge :D

Die Methode des form muss der Method von der Variable übereinstimmen, also (GET / POST - form: method="POST" / $_POST["style"])
Kannst du dir den Inhalt der übergebenen Variable als Text anzeigen lassen?
Liegen die *.css im richtigen verzeichnis?

Da gibt es viele Fehlerquellen. ;)

Also wie ":::Lük:::" sagt genaue Fehlermeldung posten, oder den kompltten relevanten Quelltext.

MfG
freak
 
Machs mit JavaScript (hab auf deiner HP gesehn, dass du das beherrscht) ich denke nicht, dass PHP für diese Aplikation Ideal ist.
Da hast du dann gleich auch den Vorteil, dass du deinem Server Rechenarbeit ersparst.
 
PHP:
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"style_".$_REQUEST["style"].".css\">"; ?>
mit dem _REQUEST spielt es keine rolle, über welche methode das formular gesendet wurde
zudem solltest du gewärleisten, dass in deinem fall die styles im selben verzeichnis liegen und den richtigen namen haben.
dabei auch auf groß/kleinschreibung achten
 
Original von :::Lük:::
Machs mit JavaScript (hab auf deiner HP gesehn, dass du das beherrscht) ich denke nicht, dass PHP für diese Aplikation Ideal ist.
Da hast du dann gleich auch den Vorteil, dass du deinem Server Rechenarbeit ersparst.

Da ich das mit PHP auf meine Seite mache und von JS keinen Plan hab, könntest du da mal den Code für posten? Danke! ;)

MfG
freak
 
ja jezz klappt es endlich :)

index.php
PHP:
$style=$_POST['style'];

[...]

if($style==NULL){
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"style_normal.css\">";}
elseif($style=="normal"){
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"style_normal.css\">";}
else{
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"style_".$_POST['style'].".css\">";}

[...]

if($style==NULL){
echo " <img src=\"gfx/header_normal.jpg\" alt=\"reaL-Insanity.de | ".$user_online." Nutzer online\">";}
elseif($style=="normal"){
echo " <img src=\"gfx/header_normal.jpg\" alt=\"reaL-Insanity.de | ".$user_online." Nutzer online\">";}
else{
echo " <img src=\"gfx/header_".$_POST['style'].".gif\" alt=\"reaL-Insanity.de | ".$user_online." Nutzer online\">";}

changestyle.php
PHP:
echo "Wähle den Style:";
echo "<form action=\"index.php\" method=\"post\" class=\"style\">\n";             
echo "		<select name=\"style\" size=\"1\">";
echo "			<option>Wähle</option>";
echo "			<option>----------</option>";
echo "			<option value=\"normal\">Blue (Standart)</option>";
echo "			<option value=\"red\">Red</option>";
echo "			<option value=\"green\">Green</option>";
echo "		</select>"; 
echo "<input type=\"submit\" name=\"submit\" value=\"Save\" />";
echo "</form>";



Dankeschön :)
Lag daran das ich bei den If's anstatt == einfach = gemacht habe :D
ich depp... *schäm* xD

Ein Probleme habe ich jetzt dennoch noch, kann man das i-wie vllt machen das der die Farbe bei einem Link wechsel behält? Weil momentan ändert der die Farbe immer zu Blau... wenn ich eine neue Seite aufrufe
 
Original von Abstauber
$style=$_POST['style'];

Und was ist, wenn der User dann einen Link klickt? Dann wird die POST Variable nicht mehr mitgeschickt und er landet im StandardStyle. Meinen Tipp von vorhin hast du aber noch nicht beherzigt.

Und die Linkfarbe kannst du mit a:* in CSS ändern.

EDIT: Du willst ma dein Gästebuch prüfen ;-)

PS: SQL Injections sind böhse.
 
Original von SargentD
Und was ist, wenn der User dann einen Link klickt? Dann wird die POST Variable nicht mehr mitgeschickt und er landet im StandardStyle.

genau das ist das problem was ich momentan habe ;)

Original von SargentDMeinen Tipp von vorhin hast du aber noch nicht beherzigt.

Also die REQUEST's sind jezz drinne...

Original von SargentD
Und die Linkfarbe kannst du mit a:* in CSS ändern.

weiß ich doch :D

Original von SargentD
PS: SQL Injections sind böhse.

Wenn du mir sagst, was des is, änder ich des.
Bin erst seitn paar wochen an PHP und SQL dran, daher net böse sien, wenn mal dumme Fragen, meinerseits, kommen :)

Original von SargentD
EDIT: Du willst ma dein Gästebuch prüfen ;-)

HEHE dankeschön ;) naja die HP ist eig, n00big meiner meinung nach ^^^bin ja auch nochn n00b :D
 
Original von Abstauber
Original von SargentD
Und was ist, wenn der User dann einen Link klickt? Dann wird die POST Variable nicht mehr mitgeschickt und er landet im StandardStyle.

genau das ist das problem was ich momentan habe ;)

Original von SargentDMeinen Tipp von vorhin hast du aber noch nicht beherzigt.

Also die REQUEST's sind jezz drinne...

Fehlt nur noch die richtige übergabe dieser in allen Links, oder so ähnlich.

Aber lies bitte nochmal meinen Edit von oben und:
http://www.real-insanity.de/index.php?style="><img src=http://goat.cx/pump.jpg>

Du WILLST über Sicherheit nachdenken ;)
 
Na, immerhin bist du bereit zu lernen.
Das Design ist so übrogens mMn voll okay - ich mags etwas minimalistischer.

Zur Sicherheit:
1. Du willst dem Surfer misstrauen, heißt: alles was vom Surfer kommt wird übeprüft.
Sei es ein parameter im Link (section, style) oder ein Eintrag im Gästebuch, der gespeichert wird.
2. Wenn du etwas speicherst, solltest du drauf achten, dass entweder eine saubere, gefilterte Version der Eingabe gespeichert wird, oder eine unschädliche.
Als ich vorhin in dein Gästebuch was schrieben wollte, hatte ich zuerst ' statt " drinn, und dein mysql hat mir Fehler geworfen. Mit ein bisschen geschick koennt ich dein passwort fuer den Admin user rausfinden etc...
dazu gibts in PHP mysql_escape_sctring und mysql_real_escape_string.

Gruß
Zhe
 
Halli hallo,
joa, so wie du das jetzt da gelöst hast geht es zwar aber der style wird beim weiteren surfen nicht übergeben (wie schon angesprochen).

Das kannst du über Cookies lösen und zwar so:

PHP:
<?php

// Inhalt festlegen
$inhalt = "normal"; //hier kommt der geforderte style hin...z. B "normal" oder $_POST['style']

if (!$_COOKIE["cookie_style"]) {
  // Cookie erzeugen
  setcookie("cookie_style", $inhalt, time()+600); //10 minuten-cookie setzen
  $style = $_COOKIE["cookie_style"];
} else {
  $style = $_COOKIE["cookie_style"];
}

?>

habs jetzt nich getestet...dürfte aber richtig angepasst funktionieren
vorausetzung ist natürlich, dass der user cookies aktiviert hat.

CU Lük
 
Das mit Cookies hatte ich mir schon überlegt aber ich bin net wirklich zu einen erfolgsversprechenden Ergebnis gekommen, deswegen habsch die Idee direkt wieder verworfen ^^

Achja im Punkto Sicherheit der HP, könnte mir da vltl einer Helfen so per iq oder so? also mir das vllt erklären und einige Beispiele zeigen, also wie ich die Lücken stopfe?

Edit: Danke deine "Cookie Version" funktioniert perfekt =) vielen Dank =) werde sobald ich @ home bin, undn bissl mehr Zeit habe, mal den ganzen "Style Changer" hier rein posten, ich denke das es bestimmt einige i-wann interessieren könnte ;)
 
Zurück
Oben