Newsgroup: it.comp.www.php
Titolo: Programma che non va :(

Questo programma dovrebbe calcolare (+, -, *, /) tramite un modulo di
calcolo e poi passare al calcolo.php per il risultato! però non
funziona.
Questo il modulo di calcolo in formato HTML
<HTML>
<HEAD>
<TITLE>Modulo di calcolo</TITLE>
</HEAD>
<BODY>
<FORM METHOD="post" ACTION="calcolo.php">
<P>Valore n. 1: <INPUT TYPE="text" NAME="val1" SIZE=10</P>
<P>Valore n. 2: <INPUT TYPE="text" NAME="val2" SIZE=10</P>
<P>Calcolo:<br>
<INPUT TYPE="radio" NAME="calc"
  VALUE="addizione"> addizione<br>
<INPUT TYPE="radio" NAME="calc"
  VALUE="sottrazione"> sottrazione<br>
<INPUT TYPE="radio" NAME="calc"
  VALUE="moltiplicazione"> moltiplicazione<br>
<INPUT TYPE="radio" NAME="calc"
  VALUE="divisione"> divisione</P>
<P><INPUT TYPE="submit" NAME="invio" VALUE="Calcola"></P>
</FORM>
</BODY>
</HTML>
---
Questo l'ACTION calcolo.php
<?
if (($val1 == "") || ($val2 == "") || ($calc == ""))
{
 header("Location: 
http://localhost/calcolo_modulo.html
");
 exit;
}
if ($calc == "addizione")
{
 $risultato = $val1 + $val2;
}
else
if ($calc == "sottrazione")
{
 $risultato = $val1 - $val2;
}
else
if ($calc == "moltiplicazione")
{
 $risultato = $val1 * $val2;
}
else
if ($calc == "divisione")
{
 $risultato = $val1 / $val2;
}
?>
<HTML>
<HEAD>
<TITLE>Risultato del calcolo</TITLE>
<P>Il risultato del calcolo e' 
<? echo "$risultato"; ?></P>
</BODY>
</HTML>
In teoria se non metto niente mi dovrebbe ricaricare la pagina e
invece mi dà l'errore seguente:
stessa cosa anche se metto dei valori :(
Notice: Undefined variable: val1 in c:\program
files\apache\apache\htdocs\calcolo.php on line 2
Warning: Cannot modify header information - headers already sent by
(output started at c:\program
files\apache\apache\htdocs\calcolo.php:2) in c:\program
files\apache\apache\htdocs\calcolo.php on line 4
ho copiato pari pari il programma dal testo PHP per esempi della
Jackson Libri ISBN 88-256-1877-8
Grazie.

 funziona.
Non usare register_globals, e leggi il manuale in merito all'utilizzo
di header.
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
-- 
I am what I am, I do what I can
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
uhm il register_globals è già su OFF e per quanto riguarda l'header
sembra tutto ok... l'ho anche tolto dal programma ma peggiora il
risultato. Chissà cosa sbaglio :(
comunque sia Internet Explorer addirittura non mi apre il file PHP ma
lo vuole salvare su disco (altra cosa strana)
mentre Firefox lo apre correttamente ma dà molti errori.
Aiutino?

 lo vuole salvare su disco (altra cosa strana)
Questo significa che il web server non e' configurato correttamente per
eseguire il PHP.
IMHO ti conviene comprarti un buon libro e partire dalle basi.
-- 
I am what I am, I do what I can


 funziona.
ie di script per calcolatrice rudimentale senza uso di header e con
controllo degli errori minimo..
<?php
error_reporting(E_ALL);
echo <<<EOF
<form method='POST' action='{$_SERVER['PHP_SELF']}'>
 + <input type='radio' name='op' value='+' />
 - <input type='radio' name='op' value='-' />
 * <input type='radio' name='op' value='*' />
 / <input type='radio' name='op' value='/' />
 <br />
 V1 <input type='text' name='val1' />
 V2 <input type='text' name='val2' />
 <br />
 <input type='submit' />
</form> 
EOF;
if (isset($_POST['val1']) AND
    isset($_POST['val2']) AND
    isset($_POST['op']))
{
  $_POST['val1'] = intval($_POST['val1']);
  $_POST['val2'] = intval($_POST['val2']);
  switch ($_POST['op'])
  {
    case '+': 
      $result = $_POST['val1'] + $_POST['val2']; 
      break;
    case '-':
      $result = $_POST['val1'] - $_POST['val2']; 
      break;
    case '*': 
      $result = $_POST['val1'] * $_POST['val2']; 
      break;
    case '/':
      if ($_POST['val1'] == 0 AND $_POST['val2'] == 0) 
      { 
        $result = 1; 
        break; 
      }
      if ($_POST['val1'] == 0) 
      { 
        $result = 0; 
        break; 
      }  
      if ($_POST['val2'] == 0) 
      { 
        $result = (($_POST['val1'] > 0) ? '+' : '-') . 'infinito'; 
        break;
      }
      $result = $_POST['val1'] / $_POST['val2'];
      break;
    default: 
      $result = 'Errore operatore non riconosciuto';
  }
  echo "<br /> R=$result<br />";
}
?>
-- 
www.iuz-lab.info

On Thu, 26 May 2005 12:32:55 GMT, "Setec Astronomy"
<setec@_NO_NOSPAM_freemail.it> wrote:
uhm... PHP per esempi lo conosci? ho messo anche l'ISBN! sembrava
buono fino adesso :(
sul libro viene scritto quel programma pari pari a come l'ho scritto
io! ho anche configurato PHP come diceva il libro, vabbé cambierò
libro allora :)
grazie.

?>
bello questo :)

 buono fino adesso :(
Stai usando un libro che lavora su versioni vecchie di php, comprane uno sul 
5 cosi' vai tranquillo.
ciao
-- 
Danilo Bottone
danilo...@gmail.com
www.danilobottone.com
 (.it) 

ciao
infatti se uso il cd allegato funziona tutto :) (usava PHP prime
versioni)
ho trovato già un libro che fa al caso mio comunque! oppure passo
direttamente ad ASP.

 direttamente ad ASP.
Scelta tua comunque io non sceglierei proprio ASP (a sto punto PHP), meglio 
.net o java anche se IMHO piu' complessi.
Ciao
