Redirect in PHP

  • Creatore Discussione Creatore Discussione Fabriz
  • Data di inizio Data di inizio

Fabriz

Nuovo Utente
2 Mar 2015
1
0
0
Ciao a tutti
Sono un nuovo arrivato nel forum e sono un nuovo utilizzatore di PHP dopo che il vecchio sito in linguaggio ASP è stato interamente rifatto in PHP.
Ho una necessità alla quale non ho trovato risposta.
Da un mio form devo richiamare una (o un'altra) pagina .PHP ... non so come fare. le indicazioni che ho trovato sbirciando qua e là mi indicano il comando (header: "Location:URL"), ma mi sembra di capire che tale comando va inserito all'inizio dello script. Se invece io devo richiamare una pagina nel mezzo del mio script? ... ad esempio all'interno di uno switch? ... mi sembra impossibile che PHP non preveda la possibilità di reindirizzamento ad una pagina ...
Grazie per l'aiuto ... mi auguro una proficua collaborazione!
 
Come hai citato tu questo e il comando per un reindirizzamento di pagina:
PHP:
$url = 'www.google.it';

header('Location: '.$url );

/* Dopo l header assicurati di usare sempre exit o die */

exit;

Altrimenti se vuoi che la pagina si reindirizza dopo un tot di tempo:

PHP:
$url = 'www.google.it';

header( 'refresh: 5s; src='.$url );

exit;
 
Se vuoi usare uno switch:
PHP:
$mypage = 'home';

switch( $mypage ){

case 'home':

echo 'Home';

break;

default:

header( 'Location: home.php' );

exit;

break;

}
 
ma mi sembra di capire che tale comando va inserito all'inizio dello script
Non è così. Il comando lo puoi inserire dove più ti va comodo nella pagina.
Inserire anche il comando exit fa in modo che non carichi il resto della pagina se non c'è la necessità (potrebbe succedere in alcuni casi di connessione lenta in cui ritarda a fare il re-indirizzamento).
 
ciao
piccola precisazione, il comando header deve essere prima di qualsiasi output html (anche uno spazio).
per metterlo dove si vuole ande dopo l'output html si deve reditige il flisso
es
PHP:
<?php
echo " "; //out html
header ("location:pinco.php");//errore
?>

PHP:
<?php
header ("location:pinco.php");//giusto
echo " "; //ma questo non lo vedi perchè prima fa il redirect
?>

PHP:
<?php
ob_start();//modifica flusso
echo " "; //out html, lo vedi e poi fa il redirect
header ("location:pinco.php");//giusto
ob_end_flush();
?>
 
Esatto, mi era sfuggito questo particolare che non è di poco conto.
 

Discussioni simili