Pagina 1 di 1

[PHP] Come fare per aprire un link

MessaggioInviato: mer giu 01, 2011 8:05 pm
da BlackJack
Ciao a tutti.
la cosa è più complicata di quanto sembra, almeno penso.

Allora, io ho una pagina login.php dove un utente inserisce nome utene e password. Inviando il form la pagina verifica.php controlla nel DB che i dati siano corretti, e in caso positivo mi rimanda a home.php . Quest'ultima pagina è uguale per qualsiasi utente che effettui il login, nessun privilegio particolare per alcuni utenti ed altri no. La pagina è strutturata in frame: home.php è il framset che combina altre tre pagine: sx, centro, e top.
Cerco di spiegarmi il meglio possibile:
ho bisogno che, dopo aver verificato i dati di accesso, uno script php apra nel frame centrale un indirizzo, diverso a seconda dell'utente che ha avuto accesso.
Durante il login il nome utente corrisponde alla variabile php $id . Pensavo quindi di realizzare un ciclo IF (devo gestire solo 2/3 utenti) tipo:

Codice: Seleziona tutto
if ($id == 'BlackJack')
{
          apri url http://url.com/index.php?nome=Alarico
}

elseif ($id == 'peppino')
{
          apri url http://url.com/index.php?nome=gianni
}


Credo che ciò si essenzialmente corretto... Mi serve quindi avere una conferma, sapere che comando devo dare per dire di aprire quell'url in quel determinato frame (nome nel frameset "centrale") e sapere in che pagina posizionare quello script.


Vi ringrazio in anticipo, a presto!!

Re: [PHP] Come fare per aprire un link

MessaggioInviato: mer giu 01, 2011 8:11 pm
da Andy94
La funzione che ti permette il redirect, in PHP, è header(). Si usa così.
Codice: Seleziona tutto
header("Location: http://www.google.it");

Attento che funziona solo se prima non esegui funzioni che spediscano altri header (creazione di cookie, ad esempio): ti dà un errore.

Per quanto riguarda la pagina in cui inserirlo non ho capito cosa intendi. Deve essere ovviamente una pagina che viene eseguita all'interno dello stesso frame che cambierà pagina in seguito al redirect imposto da header().

[ciao]

Re: [PHP] Come fare per aprire un link

MessaggioInviato: mer giu 01, 2011 8:43 pm
da BlackJack
Intanto grazie mille.. avevo pensato a quella funzione, ma non ne ero certo. Il ciclo IF come lo avevo impostato come ti sembra? dovrebbe funzionare?

Questo è lo schema delle pagine
login.php->verifica.php->home.php

La pagina home.php è il frameset che contiene la configurazione, simile a questa:

Codice: Seleziona tutto
    TOP
-------------
   |
SX | CENTRALE
   |


L'header verrà aperto in CENTRALE. Quello che mi chiedo è dove devo inserire lo script php per fare tutto ciò, nel frameset?

Grazie ancora, ciao!

Re: [PHP] Come fare per aprire un link

MessaggioInviato: mer giu 01, 2011 8:48 pm
da BlackJack
Ho pensato una cosa: la variabile che mi serve, $id, compare solo nella pagina verifica.php
l'IF penso di doverlo mettere nel frame centrale. Devo però capire come fare arrivare a quest'ultimo la variabile $id, penso..

Non so se è chiaro.

Re: [PHP] Come fare per aprire un link

MessaggioInviato: mer giu 01, 2011 11:13 pm
da M@ttia
Non puoi semplicemente, nella pagina che gestisce i frame (home.php), fare eseguire l'IF e stampare il relativo codice HTML del frame centrale con l'indirizzo desiderato?

Del tipo, in pseudocde:

Codice: Seleziona tutto
<html>
<head>...</head>

<body>
...
<FRAME SRC="top.html">
<FRAME SRC="sinistra.html">

<?php
if($id='Pippo')    $Pagina='PaginaPippo.html';
if($id='Pluto')    $Pagina='PaginaPluto.html';
if($id='Paperino') $Pagina='PaginaPaperino.html';
// (ecc. con gli altri)
echo '<FRAME SRC="' . $Pagina . '">
?>
...
</body>
</html>

Re: [PHP] Come fare per aprire un link

MessaggioInviato: sab giu 04, 2011 3:56 pm
da Boo
header() non supporta il target HTML, quindi non puoi aprire una pagina in un frame/iframe con questa funzione. Dovrai optare per JavaScript o meglio ancora abbandonare i frame che hanno il solo compito di evitare di dover ripetere il codice html, la qual cosa è conseguibile anche tramite semplici include in PHP.

Inoltre PHP supporta le stringhe come case di uno switch, quindi puoi semplificare il tuo condice in:
Codice: Seleziona tutto
switch($id)
{
   case 'BlackJack': header('Location: http://url.com/index.php?nome=Alarico'); break;
   case 'peppino': header('Location: http://url.com/index.php?nome=gianni'); break;
}


O meglio puoi validare $id in case insensitive con strtolower:
Codice: Seleziona tutto
switch(strtolower($id))
{
...
}

Re: [PHP] Come fare per aprire un link

MessaggioInviato: mer giu 08, 2011 2:27 pm
da BlackJack
Ringrazio tutti per la risposta!
Alla fine ho usato un misto di codice tra quello che ha scritto Boo e quello che mi ha suggerito Andy.