Ir para conteúdo
Fórum Script Brasil
  • 0

Erro com php e mysql


Dihmx

Pergunta

Pessoal estou com um problema, tenho uma pequena intranet que por inquanto é utilizada somente para armazenar algumas informações, nela tenho um formulario em php, com ele eu insiro informações no banco de dado para depois poder recupera-las e montar um formulario para imprimir, esta funcionando normalmente até eu colocar na páginas de formularios que abre dentro de um iframe, e este formulario em php tb abre dentro deste iframe.

O erro que esta ocorrendo é o seguinte, toda vez que atualizo a página o formulario esta inserindo sozinho informações no banco de dados, informações zeradas ou seja por exemplo em data fica 0000-00-00, e o mesmo ocorre com os outros campos, e ele sempre vai duplicando isso,

alguém sabe o que pode esta causando isso ?

Um detalhe, quando eu rodava na máquina local com o WAMP funciova normalmente, quando passei para o servidor linux com o apache começou isso.

Editado por Dihmx
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

bom vou colocar o codigo completo desde a parte do html

<body>
<span><span><a target="_self" href="java script:window.print()"></a></span></span>
<form method="POST"  action="">
    <input type="hidden" name="operacao" value="incluir">
    <br />
    <fieldset>
        
        <label>
    

                                          
<table width="688" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="91">Data</td>
    <td width="83">Pedagio</td>
    <td width="113">Alimentacao</td>
    <td width="69">Km</td>
    <td width="95">Valor km</td>
    <td width="132">Diversos</td>
    <td width="114">Obs</span></td>
  </tr>
</table>
        <center>
                     <input name="data" type="text" value="aaaa-mm-dd" size="10">
                    <input type="text" name="pedagio" size="10">
                              
                  <input type="alimentacao" name="alimentacao" size="10">
                
                          <input type="text" name="km" size="10">
                            
                      <input name="valorkm" type="text" value="0.27" size="10">
                    <input type="text" name="diversos" size="10">
                    <textarea rows="2" name="obs" cols="20"></textarea>
                      <br>
    </label>
                    <input type="submit" value="enviar" name=""  />
                
                <input type="submit" value="mostrar" name="operacao"  />
                
                <input type="submit"  value="excluir" name="operacao">
  </fieldset>
                    

                
                <center>
</form>
<br />
<form method="POST"  action="testecalculo2.php">

<fieldset>
<h3 align="center"><strong>Utilize o botão mostrar abaixo para ir até a página de impressão.</strong><br />
   <br /> <input type="submit" value="mostrar" name="operacao"  />
</h3>
</fieldset>
</form>
<div align="center">
  <h1><span class="style2">Tabela de gastos </span><br />
    </h1>
</div>
<table width="793" border="1" align="center">
  <tr>
    <td width="97"><div align="center">Data</div></td>
    <td width="63"><div align="center">Pedagio</div></td>
    <td width="87"><div align="center">Alimentação</div></td>
    <td width="69"><div align="center">Km</div></td>
    <td width="70"><div align="center">ValorKm</div></td>
    <td width="71"><div align="center">Diversos</div></td>
    <td width="208"><div align="left">Obs</div></td>
    <td width="76"><div align="center">Total</div></td>
  </tr>
</table>
</table>
                <?php
        $data = $_POST["data"];
        $pedagio = $_POST["pedagio"];
        $alimentacao = $_POST["alimentacao"];
        $km = $_POST["km"];
        $valorkm = $_POST["valorkm"];
        $diversos = $_POST["diversos"];
        $obs = $_POST["obs"];
        $total=$_POST['total'];
        
        
        
        
                
        
        $total = ($pedagio+$alimentacao+$diversos)+($km*$valorkm);
            
            
            include "conexao.inc";
            $operacao = $_POST["operacao"];
            $operacao2 = $_POST["operacao"];
        
            
            
        $sql = "INSERT INTO gasto VALUES ";
        $sql .= "('$data','$pedagio','$alimentacao','$km','$valorkm','$diversos','$obs','$total')";
        $resultado = mysql_query ($sql); 
            
            
            if($operacao=="excluir")
                {
                    $sql = "DELETE FROM gasto";
                    $resultado = mysql_query ($sql); 
                            echo '            &lt;script language="Emplaca">
                                MsgBox ""
                        </script>';
                }
                        
            if ($operacao2=="mostrar")
    {
        $resultado = mysql_query ("SELECT * FROM gasto");
        $linhas = mysql_num_rows ($resultado);
        
        
        for ($i=0; $i<$linhas; $i++)
            
        
        {
            $reg = mysql_fetch_row($resultado);  
            
            echo' 
            
            
                <table width="793" border="1" align="center">
  <tr>
    <td width="97"><div align="center">'.$reg[0].'</div></td>
    <td width="63"><div align="center">'.$reg[1].'</div></td>
    <td width="87"><div align="center">'.$reg[2].'</div></td>
    <td width="69"><div align="center">'.$reg[3].'</div></td>
    <td width="70"><div align="center">'.$reg[4].'</div></td>
    <td width="71"><div align="center">'.$reg[5].'</div></td>
    <td width="208"><div align="left">'.$reg[6].'</div></td>
    <td width="76"><div align="center">'.$reg[7].'</div></td>
  </tr>
</table>';
            
        
                }
            
            }
                mysql_close($conexao);
                ?>
</body>
e depois tem a outra parte que uso para fazer a impressão das informações
<body>
<table width="550" height="15" border="0" align="center">
  <tr>
    <td>Cliente</td>
    <td>Local</td>
    <td>Funcionario</td>
    <td>Data:  de</td>
    <td>Data:  até</td>
  </tr>
  <tr>
    <td><div align="center">
      <input name="cliente" type="text"/>
      <br>
    </div></td>
    <td><div align="center">
      <input name="cliente" type="text"/>
      <br>
    </div></td>
    <td><div align="center">
      <input name="cliente" type="text"/>
      <br>
    </div></td>
    <td><div align="center">
      <input name="cliente" type="text"/>
      <br>
    </div></td>
    <td><div align="center">
      <input name="cliente" type="text"/>
      <br>
    </div></td>
  </tr>
  </table> 
<span><span><a target="_self" href="java script:window.print()">imprimir</a></span></span><br />
<a href="testecalculo.php">Voltar</a>
<div align="center">
  <h1><span class="style2">Tabela de gastos </span><br />
  </h1>
</div>
<table width="793" border="1" align="center">
  <tr>
    <td width="97"><div align="center">Data</div></td>
    <td width="63"><div align="center">Pedagio</div></td>
    <td width="87"><div align="center">Alimentação</div></td>
    <td width="69"><div align="center">Km</div></td>
    <td width="70"><div align="center">ValorKm</div></td>
    <td width="71"><div align="center">Diversos</div></td>
    <td width="208"><div align="left">Obs</div></td>
    <td width="76"><div align="center">Total</div></td>
  </tr>
</table>
</table>
<?php
        $data = $_POST["data"];
        $pedagio = $_POST["pedagio"];
        $alimentacao = $_POST["alimentacao"];
        $km = $_POST["km"];
        $valorkm = $_POST["valorkm"];
        $diversos = $_POST["diversos"];
        $obs = $_POST["obs"];
        $total=$_POST['total'];
        
        

        $total = ($pedagio+$alimentacao+$diversos)+($km*$valorkm);
            
            
            include "conexao.inc";
            $operacao = $_POST["operacao"];
            $operacao2 = $_POST["operacao"];
                
        
            
            
        $sql = "INSERT INTO gasto VALUES ";
        $sql .= "('$data','$pedagio','$alimentacao','$km','$valorkm','$diversos','$obs','$total')";
        $resultado = mysql_query ($sql); 
            
            
            if($operacao=="excluir")
                {
                    $sql = "DELETE FROM gasto";
                    $resultado = mysql_query ($sql); 
                            echo '            &lt;script language="Emplaca">
                                MsgBox ""
                        </script>';
                }
                        
            if ($operacao2=="mostrar")
    {
        $resultado = mysql_query ("SELECT * FROM gasto");
        $linhas = mysql_num_rows ($resultado);
        
        
        for ($i=0; $i<$linhas; $i++)
            
        
        {
            $reg = mysql_fetch_row($resultado);  
            
            echo' 
            
            
                <table width="793" border="1" align="center">
  <tr>
    <td width="97"><div align="center">'.$reg[0].'</div></td>
    <td width="63"><div align="center">'.$reg[1].'</div></td>
    <td width="87"><div align="center">'.$reg[2].'</div></td>
    <td width="69"><div align="center">'.$reg[3].'</div></td>
    <td width="70"><div align="center">'.$reg[4].'</div></td>
    <td width="71"><div align="center">'.$reg[5].'</div></td>
    <td width="208"><div align="left">'.$reg[6].'</div></td>
    <td width="76"><div align="center">'.$reg[7].'</div></td>
  </tr>
</table>';
            
        
                }
                if ($operacao2=="mostrar")
    {
        $resultado = mysql_query ("SELECT SUM(total) FROM gasto");
        $linhas = mysql_num_rows ($resultado);
        
        
        for ($i=0; $i<$linhas; $i++)
            
        
        {
            $reg = mysql_fetch_row($resultado);  
            
            echo     '<P align="right">Total:  ' .$reg[0].'</p>';
            }}
            }
                mysql_close($conexao);
                ?>
                
</body>

Link para o comentário
Compartilhar em outros sites

  • 0

Antes de chamar o INSERT INTO você pode verificar os campos que são de preenchimento obrigatório, avisando o usuário caso estejam vazios, por exemplo:

$campo1 = $_POST['campo1'];
$campo2 = $_POST['campo2'];

if(empty($campo1) OR empty($campo2)){
echo 'Todos os campos são de preenchimento obrigatório';
}else{
mysql_query("INSERT INTO....
}

Link para o comentário
Compartilhar em outros sites

  • 0

Isso eu já tenho, mas esta inserindo campos vazios sózinho, deixa eu explicar melhor.

este formulario funciona assim, tem a página que eu insiro as informações, ai fica salvo no mysql, só que se eu já atualizar a página ele já insere as informações zeradas no mysql, e se eu for para a outra página a onde recupero os dados para imprimir o relatorio ele insere mais informações, ai ele vai criando um monte de linhas como a de baixo

+------------+---------+-------------+----+---------+----------+------+-------+
| data       | pedagio | alimentacao | km | valorkm | diversos | obs  | total |
+------------+---------+-------------+----+---------+----------+------+-------+
| 0000-00-00 |       0 |           0 |  0 |       0 |        0 |      |     0 |     
| 0000-00-00 |       0 |           0 |  0 |       0 |        0 |      |     0 |     
+------------+---------+-------------+----+---------+----------+------+-------+

Editado por Dihmx
Link para o comentário
Compartilhar em outros sites

  • 0

OLá Dihmx,

não sei se você já resolveu.. mas me apoiando em cima da solução do ESerra... tente usar no submit do botão. Ex:

<input type='submit' name='submit' value='cadastrar'>

o seu php ficaria:

<?php

if($_REQUEST['submit'] == "cadastrar"){

mysql_query("INSERT INTO....

}

abraços

observe essa linha:

$total = ($pedagio+$alimentacao+$diversos)+($km*$valorkm);

include "conexao.inc";

$operacao = $_POST["operacao"];

$operacao2 = $_POST["operacao"];

$sql = "INSERT INTO gasto VALUES ";

$sql .= "('$data','$pedagio','$alimentacao','$km','$valorkm','$diversos','$obs','$total')";

$resultado = mysql_query ($sql);

e essa:

<input type=hidden" name="operacao" value="incluir">

coloque assim:

if($_REQUEST['operacao] == "incluir"){

$sql = "INSERT INTO gasto VALUES ";

$sql .= "('$data','$pedagio','$alimentacao','$km','$valorkm','$diversos','$obs','$total')";

$resultado = mysql_query ($sql);

echo "<script>window.location.href='suapagina.php';</script>";

}

... observe tb que eu coloquei um location do javascript....dessa forma quando você atualizar...ele não irá mais inserir....

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

desculpa..esqueci de completar...

ou como disse nosso colega ESerra..

if(empty($campo1) OR empty($campo2)){

echo 'Todos os campos são de preenchimento obrigatório';

}else{

mysql_query("INSERT INTO....

echo "<script>window.location.href='suapagina.php';</script>";

}

abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...