PHP e Formulários Web Definindo Funções e integração HTML-PHP PHP é muito limitado se não usado junto com uma linguagem script estática. Um importante conceito da integração é que se o desenvolvedor criar uma página com os comandos em HTML e salvá-la como se fosse um arquivo em PHP, o servido irá interpretá-la como um arquivo HTML. Definindo Funções e integração HTML-PHP O código em HTML não pode estar entre as tags que abre e fecha um código PHP. Deste modo, para incluir um código HTML dentro de um arquivo PHP, é necessário fechar a tag do PHP. Assim, pode-se alternar entre um script HTML e um script PHP. Para criarmos um código em HTML embutido no PHP deve-se coloca-lo como uma string. <?php echo "<center> Data: "; echo "<select name = 'data'>"; for ($i=1; $i<= 31; $i++) echo "<option value= '$i'> $i de janeiro de 2006 </option>"; echo "</select>"; ?> Utilizando formulários HTML A principal entrada de dados, para um script PHP é o uso de formulário HTML, nele podemos enviar todos os dados inseridos em algum tipo de entrada, seja radio, caixa de textos, caixas de senhas, caixas de seleção. Utilizando formulários HTML Ao clicar num botão “Submit” em um formulário HTML as informações dos campos serão enviadas ao servidor especificado para que possa ser produzida uma resposta. O PHP recebe esses valores em dois vetores: ] para o método GET $_POST[ ] para o método POST $_GET[ Método Post O método de envio do formulário é o POST. É criado um array associativo $POST, que recebe os dados que vieram do formulário. No formulário, em cada input usamos o atributo name para identificar um nome distinto. Este nome é o que identificamos no arquivo recebe.php como posição do $vetor chamado $_POST. Suponha o seguinte formulário: <form method = POST action=“ “> Nome: <input type= "text" name=“nome" value=""><br> Endereço: <input type= "text" name=“end" value=""><br> Cidade: <input type= "text" name=“cidade" value=""><br> Estado: <input type= "text" name=“uf" value=""><br> <input type = "submit" name= "sub" value = Enviar!"> Teremos o seguinte vetor $_POST como resultado: $_POST[nome] $_POST[end] $_POST[cidade] $_POST[uf] Cada elemento do vetor terá o conteúdo digitado no form. Se o método utilizado fosse GET, seria gerado o vetor $_GET. texto.html <html> <body> <form method=POST action="texto.php"> Quem é seu ator favorito? <input type="text" name="ator"> <br><br> <input type=submit VALUE=ENVIAR> </form> </body> </html> Salve como texto.php <?php $ator = $_POST[“ator”]; echo “Seu ator favorito é:” ,$ator; ?> Salve como quiz.html <HTML> <BODY> <FORM METHOD=POST ACTION="quiz.php"> Qual a capital de Portugal? <INPUT NAME="Question1" TYPE="Radio" VALUE="Porto">Porto <INPUT NAME="Question1" TYPE="Radio" VALUE="Lisboa">Lisboa <INPUT NAME="Question1" TYPE="Radio" VALUE="Madri">Madri <INPUT TYPE=SUBMIT value="Enviar"> </FORM> </BODY></HTML> Salve como quiz.php <HTML> <BODY> <?php $Q1=$_POST["Question1"]; if ($Q1=="Lisboa") echo "Você está correto, Lisboa é a resposta correta"; if ($Q1!="Lisboa") echo "Você está errado, Lisboa seria a resposta correta"; ?> </BODY> </HTML> arquivo: formulario_envio.html <html> <head> <title> formulario de envio </title> </head> <body> <form name = "form1" action ="recebe.php" method ="POST"> <center> <h3> Formulário de envio </h3> Nome: <input type="text" name="nome"> <BR><BR> Escolha um Número: <select name = "numero"> <option value = "1"> UM </option> <option value = "2"> DOIS </option> <option value = "3"> TRES </option> <option value = "4"> QUATRO </option> </select> <BR> <BR> <input type="submit"> </form> </body> </html> arquivo: formulario_evio.html Arquivo: recebe.php <?php echo " o nome digitado foi "; echo $_POST["nome"]; echo "<BR> O numero escolhido foi "; echo $_POST["numero"]; ?> Exercício Resolvido: Faça uma página (html) que peça 3 valores e calcule a média. <htlm> <head> <title> EXercicio </title> </head> <body> <form name = "form1" action = "exerc01.php" method="POST"> <center> <h3> Formulario de digitação </h3> Temperatura 1: <input type = "text" name = "temp1"> <br> Temperatura 2: <input type = "text" name = "temp2"> <br> Temperatura 3: <input type = "text" name = "temp3"> <br> <br> <input type = "submit"> </form> <body> </html> Arq: formulario_exerc01.html <?php echo "As temperaturas digitadas foram :"; echo $_POST["temp1"]." " .$_POST["temp2"]." " .$_POST["temp3"]; // Calcula a media $media = $_POST["temp1"] + $_POST["temp2"] + $_POST["temp3"]; printf (" <br> A media é : %4.2f", $media/3); ?> Arq:exerc01.php Exercício Resolvido: Faça uma página (html) que peça 3 valores e calcule a média. <htlm> <head> <title> EXercicio </title> </head> <body> <form name = "form1" action = "exerc02.php" method="POST"> <center> <h3> Formulario de digitação </h3> </center> Temperatura 1: <input type = "text" name = "0"> <br> Temperatura 2: <input type = "text" name = "1"> <br> Temperatura 3: <input type = "text" name = "2"> <br> <br> <input type = "submit"> </form> </body> </html> Arq: formulario_exerc02.html USANDO VETORES <?php echo "As temperaturas digitadas foram :"; echo $_POST["0"]." " .$_POST["1"]." " .$_POST["2"]; echo "<br>"; echo "As temperaturas digitadas foram :"; for ($i= 0; $i< sizeof ($_POST); $i++) echo $_POST ["$i"]." "; ?> Arq :exerc02.php Exercício Utilizando vetores, desenvolva: 1º Formulário: Entre com a quantidade de temperaturas: Temperatura 1: Temperatura 2: Temperatura 3: Submit 2º Formulário: As temperaturas digitadas foram: A maior e menor temperatura: A média das temperaturas: 3