Newsgroup: it.comp.www.php
Titolo: Call un file PHP da una procedura PHP

Per motivi di manutenibilitą del codice vorrei evitare di riscrivere
pezzi di codice che devono essere riutillizzati.
Ovviamente potrei usare la INCLUDE ma mi chiedevo se non č possibile
trasferire il controllo da un processo PHP ad un nuovo processo.
Supponiamo che sulla base di una (condition) io dedica di voler
passare il controllo ad una pagina PHP diversa dalla presente...
qualcosa come:
...
if (condition) {
	call ("pagexxx.php?par=zz");
	Close_this_process;
} else {
	...
 
}
Insomma fare Server side qualcosa del tipo 
window.top.location="pagexxx.php?par=zz"
fatto con javascript user side...
Grazie per l'attenzione.

 ...
usa le function, credo ti riferisca a quello
sono codici separati dalla struttura principale, che vengono richiamati
quando servono
function stampa ($nome) {
 return $nome;
}
if (condition) echo stampa('pippo')
----
ciao,
~omar


E' una possibilità... molto simile all'uso di INCLUDE.
Quello che amerei fare è richiamare un'altra pagina completa...
Supponi di avere DUE PAGINE PHP, una per inserire un record in un DB
e un'altra per Modifcare lo stesso record...
(l'esempio non è proprio calzante...ma tanto per capirci)
L'utente da una pagina richiama la pagina per modificare un record che
non esiste... allora vorrei rimandarlo automaticamente alla pagina di
creazione del record senza che questa procedura sia inclusa nella
pagina di modifica...

On Mon, 19 May 2003 10:17:16 GMT, "Omar Speranza"
<omar.s...@RIMUOVIargomedia.it> wrote:
Preciso ancora: sia Function che INCLUDE portano comunque il codice in
oggetto nella pagina stessa... Io vorrei richiamare UN'ALTRA pagina...

 oggetto nella pagina stessa... Io vorrei richiamare UN'ALTRA pagina...
vuoi dire
if(condition) {
	header("Location: http://...");
	exit;
} ???
se usi header devi usare il controllo di output buffering.
a questo punto è grossomodo lo stesso di usare include resettando 
l'output buffer prima della chiamata, con la differenza della modalità 
di apertura dello script e passaggio variabili (e la chiamata http 
differente che genera una chiamata in + nel log di apache).
ciao
-- 
punkarruso

se usi header devi usare il controllo di output buffering.
Fantastico! Proprio quello che cercavo. Grazie.
Ancora un paio di cose:
1 - Come azzero l'output buffer ? 
2 - Hai idea del perchè il tutto non funziona se messo sul server di
Lycos ? 
( 
http://utenti.lycos.it/filmcult/mrc27/test.php?var=si
 )
(dovrebbe richiamare test2.php?var2=xxx )
Funziona nel server aruba
( 
http://www.zabot.it/test.php?var=si
 )
Le pagine sono identiche.....

 wrote:
Credo di essere riuscito...
<?php
ob_start();
 echo "Page test<br>";
if ($var=="si") {
//	echo "Var=si<br>";
	ob_end_clean();
	header("Location: test2.php?var2=xxx");
//	echo "Dopo Header<br>";
	exit;
}
echo "Strada normale<br>";
ob_end_flush;
?>
Un po' di ricerche e ...funziona. Ancora Grazie.
Non riesco comunque a farlo funzionare sui server Lycos !!!!
Credo dipenda da controlli che Lycos aggiunge per conto suo ...

 Lycos ? 
http://www.php.net/manual/it/ref.outcontrol.php
-- 
punkarruso

 Credo dipenda da controlli che Lycos aggiunge per conto suo ...
puņ darsi che lycos agisca in safe_mode e non pemetta l'invio di headers.
probabilmente per combattere in modo efficace rimbalzi in siti dal 
contenuto losco.
-- 
punkarruso


http://www.php.net/manual/it/ref.outcontrol.php
Grazie ancora. A volte č difficile trovare.. se non si sa cosa si
cerca :-)
In effetti  poi c'ero riuscito... :-)