Problema nell'integrare php in html

di il
3 risposte

Problema nell'integrare php in html

Ciao a tutti!
Sto cercando di imparare qualcosina rispetto ad html e php. Non sapevo se mettere la discussione qui o sotto php comunque spero che vada bene.
In realtà conosco abbastanza bene php, un po' meno html. Ma il vero problema è che non riesco ad integrarli insieme in un unico file. Ad esempio ho creato un file con estensione .html con questo codice:

<html>
	<body>
		<h1>La mia pagina di prova html con php</h1>
		<?php	
			$ciao = "ciao"
		?>
		<form action="" method="get">
  			<input type="text" name="val1">
  			<?=echo " + "?>
  			<input type="text" name="val2">
  			<input type="submit" value="=">
		</form>
		<?=$ciao?><br/>
	</body>
</html>
In effetti la cosa è un po' confusa, ma quello che mi aspettavo da questo codice era il titolo, due form di input con un " + " in mezzo, un pulsante con testo "=" e l'echo della variabile $ciao. Quello che invece succede è che il codice php non viene minimamente preso in considerazione dal browser. Qualcuno sa spiegarmi il perché?
Comunque il mio reale intento sarebbe stato quello di raccogliere dai form di input le stringhe, convertirli in interi e fare l'echo della somma. Come si può fare?
Scusate la domanda stupida...

3 Risposte

  • Re: Problema nell'integrare php in html

    Ihih ovvio perché non puoi far eseguire così php nel html, in primis se vuoi unire html e php devi avere la pagina .php e non .html e poi dovresti far eseguire la tua pagina su un server MAMP o WAMP per windows
  • Re: Problema nell'integrare php in html

    Grazie per la risposta.
    In effetti avevo già installato mamp sul mio mac e cambiando l'estensione in .php ed eseguendo il file da localhost ha iniziato a funzionare.
    Ora però avrei qualche domanda di chiarimento. Ho scritto questo per continuare a fare la mia calcolatrice:
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    	<HEAD>
    	<TITLE>Calcolatrice PHP</TITLE>
    	</HEAD>
     
    	<BODY>
    		
    		<h1>Calcolatrice PHP</h1>
    		
    		<?php 
    			session_start();
    		
    			if(!isset($valUno)) echo "0";
    			else echo $valUno;
    			$pulsanti = Array(
    							"cancella",
    							"piuomeno",
    							"percentuale",
    							"diviso",
    							"sette",
    							"otto",
    							"nove",
    							"per",
    							"quattro",
    							"cinque",
    							"sei",
    							"meno",
    							"uno",
    							"due",
    							"tre",
    							"piu",
    							"zero",
    							"virgola",
    							"uguale",
    						);
    			for($i=0;$i<count($pulsanti);$i++){
    				if($_GET[$pulsanti[$i]] != ""){
    					$oper = cosaFare($_GET[$pulsanti[$i]]);
    					if($oper === "operazione"){
    					}
    					else if($oper === "numero"){
    						$valUno = appendString($_GET[$pulsanti[$i]],$_SESSION["valUno"]);
    						echo $valUno;
    						$_SESSION["valUno"] = $valUno;
    					}
    				}
    			}
    			if($_GET["val1"] != "" && $_GET["val2"] != "")
    				echo addiziona($_GET["val1"],$_GET["val2"]);
    			else
    		?>
    			
    			<output form="tastiera" name="risultato" for="cinque"></br>
    			
    			<form action="calcolatrice.php" method="get" id="tastiera">
      				<input type="submit" name="<?php echo $pulsanti[0]; ?>" value="AC" style="width:30px">
      				<input type="submit" name="<?php echo $pulsanti[1]; ?>" value="+/-" style="width:30px">
      				<input type="submit" name="<?php echo $pulsanti[2]; ?>" value="%" style="width:30px">
      				<input type="submit" name="<?php echo $pulsanti[3]; ?>" value="÷" style="width:30px"></br>
      				<input type="submit" name="<?php echo $pulsanti[4]; ?>" value="7" style="width:30px">
      				<input type="submit" name="<?php echo $pulsanti[5]; ?>" value="8" style="width:30px">
      				<input type="submit" name="<?php echo $pulsanti[6]; ?>" value="9" style="width:30px">
      				<input type="submit" name="<?php echo $pulsanti[7]; ?>" value="x" style="width:30px"></br>
      				<input type="submit" name="<?php echo $pulsanti[8]; ?>" value="4" style="width:30px">
      				<input type="submit" name="<?php echo $pulsanti[9]; ?>" value="5" style="width:30px">
      				<input type="submit" name="<?php echo $pulsanti[10]; ?>" value="6" style="width:30px">
      				<input type="submit" name="<?php echo $pulsanti[11]; ?>" value="-" style="width:30px"></br>
      				<input type="submit" name="<?php echo $pulsanti[12]; ?>" value="1" style="width:30px">
      				<input type="submit" name="<?php echo $pulsanti[13]; ?>" value="2" style="width:30px">
      				<input type="submit" name="<?php echo $pulsanti[14]; ?>" value="3" style="width:30px">
      				<input type="submit" name="<?php echo $pulsanti[15]; ?>" value="+" style="width:30px"></br>
      				<input type="submit" name="<?php echo $pulsanti[16]; ?>" value="0" style="width:64px">
      				<input type="submit" name="<?php echo $pulsanti[17]; ?>" value="," style="width:30px">
      				<input type="submit" name="<?php echo $pulsanti[18]; ?>" value="=" style="width:30px"></br>
    			</form>
    		
    		<?php
    			
    			function aggiorna(){
    				echo "aggiornato";
    				flush();
    			}
    		
    			function addiziona($var1,$var2){
    				$tot = $var1 + $var2;
    				return $var1." + ".$var2." = ".$tot."<br>";
    			}
    			
    			function cosaFare($string){
    				if($string == "AC" || $string == "+/-" || $string == "%" || $string == "÷" || $string == "x" || $string == "-" || $string == "+" || $string == "=")
    					return "operazione";
    				else return "numero";
    			}
    			
    			function appendString($string,$val){
    				return $val.$string;
    			}
    		?>
    		
    	</BODY>
    	
    </HTML>
    


    Ho qualche dubbio a riguardo...
    Il metodo get va bene per questo intento? Ogni volta che clicco un bottone la pagina viene ricaricata perciò mi chiedevo se ci fosse stato un modo per fare la stessa cosa senza ricaricare ogni volta la pagina. Ho pensato di usare un output html come se fosse una textview e aggiornare solo quella quando serve. Invece di usare input type submit volevo usare un button ma non riesco a fargli richiamare la funzione php scrivendola in onclick. In pratica il codice seguente:
    
    <output form="tastiera" name="risultato" for="cinque"></br><form action="calcolatrice.php" method="get" id="tastiera">
        <input type="button" onclick="aggiorna();" name="zero" value="0" style="width:64px"> //l'istruzione onclick non funziona
    </form>
    <?php
        function aggiorna(){
    	echo "aggiornato";
    	flush();
            //cosa dovrei mettere qua per aggiornare l'output?
        }
    ?>
    
    non funziona! Qualche consiglio?
  • Re: Problema nell'integrare php in html

    Ciao, il problema di fondo è che PHP è eseguito sul server, quindi se vuoi eseguire un qualsiasi codice PHP è necessario inviare una richiesta al server, che la elabora e risponde restituendo una nuova pagina: è questo il motivo per cui la pagina viene ricaricata.
    Se vuoi fare tutto senza dover ricaricare la pagina allora devi eseguire il codice lato client (ad esempio tramite JavaScript).

    Considera, comunque, che sul codice che si esegue lato client non hai tanto controllo, in quanto un utente può facilmente modificare il codice javascript per eseguire di fatto quello che gli pare. Quindi javascript è sicuramente uno strumento potente, ma attenzione perché può essere anche pericoloso
Devi accedere o registrarti per scrivere nel forum
3 risposte