problemino con $_POST

Andrea Leonardi

Nuovo Utente
18 Mar 2015
4
0
0
ciao a tutti, sono alle prese con il php da poco, e nonostante abbia già fatto esercizi di questo tipo, non riesco a trovare la soluzione a questo. è un semplice bottone da una pagina html e php./* ho provato a mettere un if ma in qualsiasi forma lo metto non mi restituisce niente */
ringrazio in anticipo chi sarà cosi gentile da aiutarmi
HTML:
<html>
<head><h1> CAMPIONATO MONDIALE DI FORMULA 1 <h1>
<body>
<form action="pilotiPHP.php" method="post">
pilota 1<INPUT TYPE="text" NAME="pnt"><br>
pilota 2<INPUT TYPE="text" NAME="pnt2"><br>
pilota 3<INPUT TYPE="text" NAME="pnt3"><br>
pilota 4<INPUT TYPE="text" NAME="pnt4"><br>
pilota 5<INPUT TYPE="text" NAME="pnt5"><br>
pilota 6<INPUT TYPE="text" NAME="pnt6"><br>
pilota 7<INPUT TYPE="text" NAME="pnt7"><br><br><br>
<INPUT TYPE="submit" VALUE="calcola"/>
</form>
</body>
</html>

pagina PHP:

PHP:
<HTML>
<head> Classifica piloti <br> </head>
<BODY>
<?php
 
 $point =  ($_POST['pnt']);
 $point2 = isset($_POST['pnt2']);
 $point3 = isset($_POST['pnt3']);
 $point4 = isset($_POST['pnt4']);
 $point5 = isset($_POST['pnt5']);
 $point6 = isset($_POST['pnt6']);
 $point7 = isset($_POST['pnt7']);
    if (isset($_POST['pnt']))
        {  $point =isset( $_POST['pnt']) ;       }
        else
        {    echo "Campo pnt non compilato!!";   }

echo "Pilota 1 = ".$point."<br/>"; 
echo "Pilota 2 = ".$point2."<br/>";
echo "Pilota 3 = ".$point3."<br/>";
echo "Pilota 4 = ".$point4."<br/>";
echo "Pilota 5 = ".$point5."<br/>";
echo "Pilota 6 = ".$point6."<br/>";
echo "Pilota 7 = ".$point7."<br/>";

   
?>
 
</BODY>
</HTML>
 
Ultima modifica di un moderatore:
ciao
ne metto uno, ma per gli altri è lo stesso
PHP:
<?php
//.....
$point2 = isset($_POST['pnt2']);
//.....
echo "Pilota 2 = ".$point2."<br/>";
//...
?>
isset ti dice se esiste o no quindi ritorna o TRUE o FALSE non il valore che hai immesso, per visualizzare il valore di $_POST['pnt2']
PHP:
<?php
//.....
$point2 = $_POST['pnt2'];
//.....
echo "Pilota 2 = $point2 <br/>";
//...
?>
p.s.
quando scrivi del codice usa gli appositi bccode
 
ciao
ne metto uno, ma per gli altri è lo stesso
PHP:
<?php
//.....
$point2 = isset($_POST['pnt2']);
//.....
echo "Pilota 2 = ".$point2."<br/>";
//...
?>
isset ti dice se esiste o no quindi ritorna o TRUE o FALSE non il valore che hai immesso, per visualizzare il valore di $_POST['pnt2']
PHP:
<?php
//.....
$point2 = $_POST['pnt2'];
//.....
echo "Pilota 2 = $point2 <br/>";
//...
?>
p.s.
quando scrivi del codice usa gli appositi bccode


come risposta mi da questo messaggio di errore:
------------------------------------------------------------------------------------------------------------------
Classifica piloti

Notice: Undefined index: pnt in C:\xampp\htdocs\nuovo sito\pilotiPHP.php on line 6

Notice: Undefined index: pnt2 in C:\xampp\htdocs\nuovo sito\pilotiPHP.php on line 7

Notice: Undefined index: pnt3 in C:\xampp\htdocs\nuovo sito\pilotiPHP.php on line 8

Notice: Undefined index: pnt4 in C:\xampp\htdocs\nuovo sito\pilotiPHP.php on line 9

Notice: Undefined index: pnt5 in C:\xampp\htdocs\nuovo sito\pilotiPHP.php on line 10

Notice: Undefined index: pnt6 in C:\xampp\htdocs\nuovo sito\pilotiPHP.php on line 11

Notice: Undefined index: pnt7 in C:\xampp\htdocs\nuovo sito\pilotiPHP.php on line 12
Pilota 1 =
Pilota 2 =
Pilota 3 =
Pilota 4 =
Pilota 5 =
Pilota 6 =
Pilota 7 =
-----------------------------------------------------------------------------------------------------------------

di solito non uso la funzione isset, l'avevo utilizzata per risolvere l'undefined index
 
ciao
intanto ti ho messo in un'unica pagina sia per fare prima sia perche per una cosa cosi semplice non vale la pena di fare due pagine
PHP:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
</head>
<body>
<?php
if(isset($_POST['calcola'])){
	//verifico con loperatore ternario
	//se il valore è vuoto diventa 0
	//poi forzato ad intero perche se carattere non numerico (es. 'a') ritorna 0
	$point  = (empty($_POST['pnt'])) ? 0 : (int)$_POST['pnt'];
	$point2  = (empty($_POST['pnt2'])) ? 0 : (int)$_POST['pnt2'];
	$point3  = (empty($_POST['pnt3'])) ? 0 : (int)$_POST['pnt3'];
	$point4  = (empty($_POST['pnt4'])) ? 0 : (int)$_POST['pnt4'];
	$point5  = (empty($_POST['pnt5'])) ? 0 : (int)$_POST['pnt5'];
	$point6  = (empty($_POST['pnt6'])) ? 0 : (int)$_POST['pnt6'];
	$point7  = (empty($_POST['pnt7'])) ? 0 : (int)$_POST['pnt7'];
	echo "pilota 1: $point<br>";
	echo "pilota 2: $point2<br>";
	echo "pilota 3: $point3<br>";
	echo "pilota 4: $point4<br>";
	echo "pilota 5: $point5<br>";
	echo "pilota 6: $point6<br>";
	echo "pilota 7: $point7<br>";
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
pilota 1<input type="text" name="pnt"><br>
pilota 2<input type="text" name="pnt2"><br>
pilota 3<input type="text" name="pnt3"><br>
pilota 4<input type="text" name="pnt4"><br>
pilota 5<input type="text" name="pnt5"><br>
pilota 6<input type="text" name="pnt6"><br>
pilota 7<input type="text" name="pnt7"><br><br><br>
<input type="submit"  name="calcola"id="calcola" value="calcola"/><!-- dai sempre il name-->
</form>
</body>
</html>
inpostando nel form i valori 1, 2, 3, vuoto, 0, 6, 8 ottieni l'output
pilota 1: 1
pilota 2: 2
pilota 3: 3
pilota 4: 0
pilota 5: 0
pilota 6: 6
pilota 7: 8
 
ok, dunque bisogna verificare la veridicità del bottone e non dei dati inseriti. ma se posso chiedere, come mai,dato che io sto imparando php da un libro di testo, non indicano tutta questa procedura?
e in che senso dare il name al bottone?
Grazie mille, sei veramente gentilissimo
 
ciao
per il name non sempre serve, se es fai due pagine non servirebbe, ma è sempre buona norma completare i tag con i loro attibuti.
se come ho fatto io fai una pagina unica diventa indispensabile in quanto devi far capire a php cosa hai premuto (potresti avere due pulsanti di submit che fanno due cose diverse)
anzi talvolta conviene non solo verificare se premuto ma anche il suo valore, es nel tuo caso
PHP:
<?php
if(isset($_POST['calcola']) && $_POST['calcola']=="calcola"){
//......
?>
poi perchè nei testi non lo mettano non te lo so dire, forse per semplificare il concetto
 

Discussioni simili