Bom, com base em seu FORM vou tentar explicar melhoras as partes que você tem dúvida.
Por partes...
1. Fazer o FORM...
2. Enviar os dados para uma página diferente...:
<form action="calc.tri.php" method="POST">
<table align="center" width="25%" border="2">
<tr>
<td colspan="2" align="center">Meu triângulo</td>
</tr>
<tr>
<td align="center"><b>Nome</b></td>
<td align="center" width="70%"><input type="text" size="20" name="nome"></td>
</tr>
<tr>
<td align="center"><font color="#FF0000">1° Lado</font></td>
<td align="center"><input type="text" size="20" name="lado1"></td>
</tr>
<tr>
<td align="center"><font color="#0000FF">2° Lado</font></td>
<td align="center"><input type="text" size="20" name="lado2"></td>
</tr>
<tr>
<td align="center"><font color="#008000">3° Lado</font></td>
<td align="center"><input type="text" size="20" name="lado3"></td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" value="Calcular">
</td>
</tr>
</table>
</form>
3. Nessa página que recebe os dados, verifica se possui dados POSTADOS...:
if(isset($_POST['submit'])){
// AQUI IREMOS COLOCAR TODO O RESTO DE CÓDIGO, SE NÃO ENTRAR AQUI QUER DIZER QUE A PESSOA ACESSOU ESSA PÁGINA DIRETAMENTE...
}
4. Dando tudo OK, dá um IF para cada item do FORM para verificar se ele está vazio...
5. Se está VAZIO determinado campo, ele guarda a mensagem desse campo em uma variável; como citado no post anterior...:
if(isset($_POST['submit'])){
if(empty($_POST['nome'])){
$erro.='Campo "Nome" não deve estar vazio.<br>';
}
if(empty($_POST['lado1'])){
$erro.='Campo "1º Lado" não deve estar vazio.<br>';
}
if(empty($_POST['lado2'])){
$erro.='Campo "2º Lado" não deve estar vazio.<br>';
}
if(empty($_POST['lado3'])){
$erro.='Campo "3º Lado" não deve estar vazio.<br>';
}
}
Observe que colocamos o valor da variável com um . antes do valor de igualdade, isto para que se a variável tem um valor anterior, ele não seja substituido e sim adicionado.
Se o campo Nome estiver vazio, ele irá colocar a string da mensagem de NOME a variavel $erro, mas se 1º Lado também, não estiver, ele adicionará a string do 1º Lado a variavel $nome e ficando as duas mensagens na mesma variável.
6. E depois verifica se essa variável está setada, se SIM por que algum campo não está preenchido...
7. Aí ele mostra a variável (que no caso está com as mensagens de erro)...
8. E embaixo mostra a cópia do FORM anterior, porém com os VALUE's dos campos com valor das variáveis POSTADOS, o campo que foi postado vazio anteriormente, estará vazio agora também, claro, hehehe....:
if(isset($_POST['submit'])){
if(empty($_POST['nome'])){
$erro.='Campo "Nome" não deve estar vazio.<br>';
}
if(empty($_POST['lado1'])){
$erro.='Campo "1º Lado" não deve estar vazio.<br>';
}
if(empty($_POST['lado2'])){
$erro.='Campo "2º Lado" não deve estar vazio.<br>';
}
if(empty($_POST['lado3'])){
$erro.='Campo "3º Lado" não deve estar vazio.<br>';
}
if(isset($erro)){
echo $erro;
?>
<form action="calc.tri.php" method="POST">
<table align="center" width="25%" border="2">
<tr>
<td colspan="2" align="center">Meu triângulo</td>
</tr>
<tr>
<td align="center"><b>Nome</b></td>
<td align="center" width="70%"><input type="text" size="20" name="nome" value="<?=$_POST['nome'];?>"></td>
</tr>
<tr>
<td align="center"><font color="#FF0000">1° Lado</font></td>
<td align="center"><input type="text" size="20" name="lado1" value="<?=$_POST['lado1'];?>"></td>
</tr>
<tr>
<td align="center"><font color="#0000FF">2° Lado</font></td>
<td align="center"><input type="text" size="20" name="lado2" value="<?=$_POST['lado2'];?>"></td>
</tr>
<tr>
<td align="center"><font color="#008000">3° Lado</font></td>
<td align="center"><input type="text" size="20" name="lado3" value="<?=$_POST['lado3'];?>"></td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" value="Calcular">
</td>
</tr>
</table>
</form>
<?
}
}
?>
9. Se não der ERRO, ele mostra a mensagem de SUCESSO...:
if(isset($_POST['submit'])){
if(empty($_POST['nome'])){
$erro.='Campo "Nome" não deve estar vazio.<br>';
}
if(empty($_POST['lado1'])){
$erro.='Campo "1º Lado" não deve estar vazio.<br>';
}
if(empty($_POST['lado2'])){
$erro.='Campo "2º Lado" não deve estar vazio.<br>';
}
if(empty($_POST['lado3'])){
$erro.='Campo "3º Lado" não deve estar vazio.<br>';
}
if(isset($erro)){
echo $erro;
?>
<form action="calc.tri.php" method="POST">
<table align="center" width="25%" border="2">
<tr>
<td colspan="2" align="center">Meu triângulo</td>
</tr>
<tr>
<td align="center"><b>Nome</b></td>
<td align="center" width="70%"><input type="text" size="20" name="nome" value="<?=$_POST['nome'];?>"></td>
</tr>
<tr>
<td align="center"><font color="#FF0000">1° Lado</font></td>
<td align="center"><input type="text" size="20" name="lado1" value="<?=$_POST['lado1'];?>"></td>
</tr>
<tr>
<td align="center"><font color="#0000FF">2° Lado</font></td>
<td align="center"><input type="text" size="20" name="lado2" value="<?=$_POST['lado2'];?>"></td>
</tr>
<tr>
<td align="center"><font color="#008000">3° Lado</font></td>
<td align="center"><input type="text" size="20" name="lado3" value="<?=$_POST['lado3'];?>"></td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" value="Calcular">
</td>
</tr>
</table>
</form>
<?
}else{
echo 'Todos os campos estão preenchidos corretamente... =)';
}
}
?>
10. ISSO!!!:
Urr preguiça para verificar se acertei na digitação dos códigos, então não me culpe se estiver algo errado, sono owna. huahuahuahua.
Edição feita por: lwirkk, 04/08/2008, 03:52.