Newsgroup: it.comp.www.php
Titolo: Variabili non riconosciute

Adesso sono alle prese con delle variabili che non vengono
riconosciute...
Nel file theme.php ho trovato alcune variabili. Volevo modificarle ma,
cambiando i colori il risultato non cambiava. Andando a vedere
nell'html mi sono accorto che i colori erano scritti tutti a mano.
Allora volevo sostituire i valori dei colori con la rispettiva
variabile (es: $bgcolor3 al posto di #ffff00).
Nella Function OpenTable funziona tutto. Più in basso invece dopo la
Function themeheader() le varibili sono vuote!! Il php non viene mai
"chiuso" (?>). Nell'html (vedi l'ultimo TD in fondo al listato) mi
viene proprio una cosa tipo
<td bgcolor="" width="100%" align="right"></td>
       ^^^^^^^
<?php
$bgcolor1 = "#ffffff";
$bgcolor2 = "#9cbee6";
$bgcolor3 = "#ffff00";
$bgcolor4 = "#ffffff";
$textcolor1 = "#000000";
$textcolor2 = "#000000";
function OpenTable() {
    global $bgcolor1, $bgcolor2;
    echo "<table width=\"100%\" border=\"0\" cellspacing=\"1\"
cellpadding=\"0\" bgcolor=\"$bgcolor2\"><tr><td>\n";
    echo "<table width=\"100%\" border=\"0\" cellspacing=\"1\"
cellpadding=\"8\" bgcolor=\"$bgcolor1\"><tr><td>\n";
}
...
...
e poi 
...
/************************************************************/
/* Function themeheader()                                   */
/************************************************************/
function themeheader() {
    global $banners;
    echo "<body>"
        ."<br>";
    if ($banners) {
        include("banners.php");
        echo "<br>";
    }
    echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"
width=\"710\" align=\"center\">\n"
...
        ."<table border=0 width=100% cellpadding=0 cellspacing=0>
            <tr><td bgcolor=\"$bgcolor3\" width=\"33%\"
align=\"right\"></td>
            </tr>
          </table>
...
...
-- 
La rovina del mondo sarà l'indifferenza...
...ma chi se ne fregaaa!

Prova a mettere la clausola global con tutte le variabili che usi, in ogni
funzione.
Inoltre, perchè non modifichi le funzioni? Così eviti le variabili globali.
function OpenTable($bgcolor1="#ff0000",$bgcolor2="#ff0000") {
In questo modo, invochi la funzioni con il colore che ti pare.
E in tutte le pagine già fatte, in cui viene invocata senza parametri, usi i
valori di default.
Ciao
Marco

 function OpenTable($bgcolor1="#ff0000",$bgcolor2="#ff0000") {
Ovviamente, puoi anche optare per un array con tutti i valori di colori se
preferisci.
Ciao
Marco

valori di default.
Qui non ho capito bene cosa intendi.. il mio scopo era quello di
dichiarare il contenuto della variabile una volta sola in cima al
codice... una sottospecie di foglio di stile, per capirsi.
Come dici tu mi troverei a dover leggere ogni volta tutti i pezzi di
codice per vedere che colori ho usato... (oppure ho capito male...:-))


 codice per vedere che colori ho usato... (oppure ho capito male...:-))
Innanzitutto potresti usare proprio i fogli di stile.
Ti crei le tue classi di stile ed assegni quelle. Così nel codice non hai
nulla.
Ad esempio:
stile.css:
.title{
    color: red;
}
pagina.php:
echo "<td class='title'>";
Oppure, quello che dicevo io era di NON usare le variabili globali, ma di
passare i colori come parametri delle funzioni.
function OpenTable($bgcolor1="#ff0000",$bgcolor2="#ff0000") {
    echo "<font color='$bgcolor1'>";
}
Il codice dello script non cambia e tu puoi invocare la funzione con il
colore che ti pare.
Ho impostato i parametri di default perchè così puoi invocare la funzione
senza argomenti e l'interprete non ti da errore ma assegna i valori di
default.
Ciao
Marco

default.
Chiaro!!
Ora ho capito tutto... piano piano piano imparo qualcosa... 
Grazie1000
 (cmq a me piacciono i css)


>  (cmq a me piacciono i css)
Anche a me.
Ciao
Marco