PHP: come aprire un link in una nuova finestra?

Se avete dubbi o domande sulla programmazione in generale, fatele qui
Rispondi
monotiz
Arciere
Messaggi: 301
Iscritto il: 18 settembre 2007, 14:41
Località: Monsummano T. (PT)
Contatta:

Messaggio da monotiz » 6 aprile 2008, 15:10

Salve,
sto sviluppando del codice php. Vorrei che in corrispondenza di una certa condizione, venisse aperto in una nuova finestra un centro indirizzo web.

Non devo cliccare su niente, l'apertura viene fatta in automatico. Esiste questa funzione oppure devo ricorrere al javascript (ed in tal caso come posso fare?)?

Grazie.

NICFury
Arciere Provetto
Messaggi: 660
Iscritto il: 30 agosto 2007, 9:11
Località: Milano
Contatta:

Messaggio da NICFury » 6 aprile 2008, 17:08

il php è un linguaggio server side, viene interpretato dal server e produce codice html, non può quindi effettuare operazioni sul browser del client che effettua la richiesta.

Devi usare javascript.
Linux Registered User: #431529 - http://counter.li.org/

Computer: cretino ad alta velocità in dotazione, spesso, a cretini molto lenti.

orion91
Arciere Provetto
Messaggi: 586
Iscritto il: 11 settembre 2007, 0:11
Località: Napoli
Contatta:

Messaggio da orion91 » 6 aprile 2008, 17:39

Quoto in pieno NICFury sulla questione della programmazione lato server etc, per gestire eventi sul browser è più conveniente usare javascript, anche se poi dipende da quella che tu chiami "condizione", insomma se è possibile controllare questa condizione anche da php, variabile d'ambiente ad esempio, si può fare anche così senza ricorrere per forza a javascript.
Tieni anche conto che se il browser ha il plug-in javascript disabilitato il tutto non funzionerebbe!

Facci sapere qual'è, sempre che ti vada di dirlo, questa condizione e vediamo se è fattibile ;)
My Personal WebLog: orion91 official blog!
My Linux Counter Number: #392961

NICFury
Arciere Provetto
Messaggi: 660
Iscritto il: 30 agosto 2007, 9:11
Località: Milano
Contatta:

Messaggio da NICFury » 6 aprile 2008, 18:20

orion91 ha scritto:insomma se è possibile controllare questa condizione anche da php, variabile d'ambiente ad esempio, si può fare anche così senza ricorrere per forza a javascript.
Come si fa senza javascript? coma faccio lato server a dire al flient di aprire una nuova finestra? Forse è ignoranza mia ma non vedo come si possa fare.
Linux Registered User: #431529 - http://counter.li.org/

Computer: cretino ad alta velocità in dotazione, spesso, a cretini molto lenti.

monotiz
Arciere
Messaggi: 301
Iscritto il: 18 settembre 2007, 14:41
Località: Monsummano T. (PT)
Contatta:

Messaggio da monotiz » 6 aprile 2008, 18:48

orion91 ha scritto:Quoto in pieno NICFury sulla questione della programmazione lato server etc, per gestire eventi sul browser è più conveniente usare javascript, anche se poi dipende da quella che tu chiami "condizione", insomma se è possibile controllare questa condizione anche da php, variabile d'ambiente ad esempio, si può fare anche così senza ricorrere per forza a javascript.
Tieni anche conto che se il browser ha il plug-in javascript disabilitato il tutto non funzionerebbe!

Facci sapere qual'è, sempre che ti vada di dirlo, questa condizione e vediamo se è fattibile ;)
Ok, mi spiego meglio.
Ho una pagina php con un form dove vengono richiesti dei dati.
Quando clicco sul pulsante per inviare i dati del form, viene chiamata una pagina php che prende i dati del form e li salva in un database mysql.
Io vorrei che dopo aver salvato i dati, venisse aperto un link il cui indirizzo dipende dai dati inseriti nel form.

Form di Esempio

Codice: Seleziona tutto

<form action="pincopallino.php">
...
<input type="text" name="pippo">...
...
</form>
Pagina pincopallino.php

Codice: Seleziona tutto

<?php
...
prendo i dati del form: $_REQUEST['pippo']
...
query mysql
...
richiamo di una pagina http://paginadiprova/pippo.html dove pippo varia a seconda del campo del form
...
?>
Ultima modifica di monotiz il 6 aprile 2008, 18:48, modificato 1 volta in totale.

NICFury
Arciere Provetto
Messaggi: 660
Iscritto il: 30 agosto 2007, 9:11
Località: Milano
Contatta:

Messaggio da NICFury » 6 aprile 2008, 18:53

Allora, se devi semplicemente reindirizzare il browser ad un determinato link, puoi usarela funzione php "header": http://it2.php.net/manual/en/function.header.php

ce ne sono anche altre che fanno la stessa cosa, questa è la più semplice.

Se però il link lo devi aprire in un altra finestra/tab usi un comando javascript che apre appunto un'altra pagina e al comando passi l'indirizzo voluto. Non mi ricordo il comando, ma sono sicuro che una googlata lo trovi in un secondo.
Linux Registered User: #431529 - http://counter.li.org/

Computer: cretino ad alta velocità in dotazione, spesso, a cretini molto lenti.

orion91
Arciere Provetto
Messaggi: 586
Iscritto il: 11 settembre 2007, 0:11
Località: Napoli
Contatta:

Messaggio da orion91 » 6 aprile 2008, 19:03

Secondo me è sufficiente che al form lui passi il parametro target con _blank. In questo modo nella nuova pagina che viene aperta, pincopallino.php, lui prima fa le operazioni sul database e poi usa la funzione header, in questo modo ha anche i parametri sulla pagina se gli servono per la redirezione!

Per il discorso che dicevi prima NIC io pensavo che tu facessi riferimento al caso generale e non a lo specifico caso di aprire una nuova pagina, solo per questo avevo detto che si poteva fare anche con php, anche se ho poi chiarito che dipendeva dalla "condizione". Insomma sono stato poco preciso io, non te la prendere ok ;)
My Personal WebLog: orion91 official blog!
My Linux Counter Number: #392961

NICFury
Arciere Provetto
Messaggi: 660
Iscritto il: 30 agosto 2007, 9:11
Località: Milano
Contatta:

Messaggio da NICFury » 6 aprile 2008, 19:10

orion91 ha scritto:non te la prendere
Figurati :)
Linux Registered User: #431529 - http://counter.li.org/

Computer: cretino ad alta velocità in dotazione, spesso, a cretini molto lenti.

monotiz
Arciere
Messaggi: 301
Iscritto il: 18 settembre 2007, 14:41
Località: Monsummano T. (PT)
Contatta:

Messaggio da monotiz » 6 aprile 2008, 19:47

orion91 ha scritto:Secondo me è sufficiente che al form lui passi il parametro target con _blank. In questo modo nella nuova pagina che viene aperta, pincopallino.php, lui prima fa le operazioni sul database e poi usa la funzione header, in questo modo ha anche i parametri sulla pagina se gli servono per la redirezione!
Avevo già provato, però poi la pagina con il form non si aggiorna e rimane bloccata sul forum... Adesso vedo un po' di googolare in cerca di javascript...

orion91
Arciere Provetto
Messaggi: 586
Iscritto il: 11 settembre 2007, 0:11
Località: Napoli
Contatta:

Messaggio da orion91 » 6 aprile 2008, 20:17

Si giusto, hai ragione..
Allora come diceva NICFury buttati su javascript e risolvi il problema, credo che con php sia difficile fare quello che vuoi.. a meno che non esista qualche funzione simile ad "header" che però permetta di specificare il target..

Solo google, oppure php.net, può rispondere a questa domanda ;)
My Personal WebLog: orion91 official blog!
My Linux Counter Number: #392961

Rispondi