Newsgroup: it.comp.www.php
Titolo: eseguire del codice alla pressione di un comando.

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

 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

 tutti gli errori
e cosa è l'error_reporting?
dove lo metto?
grazie
Riccardo

 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_


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

 [cut]

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>

 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

 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

 grazie per la dritta.
prego!
leggi i post del FAQ Team icwp ( e di Setec! ), ci sono molti link utili
_SV_

 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

 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 ....
