Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

[PHP] Come fare per aprire un link

Cerchi consigli per migliorare il tuo sito? Vuoi aprire un sito in poco tempo?
Discuti con altri webmaster, chiedi chiarimenti ed opinioni in tutta libertà.
Lo spam verrà cancellato.

[PHP] Come fare per aprire un link

Messaggioda BlackJack » mer giu 01, 2011 8:05 pm

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!!
Un giorno ho messo un disco di Jimi Hendrix e mio figlio ha chiesto: ‘Papà, chi è?’. Io ho risposto, ‘Figlio mio, questo è Dio’. Robert Plant, Led Zeppelin
Avatar utente
BlackJack
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1811
Iscritto il: gio mag 06, 2010 7:47 pm
Località: Prov. Vercelli

Re: [PHP] Come fare per aprire un link

Messaggioda Andy94 » mer giu 01, 2011 8:11 pm

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]
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: [PHP] Come fare per aprire un link

Messaggioda BlackJack » mer giu 01, 2011 8:43 pm

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!
Un giorno ho messo un disco di Jimi Hendrix e mio figlio ha chiesto: ‘Papà, chi è?’. Io ho risposto, ‘Figlio mio, questo è Dio’. Robert Plant, Led Zeppelin
Avatar utente
BlackJack
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1811
Iscritto il: gio mag 06, 2010 7:47 pm
Località: Prov. Vercelli


Re: [PHP] Come fare per aprire un link

Messaggioda BlackJack » mer giu 01, 2011 8:48 pm

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.
Un giorno ho messo un disco di Jimi Hendrix e mio figlio ha chiesto: ‘Papà, chi è?’. Io ho risposto, ‘Figlio mio, questo è Dio’. Robert Plant, Led Zeppelin
Avatar utente
BlackJack
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1811
Iscritto il: gio mag 06, 2010 7:47 pm
Località: Prov. Vercelli

Re: [PHP] Come fare per aprire un link

Messaggioda M@ttia » mer giu 01, 2011 11:13 pm

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>
</IE><FIREFOX>
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero

Re: [PHP] Come fare per aprire un link

Messaggioda Boo » sab giu 04, 2011 3:56 pm

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))
{
...
}
Avatar utente
Boo
Silver Member
Silver Member
 
Messaggi: 1276
Iscritto il: sab dic 04, 2004 3:41 pm

Re: [PHP] Come fare per aprire un link

Messaggioda BlackJack » mer giu 08, 2011 2:27 pm

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.
Un giorno ho messo un disco di Jimi Hendrix e mio figlio ha chiesto: ‘Papà, chi è?’. Io ho risposto, ‘Figlio mio, questo è Dio’. Robert Plant, Led Zeppelin
Avatar utente
BlackJack
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1811
Iscritto il: gio mag 06, 2010 7:47 pm
Località: Prov. Vercelli


Torna a Sviluppo Web

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising