Newsgroup: it.comp.www.php
Titolo: I valori delle costanti si perdono.... perchè? e come si risolve?

Ciao a tutti,
ho un piccolo problema.
In sintesi, ho due categorie di pagine che per semplicità le chiamo Pagina A 
(per la prima categoria) e Pagina B (per la seconda categoria).
La Pagina A è quella a cui l'utente può accedere; la Pagina B invece è 
interna al sito e l'utente, tentando l'accesso, viene reindirizzato in un 
altra pagina appartente alla categoria A.
In codice per la Pagina A ho scritto:
      define ("MIOSITO", true);
mentre per la Pagina B:
      if (!defined ("MIOSITO")) {
         header ("location: 
http://www.miosito.it
");
       }
Ora in una Pagina A è presente un iframe che carica una Pagina B. Il 
caricamento anzichè andare a buon fine e mostrare il contenuto corretto, 
fallisce e poichè nella Pagina B è presente un reindizzamento alla Pagina A, 
il risultato finale è che l'iframe della Pagina A, contiene a sua volta la 
Pagina A.
Questo perchè in Pagina B, la costante MIOSITO non risulta definita, 
sebbene, caricando prima la Pagina A, essa sia stata definita correttamente.
A questo punto appare chiaro che questa costante si perde da qualche parte. 
Come posso fare per recuperarla?
Grazie in anticipo a chi mi può rispondere, e buon natale.
Cooper.
-- 
www.blueware.it
www.italchat.it
 

 Ora in una Pagina A è presente un iframe che carica una Pagina B.
questo è html
(se non ho capito male..)
insomma, la seconda pagina devi includerla, non farla caricare nell'iframe 

 Come posso fare per recuperarla?
Non si perde...è ovvio che ti succeda ciò che dici perché tu non usi un 
qualcosa tipo "include" ma la carichi in un iframe, che è in un certo 
senso "una pagina a sé stante".
Qualche giorno fa, per un problema che non centra niente con il tuo, è 
stata prospettata una soluzione che secondo me ti può tornare 
utilissima. Nella pagina A metti un codice del tipo:
<?php
define ("MIOSITO", true);
ob_start();
include "paginaB.php";
$output_paginaB= ob_get_contents();
ob_end_clean();
?>
<iframe><?php echo $output_paginaB; ?></iframe>
e dimmi se va. ;-)
--
rob4you
www.outofmind.eu

 insomma, la seconda pagina devi includerla, non farla caricare nell'iframe
No, allora, nell'iframe viene caricato un banner e pagina B è la pagina che 
gestisce il banner, pagina B al tempo stesso è caricato tramite un iframe.
In pagina A, viene caricato l'iframe e in conseguenza di ciò anche pagina B.
Ora definendo la costante MIOSITO, pagina B dovrebbe rilevare MIOSITO e 
caricare il banner; questo però non avviene, MIOSITO non viene rilevata e 
risulta a false, sebbene in pagina A sia stata definita a true.
La conseguenza di questo errore provoca il caricamento della pagina A dentro 
l'iframe (derivarto dal reindirizzamento tramite header ().
Io voglio fare in modo che MIOSITO in pagina B risulti true se caricata una 
qualsiasi pagina A, e false in caso contrario.
Soluzione? Ovviamente non posso includere in Pagina B una pagina in cui 
definisco la costante MIOSITO, perchè altrimenti la condizione sarebbe 
sempre true.
Cooper.
-- 
www.blueware.it
www.italchat.it
 

 ha scritto nel messaggio 
news:mn.accb7d6c2...@KIEDIMELO.IT...

Il problema è risolto da un lato, ma non dall'altro purtroppo, ma non va 
bene ancora, perchè mi ritrovo dentro l'iframe tutta la pagina, mentre 
questa deve essere caricata tramite url, ovvero l'iframe deve contenere 
negli attributi un src="paginaB.php" per intenderci.
Cooper.
-- 
www.blueware.it
www.italchat.it
 

 Cooper.
Ti rispondo ancora, con lo stesso concetto di prima
stai mischiando il php con l'html, e questo impedisce al tuo problema di 
risolversi
Se lavori in php, puoi giocare con tutte le variabili che vuoi
se lavori in html puro, ti devi scordare le variabili php
se vuoi caricare la pagina b con un'istruzione 100% html (il src 
dell'iframe, per intenderci) scordati che riconosca la variabile php della 
pagina A proprio perchč tu stai tirando fuori solo l'output
Quindi O includi la pagina b PHP dentro la pagina a PHP (e allora ti vede la 
variabile php definita nella pagina a), o trovi un altro modo
per esempio potresti provare con una variabile di sessione, credo che il 
caricamento dentro a un iframe dovrebbe stare nella stessa sessione
prova un po' 

 un src="paginaB.php" per intenderci.
Non mi viene nulla di concreto in testa....ma (azzardo) se usassi una 
sessione?
--
rob4you


Si a questo avevo pensato, ma prima di usarle, cercavo una soluzione più 
semplice ma a quanto pare non ce ne :(
Graize ancora, e buon natale a tutti
Cooper.
-- 
www.blueware.it
www.italchat.it
 

Cooper , in data 21/12/2006 19:45 :

hum hum...e chiamando l'iframe passandogli il valore della variabile?Che
dite è fattibile?
Non so...qualcosa del genere l'avevo affrontato ma non ricordo...provo a
verificare ok?

 
Ho spulciato un po' ma non ho trovato quel che cercavo.
Però una domanda sorge spontanea...sei obbligato a usare gli iframe?
Sennò potresti usare i div al loro posto...così, un'idea buttata lì.
Buon Natale anche a te :)

 <iframe><?php echo $output_paginaB; ?></iframe>
credo che cosi sia meglio:
<iframe src="<?php echo $output_paginaB; ?>"></iframe>
prova e fai sapere. ciao :)
--
Fabrizio yQy