|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
[PHP] come realizzare ciò?
Ciao,
qualcuno mi aiuta a chiarirmi un attimo le idee su questa cosa: devo realizzare ciò: Ci sono 3 pagine web: A, B e C La pagina A contiene un form, l'utente compila tale form e quando invia i dati essi vengono inviati ad una pagina B ma all'utente deve essere visualizzata la pagina C e non deve visualzzare la pagina B. cosami invento? (Conosco pochissimo php) Grazie Andrea |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
Quote:
header('Location: C.php')
__________________
![]() |
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jun 2008
Città: Torino
Messaggi: 118
|
ma header() e' diversa da include()? cioe', fa la stessa cosa?
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Jun 2008
Città: Torino
Messaggi: 118
|
uh
![]() |
![]() |
![]() |
![]() |
#6 |
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
ragazzi, allora io ho realizzato queste 3 pagine:
paginaA che contiene il form ed invia i dati con POST a pagina B: Codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Documento senza titolo</title> </head> <body> <form name="datiUtenti"action="paginaB.php" method="POST"> <label>Dato 1: <input type="text" name="dato1" value="tuo testo"></label><br /><br /> <label>Dato 2: <input type="text" name="dato2" value="tuo testo"></label><br /><br /> <label>Dato 3: <input type="text" name="dato3" value="tuo testo"></label><br /><br /> <button type="submit">Invia i dati</button> </form> </body> </html> A questo punto all'utente non dovrebbe essere visualizzata PaginaB ma PaginaC...ho inserito l'header come mi era stato detto ma non funziona Codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Documento senza titolo</title> </head> <body> <?php header('Location: paginaC.html'); echo "Il dato 1 vale: $_POST[dato1] <br>"; echo "Il dato 1 vale: $_POST[dato2] <br>"; echo "Il dato 1 vale: $_POST[dato3] <br>"; ?> </body> </html> Codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Documento senza titolo</title> </head> <body> <H1>PAGINA C DOVE L'UTENTE VIENE RIMANDATO DOPO AVER COMPILATO IL FORM NELLA PAGINA A ED AVER INVIATO I DATI ALLA PAGINA DI ELABORAZIONE B</H1> </body> </html> Warning: Cannot modify header information - headers already sent by (output started at c:\programmi\easyphp1-8\www\formtest\paginab.php:9) in c:\programmi\easyphp1-8\www\formtest\paginab.php on line 10 Il dato 1 vale: tuo testo Il dato 1 vale: tuo testo Il dato 1 vale: tuo testo Cosa devo fare? come risolvo? please è urgente Grazie Andrea |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Il motivo è che hai già fatto un output, header lo puoi usare solo prima di qualsiasi output (tutto l'html che hai stampato prima del tag di php).
La struttura della pagina deve essere: <?php /*elaborazione dati del form*/ ... ... ... header('Location: paginaC.html'); ?> |
![]() |
![]() |
![]() |
#8 | |
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
Quote:
mmm ho fatto come dici te,ma mi dà il seguente warning e non và su paginaC.html Warning: Cannot modify header information - headers already sent by (output started at c:\programmi\easyphp1-8\www\formtest\paginab.php:9) in c:\programmi\easyphp1-8\www\formtest\paginab.php on line 12 codice: Codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Documento senza titolo</title> </head> <body> <?php /* Elabrazione dei dati del form */ header('Location: paginaC.html'); ?> </body> </html> Grazie Andrea |
|
![]() |
![]() |
![]() |
#9 |
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
doh sul mio server web su Aruba funziona, in locale con easyphp no...strano...why?
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non devi mettere questo:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Documento senza titolo</title> </head> <body> Quello è un output e non devi fare un output prima di header !!! |
![]() |
![]() |
![]() |
#11 | |
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
Quote:
|
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
![]() |
![]() |
![]() |
#13 |
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
ok c'è un problema...la persona che mi ha chiesto il favore di farlgi questo accrocchio mi ha appena detto che l'equivalente pratico di paginaB non può toccarla...quindi il sistema dell'header che rimanda a PaginaB non è usabile...
c'è una qualsiasi soluzione (anche javascript) che sia proprio PaginaA a mandare a PaginaC dopo aver inviato i dati a PaginaB? c'è soluzione o non se ne esce? Grazie Andrea |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non che mi risulti...
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 558
|
puoi fare diverse cose "sporche" se proprio non puoi mettere header prima di qualsiasi output come diceva cionci:
1) Puoi dare un <body onload="window.location='paginaC.html'"> nella pagina B, in questo modo non appena avrà finito di fare la roba php e avrà caricato B ti rimanderà direttamente a C 2) Puoi mettere un <meta http-equiv="Refresh" content="5; url=paginaC.html">, che ti manderà a C dopo 5 secondi (puoi cambiare il 5 con qualsiasi numero tu voglia). Questo è MOLTO deprecato e non dovrebbe essere utilizzato se proprio non è necessario |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Però la 2 non ti garantisce il completo caricamento della pagina. In ogni caso ha detto che non può modificare la pagina B, quindi è un problema
![]() |
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Nov 2008
Messaggi: 411
|
Come non detto.
|
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 558
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Sep 2002
Città: localhost
Messaggi: 1115
|
Quote:
__________________
« Indovina la foto e vinci premi! GeoGuess.com «« [
![]() « MacBook Pro i7 2.2 GhZ 6750M + SSD EVO 250GB - Samsung S7 « |
|
![]() |
![]() |
![]() |
#20 |
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:18.