Discussione:
eseguire del codice alla pressione di un comando.
(troppo vecchio per rispondere)
Riccardo M.
2004-04-16 07:13:04 UTC
Permalink
Il mio problema è questo:
ho un form nel blocco php che inizia così:

<FORM METHOD=\"post\" ACTION=\"\">
ed alla fine 3 pulsanti.

A questo punto a seconda del pulsante che viene premuto, debbo operare in un
determinato modo e quindi ho scritto questo :
<?
$sub1 = @$_POST['annulla'];
$sub2 = @$_POST['registra'];
$sub3 = @$_POST['esci'];

if ($sub1 == "") {
} ELSE {
// codice
}

if ($sub2 == "") {
} ELSE {
// codice
}

if ($sub3 == "") {
} ELSE {
// codice
}
?>

ora non so cosa scrivere dove c'è // codice in modo da reindirizzare la
pagina ad un altro file php (ad esempio se alla fine volessi aprire il file
pippo.php)

potete aiutarmi?

Inoltre se a questo punto faccio delle query su un database, è possibile
aggiungere dati, o magari ho sbagliato qualcosa nella sintassi?

grazie
Riccardo
Ludovico Grossi
2004-04-16 08:16:39 UTC
Permalink
Post by Riccardo M.
ora non so cosa scrivere dove c'è // codice in modo da reindirizzare la
pagina ad un altro file php (ad esempio se alla fine volessi aprire il file
pippo.php)
include("nomefile.php");
Post by Riccardo M.
Inoltre se a questo punto faccio delle query su un database, è possibile
aggiungere dati, o magari ho sbagliato qualcosa nella sintassi?
Se non funziona hai sbagliato la sintassi. Metti l'error_reporting e goditi
tutti gli errori

Ludovico
Riccardo M.
2004-04-16 08:21:47 UTC
Permalink
Post by Ludovico Grossi
Post by Riccardo M.
ora non so cosa scrivere dove c'è // codice in modo da reindirizzare la
pagina ad un altro file php (ad esempio se alla fine volessi aprire il
file
Post by Riccardo M.
pippo.php)
include("nomefile.php");
ho provato, ma mi riapre la pagina corrente, mi da' una serie di errori ed
alla fine mi fa vedere anche la pagina richiamata.
io però dovrei vedere solo la pagina richiamata.
Post by Ludovico Grossi
Post by Riccardo M.
Inoltre se a questo punto faccio delle query su un database, è possibile
aggiungere dati, o magari ho sbagliato qualcosa nella sintassi?
Se non funziona hai sbagliato la sintassi. Metti l'error_reporting e goditi
tutti gli errori
e cosa è l'error_reporting?
dove lo metto?

grazie
Riccardo
Radar_e_ingegnI
2004-04-16 08:30:02 UTC
Permalink
Post by Riccardo M.
Post by Ludovico Grossi
include("nomefile.php");
ho provato, ma mi riapre la pagina corrente, mi da' una serie di errori ed
alla fine mi fa vedere anche la pagina richiamata.
io però dovrei vedere solo la pagina richiamata.
sostituisci

<?php
include("nomefile.php");
?>

con

<?php
header("Location: nomefile.php");
exit();
?>

dai un occhiata 'approfondita' qui:
http://it2.php.net/manual/en/ref.http.php


_SV_
Riccardo M.
2004-04-16 08:49:54 UTC
Permalink
[cut]
Post by Radar_e_ingegnI
<?php
header("Location: nomefile.php");
exit();
?>
scusami ma penso di sbagliare in qualcosa.
Ho fatto questa paginetta per prova:
<html>
<head>
</head>
<body>
<FORM METHOD="post" ACTION="">
<INPUT TYPE="submit" NAME="annulla" VALUE="Annulla e Continua"
SIZE="30"</P>
<INPUT TYPE="submit" NAME="registra" VALUE="Registra e Continua"
SIZE="30"</P>
<INPUT TYPE="submit" NAME="esci" VALUE="Uscita" SIZE="40"</P>
</P>
</FORM>
<?
$sub1 = @$_POST['annulla'];
$sub2 = @$_POST['registra'];
$sub3 = @$_POST['esci'];
if ($sub1 == "") {
} ELSE {
echo "PULSANTE 1";
header("Location:chiamate_selcli_add.php");
exit();
}
if ($sub2 == "") {
} ELSE {
echo "PULSANTE 2";
}
if ($sub3 == "") {
} ELSE {
echo "PULSANTE 3";
}
?>

</body>
</html>

all'apertura vedo i 3 pulsanti, se faccio click sul 2° o sul 3°, visualizza
PULSANTE 2 o PULSANTE 3, ma se faccio click sul primo mi visualizza questo:
PULSANTE 1
Warning: Cannot modify header information - headers already sent by (output
started at c:\inetpub\wwwroot\sviluppo\1.php:11) in
c:\inetpub\wwwroot\sviluppo\1.php on line 19

sulla linea 19 c'è header("Location:chiamate_selcli_add.php");

in cosa sbaglio?

grazie
Riccardo
Radar_e_ingegnI
2004-04-16 09:05:08 UTC
Permalink
Post by Riccardo M.
[cut]
Post by Radar_e_ingegnI
<?php
header("Location: nomefile.php");
exit();
?>
scusami ma penso di sbagliare in qualcosa.
<html>
<head>
</head>
<body>
<FORM METHOD="post" ACTION="">
<INPUT TYPE="submit" NAME="annulla" VALUE="Annulla e Continua"
SIZE="30"</P>
<INPUT TYPE="submit" NAME="registra" VALUE="Registra e Continua"
SIZE="30"</P>
<INPUT TYPE="submit" NAME="esci" VALUE="Uscita" SIZE="40"</P>
</P>
</FORM>
<?
if ($sub1 == "") {
} ELSE {
echo "PULSANTE 1";
header("Location:chiamate_selcli_add.php");
exit();
}
if ($sub2 == "") {
} ELSE {
echo "PULSANTE 2";
}
if ($sub3 == "") {
} ELSE {
echo "PULSANTE 3";
}
?>
</body>
</html>
all'apertura vedo i 3 pulsanti, se faccio click sul 2° o sul 3°, visualizza
PULSANTE 1
Warning: Cannot modify header information - headers already sent by (output
started at c:\inetpub\wwwroot\sviluppo\1.php:11) in
c:\inetpub\wwwroot\sviluppo\1.php on line 19
sulla linea 19 c'è header("Location:chiamate_selcli_add.php");
allora...

hai iniziato a leggere la pagina che ti ho indicato?
Sarebbe opportuno che tu conosca anche come funzione l'HTTP.

Il tuo codice logicamente non è, a mio avviso, correto.

Prima dovresti verificare se la pagina ha ricevuto qualche valore dal form,
se lo ha ricevuto controlli il valore che ha ricevuto,
ed infine se le condizioni non si verificano stampi il form.

Prova a riscriverlo in questa maniere:

<?php

if ( isset($_POST['annulla']) && $_POST['annulla']=="Annulla e Continua" ) {
header("Location: file1.php");
exit();
}

if ( isset($_POST['registra']) && $_POST['registra']=="Registra e Continua" ) {
header("Location: file2.php");
exit();
}

if ( isset($_POST['esci']) && $_POST['esci']=="Uscita" ) {
header("Location: file3.php");
exit();
}

?>
<html>
<head>
</head>

<body>
<FORM METHOD="post" ACTION="">
<INPUT TYPE="submit" NAME="annulla" VALUE="Annulla e Continua"
SIZE="30"</P>
<INPUT TYPE="submit" NAME="registra" VALUE="Registra e Continua"
SIZE="30"</P>
<INPUT TYPE="submit" NAME="esci" VALUE="Uscita" SIZE="40"</P>
</P>
</FORM>
</body>
</html>
Riccardo M.
2004-04-16 09:25:08 UTC
Permalink
Post by Radar_e_ingegnI
allora...
hai iniziato a leggere la pagina che ti ho indicato?
ci proverò anche se in inglese non capisco molto.
:-(

grazie per la dritta.

ciao
Riccardo
Radar_e_ingegnI
2004-04-16 09:30:42 UTC
Permalink
Post by Riccardo M.
Post by Radar_e_ingegnI
allora...
hai iniziato a leggere la pagina che ti ho indicato?
ci proverò anche se in inglese non capisco molto.
:-(
grazie per la dritta.
prego!

leggi i post del FAQ Team icwp ( e di Setec! ), ci sono molti link utili


_SV_
Gianmarco Vanni
2004-04-16 09:24:16 UTC
Permalink
Ciao,
Post by Riccardo M.
in cosa sbaglio?
nel non leggere un bel manuale di html e uno di php.... ci sono errori
nell'html e errori concettuali nella struttura...

dovrebbe funzionare in questa forma

<?
$sub1 = @$_POST['annulla'];
$sub2 = @$_POST['registra'];
$sub3 = @$_POST['esci'];
if ($sub1 == "") {
} ELSE {
// echo "PULSANTE 1";
header("Location:pagina1.php");
exit();
}
if ($sub2 == "") {
} ELSE {
//echo "PULSANTE 2";
header("Location:pagina2.php");
exit();
}
if ($sub3 == "") {
} ELSE {
//echo "PULSANTE 3";
header("Location:pagina3.php");
exit();
}
?>
<html>
<head>
</head>
<body>
<FORM METHOD="post" ACTION="">
<INPUT TYPE="submit" NAME="annulla" VALUE="Annulla e Continua"
SIZE="30">
<INPUT TYPE="submit" NAME="registra" VALUE="Registra e Continua"
SIZE="30">
<INPUT TYPE="submit" NAME="esci" VALUE="Uscita" SIZE="40">
</FORM>
</body>
</html>

Ciao Gianfranzo
--
ICQ#: 21258924 Nick Gianfranzo
Home page http://www.gianfranzo.it
Gianfranzo è contro la guerra
"dopo tutto, gli angeli non sono altro che dei volatili" D. Pennac
Riccardo M.
2004-04-16 09:36:34 UTC
Permalink
Post by Gianmarco Vanni
Post by Riccardo M.
in cosa sbaglio?
nel non leggere un bel manuale di html e uno di php.... ci sono errori
nell'html e errori concettuali nella struttura...
beh! veramente ci sto provando (ho comprato 2 manuali di php ed 1 di html),
ma mentre li leggo cerco di mettere in pratica qualcosa, altrimenti penso
che la lettura da sola serva a poco e si dimentichi presto quello che si
legge se non si fa pratica.
non credi?
Post by Gianmarco Vanni
dovrebbe funzionare in questa forma
[cut]
praticamente inserendo prima il codice php e togliendo le riche con echo
funziona.
Ma cosa cambia nello scrivere prima il codice php e poi quello html? Per il
motivo
che ha scritto "Radar_e_ingegnI"?
Praticamente invertendo i codici, stampavo il form senza aver ricevuto
nessun valore, vero?

grazie .

Riccardo
Gianmarco Vanni
2004-04-16 14:48:41 UTC
Permalink
Ciao,
Post by Riccardo M.
Post by Gianmarco Vanni
Post by Riccardo M.
in cosa sbaglio?
nel non leggere un bel manuale di html e uno di php.... ci sono errori
nell'html e errori concettuali nella struttura...
beh! veramente ci sto provando (ho comprato 2 manuali di php ed 1 di html),
ma mentre li leggo cerco di mettere in pratica qualcosa, altrimenti penso
che la lettura da sola serva a poco e si dimentichi presto quello che si
legge se non si fa pratica.
non credi?
no, se non hai almeno una base teorica, anche molto semplificata dei
meccanismi che vai a gestire ti trovi poi a questo punto....
normalmente in un manuale ben fatto arrivi a fare quello che hai provato
a scrivere dopo aver fatto i classici esercizi di codifica e qualche
rudimento delle dinamiche che intervengono tra server e client.
Per esempio il manuale PHP4 - Guida per lo sviluppatore ED. HOEPLI
Informatica, prima di iniziare qualsiasi discorso sul linguaggio fa una
breve panoramica sul protocollo http, poi spiega cosa è uno script lato
Server dopo di che inizia dalle Variabili, nella quarta di copertina c'è
scritto che è per utenti intermedi-esperti, se ci mettono quegli
argomenti che dovrebbero essere già noti per la tipologia di manuale c'è
un motivo.
Copiando e modificando a caso gli esempi dei manuali senza aver capito i
concetti base non si va molto lontano.
Post by Riccardo M.
praticamente inserendo prima il codice php e togliendo le riche con echo
funziona.
Ma cosa cambia nello scrivere prima il codice php e poi quello html? Per il
motivo
che ha scritto "Radar_e_ingegnI"?
Praticamente invertendo i codici, stampavo il form senza aver ricevuto
nessun valore, vero?
no, non è questo che ti succede.... detto molto terra terra, appena
inizi a produrre output (echo per esempio) gli header http sono inviati,
da qui il messaggio di errore ...Cannot modify header information -
headers already sent by...
Se ti fermi un momento a riflettere e hai capito cosa hai scritto nel
tuo programma noterai che la prima volta che carichi la tua pagina è
impossibile che le tue variabili siano istanziate, ma ....

Ciao Gianfranzo
--
ICQ#: 21258924 Nick Gianfranzo
Home page http://www.gianfranzo.it
Gianfranzo è contro la guerra
"dopo tutto, gli angeli non sono altro che dei volatili" D. Pennac
Loading...