Mi fai il copia e incolla COMPLETO dei due file per favore?
Mi fai il copia e incolla COMPLETO dei due file per favore?
Le sessioni meglio di no...perchè vorrei che le preferenze vengano salvate...Originariamente inviato da KaNnA
vuoi usare per forza i cookie o ti van bene pure le sessioni?
index.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK type="text/css" rel="stylesheet" href="css/stile1.css">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile1.css" title="Default">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile2.css" title="Stile2">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile3.css" title="Stile3">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile4.css" title="Stile4">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile5.css" title="Stile5">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile6.css" title="Stile6">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile7.css" title="Stile7">
<?if(isset($_COOKIE["style"])){
$style=$_COOKIE["style"];
print("<link rel=\"stylesheet\" type=\"text/css\" href=\"$style.css\"\n");
}
else
print("<link rel=\"stylesheet\" type=\"text/css\" href=\"default.css\"\n");
?>
</head>
<body>
default |
pink |
classic |
bo |
light |
black
</body>
</html>
e setcookie.php
<?
$stile = $_GET['set'];
$referer = $_SERVER['HTTP_REFERER'];
header("Location: $referer");
setcookie("stile", $stile, time()+43200, '/');
header("Location: $referer");
?>
e gli stili si chiamano da stile1.css (quello di default) a stile7.css e si trovano nella cartella "css"
ah! Inoltre ho ritrovato il sito da dove ho prelevato lo script... url
magari può essere utile
Cominciamo a capireOriginariamente inviato da Alej
index.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK type="text/css" rel="stylesheet" href="css/stile1.css">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile1.css" title="Default">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile2.css" title="Stile2">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile3.css" title="Stile3">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile4.css" title="Stile4">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile5.css" title="Stile5">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile6.css" title="Stile6">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile7.css" title="Stile7">
<?if(isset($_COOKIE["style"])){
$style=$_COOKIE["style"];
print("<link rel=\"stylesheet\" type=\"text/css\" href=\"$style.css\"\n");
}
else
print("<link rel=\"stylesheet\" type=\"text/css\" href=\"default.css\"\n");
?>
</head>
<body>
default |
pink |
classic |
bo |
light |
black
</body>
</html>
e setcookie.php
<?
$stile = $_GET['set'];
$referer = $_SERVER['HTTP_REFERER'];
header("Location: $referer");
setcookie("stile", $stile, time()+43200, '/');
header("Location: $referer");
?>
e gli stili si chiamano da stile1.css (quello di default) a stile7.css e si trovano nella cartella "css"
1) sostituisci "<?" con "<?php" ovunque
2) sostituisci $_GET['set'] con $_GET["style"]. Non hai nessuna variabile "set" nei tuoi php
3) Togli il primo header("Location: $referer");
4) sostituisci
setcookie("stile", $stile, time()+43200, '/');
con
setcookie("style", $stile, time()+43200, '/');
Nelle tue pagine la variabile si chiama "style" e non "stile"
5) Non sempre il "referer" è valorizzato. Non affidarti a quel dato, non è affatto affidabile. Le prove falle con header("Location: index.php")
Ho fatto tutto quello che mi hai detto di fare ma ancora niente...come prima
Fai di nuovo il copia e incolla... magari trovo qualche altro errore sintattico
index.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK type="text/css" rel="stylesheet" href="css/stile1.css">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile1.css" title="Default">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile2.css" title="Stile2">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile3.css" title="Stile3">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile4.css" title="Stile4">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile5.css" title="Stile5">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile6.css" title="Stile6">
<LINK type="text/css" rel="alternate stylesheet" href="css/stile7.css" title="Stile7">
<?php if(isset($_COOKIE["style"])){
$style=$_COOKIE["style"];
print("<link rel=\"stylesheet\" type=\"text/css\" href=\"$style.css\"\n");
}
else
print("<link rel=\"stylesheet\" type=\"text/css\" href=\"default.css\"\n");
?>
</head>
<body>
default |
pink |
classic |
bo |
light |
black
</body>
</html>
e setcookies.php
<?php
$stile = $_GET["style"];
$referer = $_SERVER['HTTP_REFERER'];
setcookie("style", $stile, time()+43200, '/');
header("Location: index.php")
?>
La cosa che proprio non riesco a capire è perchè con un'altro sito lo script funzionava (jua.altervista.org, sulla sinistra...)...il bello è che ho fatto copia incolla da quello.
Ah! Grazie mille per l'aiuto, molto gentile!
Correggi quest'altra cosa
Cambia questa parte
In questo modoCodice PHP:<?php if(isset($_COOKIE["style"])){
$style=$_COOKIE["style"];
print("<link rel=\"stylesheet\" type=\"text/css\" href=\"$style.css\"\n");
}
else
print("<link rel=\"stylesheet\" type=\"text/css\" href=\"default.css\"\n");
?>
In pratica ti eri dimentica questo ">" carattere alla fine del tag che rimaneva quindi aperto e non funzionavaCodice PHP:<?php if(isset($_COOKIE["style"])){
$style=$_COOKIE["style"];
print("<link rel=\"stylesheet\" type=\"text/css\" href=\"$style.css\">\n");
}
else
print("<link rel=\"stylesheet\" type=\"text/css\" href=\"default.css\">\n");
?>
Per controllare meglio ti consiglio sempre questa cosa
Usare mozilla firefox: se il risultato ti sembra errato fai (dal menù in alto) visualizza->sorgente
Firefox non solo ti mostra l'html prodotto dal php (cosa che fa anche IE) ma te lo mostra COLORATO (tag in un colore, cose tra apici in un altro e così via). Se lo avessi fatto, il tag "<link " che non avevi chiuso per mancanza di ">" lo avresti visto ROSSO (come è successo a me) e ti saresti subito reso conto dell'errore da solo![]()
Mi chiedevo infatti cosa significasse il colore rosso...
Comunque ancora...non funziona (però non è più rosso!)