Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

° Caio LG °

[Resolvido] Sistema de Cadastro Fazendo 2 registros

Recommended Posts

Galera, seguinte, tenho um sistema de cadastro, que ele cadastra 2 registros no banco de dados, eu mando cadastrar, 1 registro aparece com os dados cadastrados, e o outro fica em branco...deem uma ajudinha ai, brigadão..segue abaixo os codigos

 

formulario.php

 

<form name="form" action="upload.php" method="POST" enctype="multipart/form-data">
  <table width="398" border="0" align="center" cellpadding="5" cellspacing="1">
    <tr>
      <th align="right" scope="col"><div align="right"><span class="style8">Titulo Noticia:</span></div></th>
      <th width="257" scope="col"><div align="left">
        <input name="titulo" type="text" id="titulo" />
      </div></th>
    </tr>
    <tr>
      <th class="style8"><div align="right">Foto:</div></th>
      <th scope="col"><div align="left">
        <input name="arquivo" type="text" id="arquivo" />
        <a href="#" onClick="docWindow=window.open('../arquivos/carregar_foto.php','00001', 'toolbar=no, width=350, height=200, directories=no, status=yes, scrollbars=yes, resizable=yes, menubar=no, top=10, left=25'); docWindow.focus(); return false">
Nova Foto</a> </div></th>
    </tr>
    <tr>
      <th align="right" valign="top" scope="col"><div align="right" class="style8">Conteudo</div></th>
      <th align="left" scope="col"><label>
        <textarea name="conteudo" cols="40" rows="7" id="conteudo"></textarea>
      </label></th>
    </tr>
    <tr>
      <th valign="top" class="style8" scope="col"><div align="right">Adicionado por: </div></th>
      <th scope="col"><div align="left">
        <input name="addc" type="text" id="addc" />
      </div></th>
    </tr>
    <tr>
      <th valign="top" class="style8" scope="col"><div align="right">Exibir Em: </div></th>
      <th scope="col"><div align="left">
        <p>
          <label>
            <input name="quadro" type="radio" value="1" checked="checked" />
            Quadro 1 </label>
          <br />
          <label>
            <input type="radio" name="quadro" value="2" />
            Quadro 2 </label>
          <br />
          <label>
            <input type="radio" name="quadro" value="3" />
            Quadro 3 </label>
          <br />
        </p>
      </div></th>
    </tr>
    <tr>
      <th valign="top" class="style8" scope="col"><div align="right">Direciona para :</div></th>
      <th scope="col"><div align="left">
        <p>
          <label>
            <input name="link" type="radio" value="not_baixo.php" checked="checked" />
Notícia</label>
          <br />
          <label>
            <input type="radio" name="link" value="radio.php" />
            Radio</label>
          <br />
		              <input type="radio" name="link" value="podcast.php" />
            Podcast</label>
          <br />
          <label>
            <input type="radio" name="link" value="qsomos.php" />
            Quem Somos</label>
          <br />
		            <label>
            <input type="radio" name="link" value="novo.php" />
            Sou Novo Aqui </label>
          <br />
        </p>
      </div></th>
    </tr>
    <tr>
      <th scope="col"> </th>
      <th scope="col"><div align="left">
        <input type="submit" name="Submit" value="Cadastrar" />
      </div></th>
    </tr>
  </table>
  <p> </p>
</form>

 

 

 

cadastrando.php

<?
require("../sistema/conectdb.php");

$arquivo = $_POST['arquivo'];
$titulo = $_POST['titulo'];
$conteudo = $_POST['conteudo'];
$addc = $_POST['addc'];
$quadro = $_POST['quadro'];
$link = $_POST['link'];

mysql_query("INSERT INTO notbaixo (arquivo, titulo, conteudo, addc, quadro, link) VALUES ('$arquivo','$titulo','$conteudo','$addc','$quadro','$link')") or die ("Não foi Possivel Inserir");
mysql_close();

	echo "<script>alert('Seu link foi cadastrado com Sucesso!')</script><script language=javascript>window.opener.location.reload(); setTimeout('window.close();',10);</script>";


?>

vlww.....aguardo respostass ...abraçoss

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara,

 

Só estou vendo você inserir os dados em uma tabela no codigo da pagina "cadastrando.php"

 

Além disso, você postou a pagina certa? Por que no seu formulário está com action="upload.php" e não cadastrando.php

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo, eh que eu troquei o nome das paginas pra por aqui no forum, e esqueci de alterar la, mais ele ta fazendo ligação uma pagina com a outra, mais ele cadastra 2 registros no banco, 1 com os dados vindo do formulario, e outro totalmente em branco.....vou editar la em cima.. disculpa o erro..

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro está aí no javascript mesmo:

 

window.opener.location.reload(); <- ele ta dando reload na página e por isso ta cadastrando outro dado em branco,

 

substitua:

echo "<script>alert('Seu link foi cadastrado com Sucesso!')</script><script language=javascript>window.opener.location.reload(); setTimeout('window.close();',10);</script>";

por esse:

echo "<script> alert('Seu link foi cadastrado com Sucesso!'); window.close(); </script>";

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Continua do mesmo Jeito Galera =// vou repostar os codigos

 

formulario.php

 

<form name="form" action="cadastrando.php" method="POST" enctype="multipart/form-data">
  <div align="center" class="style6">

    <span class="style10">Adicionar Noticias </span></div>
  <table width="398" border="0" align="center" cellpadding="5" cellspacing="1">
    <tr>
      <th align="right" scope="col"><div align="right"><span class="style8">Titulo Noticia:</span></div></th>
      <th width="257" scope="col"><div align="left">
        <input name="titulo" type="text" id="titulo" />
      </div></th>
    </tr>
    <tr>
      <th class="style8"><div align="right">Foto:</div></th>
      <th scope="col"><div align="left">
        <input name="arquivo" type="text" id="arquivo" />
        <a href="#" onClick="docWindow=window.open('../arquivos/carregar_foto.php','00001', 'toolbar=no, width=350, height=200, directories=no, status=yes, scrollbars=yes, resizable=yes, menubar=no, top=10, left=25'); docWindow.focus(); return false">
Nova Foto</a> </div></th>
    </tr>
    <tr>
      <th align="right" valign="top" scope="col"><div align="right" class="style8">Conteudo</div></th>
      <th align="left" scope="col"><label>
        <textarea name="conteudo" cols="40" rows="7" id="conteudo"></textarea>
      </label></th>
    </tr>
    <tr>
      <th valign="top" class="style8" scope="col"><div align="right">Adicionado por: </div></th>
      <th scope="col"><div align="left">
        <input name="addc" type="text" id="addc" />
      </div></th>
    </tr>
    <tr>
      <th valign="top" class="style8" scope="col"><div align="right">Exibir Em: </div></th>
      <th scope="col"><div align="left">
        <p>
          <label>
            <input name="quadro" type="radio" value="1" checked="checked" />
            Quadro 1 </label>
          <br />
          <label>
            <input type="radio" name="quadro" value="2" />
            Quadro 2 </label>
          <br />
          <label>
            <input type="radio" name="quadro" value="3" />
            Quadro 3 </label>
          <br />
        </p>
      </div></th>
    </tr>
    <tr>
      <th valign="top" class="style8" scope="col"><div align="right">Direciona para :</div></th>
      <th scope="col"><div align="left">
        <p>
          <label>
            <input name="link" type="radio" value="not_baixo.php" checked="checked" />
Notícia</label>
          <br />
          <label>
            <input type="radio" name="link" value="radio.php" />
            Radio</label>
          <br />
		              <input type="radio" name="link" value="podcast.php" />
            Podcast</label>
          <br />
          <label>
            <input type="radio" name="link" value="qsomos.php" />
            Quem Somos</label>
          <br />
		            <label>
            <input type="radio" name="link" value="novo.php" />
            Sou Novo Aqui </label>
          <br />
        </p>
      </div></th>
    </tr>
    <tr>
      <th scope="col"> </th>
      <th scope="col"><div align="left">
        <input type="submit" name="Submit" value="Cadastrar" />
      </div></th>
    </tr>
  </table>
  <p> </p>
</form>

cadastran

 

cadastrando.php

 

<?
require("../sistema/conectdb.php");

if(isset($_POST["titulo"]))

$arquivo = $_POST['arquivo'];
$titulo = $_POST['titulo'];
$conteudo = $_POST['conteudo'];
$addc = $_POST['addc'];
$quadro = $_POST['quadro'];
$link = $_POST['link'];

mysql_query("INSERT INTO notbaixo (arquivo, titulo, conteudo, addc, quadro, link) 

VALUES ('$arquivo','$titulo','$conteudo','$addc','$quadro','$link')");
mysql_close();//fecha conexão

	echo "<script> alert('Seu link foi cadastrado com Sucesso!'); window.close(); 

</script>";
?>

Desculpas ai a enchessão de sacu galeraa =//

Compartilhar este post


Link para o post
Compartilhar em outros sites

dica,

logo após executar a Query SQL, mande imprimir:

mysql_affected_rows( aqui o resource da conexão com o banco );

referência: http://jp.php.net/mysql_affected_rows

 

isso é apenas para depurar o script e procurar o real motivo do problema.

 

 

 

aplicando na prática nesse ultimo código que você postou

 

 

cadastrando.php

 

<?
require("../sistema/conectdb.php");

if( isset($_POST["titulo"]) )
{

    $arquivo = $_POST['arquivo'];
    $titulo = $_POST['titulo'];
    $conteudo = $_POST['conteudo'];
    $addc = $_POST['addc'];
    $quadro = $_POST['quadro'];
    $link = $_POST['link'];

    mysql_query("INSERT INTO notbaixo (arquivo, titulo, conteudo, addc, quadro, link) VALUES ('$arquivo','$titulo','$conteudo','$addc','$quadro','$link')");

    // esse trecho abaixo serve apenas para debug
    // troque CONN pelo RESOURCE da conexão com o banco
    $foo = mysql_affected_rows( CONN ); print_r( $foo ); exit; 

}
    mysql_close();//fecha conexão
?>
<script language=javascript>
    // esse trecho não precisa estar dentro do PHP pois nao possui nada usando PHP.
    // ao usar echo para esse tipo de caso estará apenas consumindo processos desnecessários
    // para finalidades de testes mantenha o evento "alert()" desativado:
    
    // alert('Seu link foi cadastrado com Sucesso!');
</script>

retorne aqui o resultado.

 

 

obs: existem diversas outras falhas no script, mas não convém mencionar agora.

resolve primeiramente esse problema principal.

 

 

 

 

 

 

"comentário off" referente ao script javascript

 

<script language=javascript>window.opener.location.reload(); setTimeout('window.close();',10);</script>

isso é javascript

window.opener.location.reload é um evento que faz reload na janela PAI, de onde originou a janela corrente, no caso de uma janela popup

 

logo em seguida é chamdo o window.close em 10 milisegundos para fechar a janela corrente.

 

segundo os códigos que postou, esses scripts javascript não fazem sentido.

pois, a página do formulário não está enviando os dados para uma janela popup susequente ou posteriormente aberta.

 

o uso disso provocaria erro javascript, o qual poderia não ser percebido devido ao window.close().

 

além do mais, se fosse recarregado, o navegador pediria para reenviar os dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galeraa...... mtttooooo obrigado......agora funcionou certinhoo.. =D gostaria de agradecer a vocês ai, sem vocês eu não conseguiria.... =D

 

só por curiosidade, pra mim saber no que estou errando.. hinom, poderia me mostrar quais os outros pontos errados no codigo ?.. gostaria de corrigi-los, para mim fazer certo..

 

Mto Obrigado Genteee

Compartilhar este post


Link para o post
Compartilhar em outros sites

vou citar assuntos simples.

 

outras questões sobre patterns mvc, op, etc, não tem necessidade.

 

 

1. open short tags

em todas as aberturas de tag do PHP utilizze a tag PHP

<?php
<?php echo 'hello world';?>

 

2. processamento de dados

$arquivo = $_POST['arquivo'];
    $titulo = $_POST['titulo'];
    $conteudo = $_POST['conteudo'];
    $addc = $_POST['addc'];
    $quadro = $_POST['quadro'];
    $link = $_POST['link'];
    mysql_query("INSERT INTO notbaixo (arquivo, titulo, conteudo, addc, quadro, link) VALUES ('$arquivo','$titulo','$conteudo','$addc','$quadro','$link')");

Não está fazendo nenhum tipo de filtro nas strings recebidas via POST.

Além disso está formando a Query SQL de modo perigodo, propenso a erros e SQL Injection

 

 

 

3. estrutura lógica

require("../sistema/conectdb.php");

if( isset($_POST["titulo"]) ){

Não vi nenhum comando de conexão com o DB nesse script, por isso julgo que o comando esteja no arquivo "../sistema/conectdb.php".

Nesse caso não há erro, mas é logicamente errado abrir uma conexão desnecessariamente.

Abra uma conexão com o banco somente quando for realmente utilizá-lo.

Nesse caso, somente após fazer filtragem de todos os dados recebidos, validando-os consistentemente.

 

 

4. processamento desnecessário

 

echo "<script> alert('Seu link foi cadastrado com Sucesso!'); window.close(); </script>";
?>

Conforme sugestão do post numero 9, não há necessidade em escrever esse trecho dentro do PHP.

Nesse caso estará apenas excutando processos desnecessários.

Bastaria escrever o trecho javascript fora da tag PHP.

 

Não está errado a forma como fez, mas quando você tiver oportunidade de construir um aplicativo com grande volume de acesso entenderá a importância em se preocupar com processamento. Contudo, independente de ter grande volume de acesso ou não, sempre pense na forma mais rapida de processamento, mesmo que tenha que fugir de uma padrão ou conceito, obviamente sem exageros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado hinom, vou pegar essas dias e deixa-las bem registradas aqui, pois a minha intenção um dia, é poder atender grandes empresas =D .. muito obrigado mesmo, e desculpe um pouco de minha ignorancia no assunto hehe

 

abração

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.