Richiamare un'altra pagina php

eldivino87

Nuovo Utente
14 Gen 2012
5
0
0
Sono 3 giorni che ho iniziato a programmare col php.

Per esercitarmi sto creando un sito in cui un utente, dopo essersi registrato ed essersi loggato, può segnalare un sito inserendo varie informazioni (nome del sito, url, eventuale indirizzo fisico, contatti, ecc).
Quest'ultima operazione la faccio attraverso la compilazione di un form nella pagina "insert.php".
Il problema è questo: dopo aver inserito le info suddette, vorrei richiamare un'altra pagina (upload.php) in cui viene permesso all'utente di uppare una foto per il sito che ha segnalato. Come si fa a richiamare questa pagina?

Ovviamente, dovrei anche passare l'id del sito (contenuto in una variabile "$id_website") in modo da associare la foto che andrò a caricare al sito corretto.

Questa è la parte di "insert.php" in cui verifico la corretta segnalazione delle info url, nome del sito, contatti, ecc.
PHP:
if ($inviasito && $inviacategorie && $inviaurl && $inviacontatti) { 
	echo "Sito segnalato con successo.<br><br><br><br>";

	//qui ci dovrebbe andare la parte di codice che richiama "upload.php" e che passa a questa pagina alcune informazioni (come "$id_website")
																		
} else { //se si sono verificati degli errori
	echo "ERRORE - Sito non segnalato.<br><br>";
}
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Puoi usare le sessioni per memorizzare i dati e php o javascript per cambiare pagina

PHP:
if ($inviasito && $inviacategorie && $inviaurl && $inviacontatti) { 

session_start();
$_SESSION['id_website'] = $id_website;

//se metti questa if in cima alla pagina senza stampare niente prima puoi usare

header('location:updload.php');

//altrimenti javascript

echo "<script type='text/javascript'>";
echo "location.href='updload.php';";
echo "</script>";

                                                                     
} else { //se si sono verificati degli errori
    echo "ERRORE - Sito non segnalato.<br><br>";
}
Ma l'id_website quando lo recuperi?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
potresti fare semplicemente così
PHP:
<?php
if ($inviasito && $inviacategorie && $inviaurl && $inviacontatti) { 
    echo "Sito segnalato con successo.<br><br><br><br>";
	echo "vuoi inserire una foto?<br><br><br><br>";
	echo "<a href=\"upload.php?id=$id_website\">SI</a>&nbsp;&nbsp;<a href=\"pagina_che_preferisci.php\">NO</a>";
    /*
	poi nella pag. upload.php leggi l'id del sito con
	$id_sito=$_GET['id'];
	*/                                                           
} else { //se si sono verificati degli errori
    echo "ERRORE - Sito non segnalato.<br><br>";
} 
?>
oppure, meglio, passare la variabile $id_website in sessione e poi leggere la sessione nella pag. upload.php

PHP:
<?php
if ($inviasito && $inviacategorie && $inviaurl && $inviacontatti) { 
    echo "Sito segnalato con successo.<br><br><br><br>";
	echo "vuoi inserire una foto?<br><br><br><br>";
	$_SESSION['id_sito']=$id_website;
	echo "<a href=\"upload.php\">SI</a>&nbsp;&nbsp;<a href=\"pagina_che_preferisci.php\">NO</a>";
    /*
	poi nella pag. upload.php leggi l'id del sito con
	$id_sito=$_SESSION['id_sito'];
	*/                                                           
} else { //se si sono verificati degli errori
    echo "ERRORE - Sito non segnalato.<br><br>";
} 
?>
ricordati che se usi le sessioni in tutte le pagine in cui le usi (per scriverle o leggerle) la PRIMA istruzione deve essere

PHP:
<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!--eccetera html e/o php-->
 

eldivino87

Nuovo Utente
14 Gen 2012
5
0
0
Ottima soluzione borgo italia, col tuo suggerimento funziona perfettamente (ho usato il metodo che fa uso di $_SESSION).

Avevo pensato anche ad un'altra soluzione, che sembra essere addirittura più semplice:
PHP:
if ($inviasito && $inviacategorie && $inviaurl && $inviacontatti) { 
    echo "Sito segnalato con successo.<br><br><br><br>";

    include 'upload.php';
} else {
    echo "ERRORE - Sito non segnalato.<br><br>";
}
Mi chiedo, a questo punto, se è possibile utilizzare le variabili definite nella pagina "chiamante" nella pagina "chiamata".

In pratica, io ho "insert.php" che:
- definisce al suo interno la variabile $id_website
- include la pagina "upload.php"

E' possibile usare in quest'ultima la variaible $id_website???
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
se hai definito
$_SESSION['id_sito']=$id_website;
la sessione con il suo valore puoi usarla in tutte le pagine che vuoi, ricordando sempre di iniziare con session_start();
questo sino a che non decidi di distruggerla o esci dal sito

dimenticavo
se in una pagina definisci una variabile (es.)
$pinco=358;
e nella stessa pagina fai un include o require nella pag che includi puoi usare
$pinco
l'include non è altro che una "specie" di copy/paste della pagina chiamata dentro la chiamante
 
Ultima modifica: