Jump to content
Grufa

[Resolvido] Dupla Inserção de Registos na BD em Mozilla

Recommended Posts

Grufa

Boas,

Estou a construir um cms (content management system) para projecto final de curso e estou com um pequeno problema.

No ie tanto páginas como projectos são inseridos correctamente na base de dados mas em mozilla os dados são inseridos 2 vezes.

Alguma sugestão?  ;)

//Projectos*********************************************************************************************
//Selecciona Utilizadores da BD-----------------------------------------------
$username = $_SESSION['username'];
$escolhe_projecto1 = "SELECT * FROM utilizadores WHERE username='".$username."'";
$resultado1 = mysqli_query($ligaBD,$escolhe_projecto1);
$registos1 = mysqli_fetch_array($resultado1);
		if(!$resultado1){
			echo '<p> Erro: Falha a escolher projecto';exit;}
//-----------------------------------------------------------------------------

//Insere na Tabela Projectos um Novo Projecto com o ID do Utilizador que tem sessão iniciada
$data = date("Y/m/d h:i:s");
$inserir_projecto = "INSERT projectos VALUES ('','','".$registos1['id_utilizador']."','".$data."')";
$resultado2 = mysqli_query($ligaBD,$inserir_projecto);
//-----------------------------------------------------------------------------

//Seleciona o Projecto que o utilizador acabou de criar que vem da query anterior.
$escolhe_projecto2 = "SELECT * FROM utilizadores u, projectos p WHERE u.username='".$_SESSION['username']."' AND u.id_utilizador=p.id_utilizador";
$resultado3 = mysqli_query($ligaBD,$escolhe_projecto2);
$registos2 = mysqli_fetch_array($resultado3);
//------------------------------------------------------------------------------
//Fim da query para atribuir um Id a um Projecto*******************************************************

//Paginas**********************************************************************************************
//Insere Obrigatoriamente como 1ª página a Home Page----------------------------
// Paginas (id_pagina,id_utilizador,titulo_principal,titulo_pag,body_pag,footer,ultimamod,id_projecto)
$inserir_pagina = "INSERT paginas VALUES ('','".$registos1['id_utilizador']."','','Home Page','','','".$data."','".$registos2['id_projecto']."')";
$resultado4 = mysqli_query($ligaBD,$inserir_pagina);
//-----------------------------------------------------------------------------

//Seleciona o Id da pagina que acabou de ser criada na query anterior----------
$escolhe_pagina = "SELECT id_pagina FROM paginas WHERE id_utilizador IN( SELECT id_utilizador FROM projectos WHERE id_projecto='".$registos2['id_projecto']."')";
$resultado5 = mysqli_query($ligaBD,$escolhe_pagina);
$registos3 = mysqli_fetch_array($resultado5);
		if(!$resultado5){
			echo '<p> Erro: Falha a escolher pagina';exit;}
//-----------------------------------------------------------------------------
//Fim de querys para Paginas***************************************************************************


"Se algum dia sentires um vazio dentro de ti.. come que isso é fome xD"

Share this post


Link to post
Share on other sites
Lfscoutinho

Boas,

A única coisa que mostraste foi código PHP, por isso nem me dei ao trabalho de ler, porque o PHP é uma linguagem Server-Side. Como tal, se obtens resultados diferentes em diferentes browsers, o problema não é no PHP.

Share this post


Link to post
Share on other sites
Grufa

Então como é que posso solucionar o problema?

Gostava de saber quais as diferentes possibilidades de fazer um insert em php para ver se resulta..

É estranho funcionar em ie e em mozilla nada :/


"Se algum dia sentires um vazio dentro de ti.. come que isso é fome xD"

Share this post


Link to post
Share on other sites
brunoais

Se queres saber, a mim parece-me código escrito sem seguir a especificação do w3c. Se seguires a especificação do w3c tudo irá funcionar corretamente.

(como o Lfscoutinho afirmou:) Mostra o código javascript e HTML (ou xHTML) que escreveste para dar uma olhadela e ajudar-te e encontrar aonde estão os erros.

Isso faz-me lembrar. Tens a certeza que o firefox não te indicou erros na página? (vê o Error Console)


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
M6

Já tive um problema idêntico, havia um Firefox em que isso acontecia (no meu não acontecia).

Após análise, descobri que isso acontecia devido a um plugin, existente apenas no tal Firefox onde esse comportamento foi detectado, e que fazia um preview ou algo assim. O que se passava era muito simples: o plugin para fazer o preview faz um pedido http, que por acaso era igual ao pedido de submit do formulário. Ou seja: o utilizador fazia submit e o plugin replicava o comando, fazendo assim dois submits e duplicando os inserts!


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
brunoais

mas afinal é com um dos mozilla ou é só com o firefox?


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
M6

mas afinal é com um dos mozilla ou é só com o firefox?

O Firefox é um derivado do Mozilla.

Há plugins que se podem usar em ambos, por isso o problema que tive não é de descartar.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
Grufa

Abri o Error Console e realmente aparece uma data de erros mas não mostra a linha dos erros só diz o tipo de erro.

- "Esperado ":" mas encontrado "false". Declaração ignorada."

- "Erro no processamento do valor de "filtrer". Declaração ignorada."

Exprimentei correr o projecto no meu outro pc porque nesse o mozilla não tem plugins mas o problema mantem-se, continua a inserir duas vezes :s


"Se algum dia sentires um vazio dentro de ti.. come que isso é fome xD"

Share this post


Link to post
Share on other sites
M6

Então eu diria que tens mesmo um erro qualquer no teu código que, por um efeito secundário qualquer, efectua dois pedidos de submissão de dados...

PS: mete um proxy no meio que te permita fazer debug aos pedidos http, ou vê o log do web server.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
brunoais

Mostra o código todo da página para poder analisar.

Pode até ser que o IE não esteja a seguir o código que escreveste corretamente e q acabe por fazer o que tu queres sem querer.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
Grufa

Aqui tens o código todo:

<?php
include("../../../scripts/ligacao.php");
session_start();

if((!isset($_SESSION['username']))){
	header("Location: ../../../error.php");
}

//Projecto*********************************************************************************************
//Selecciona Utilizadores da BD-----------------------------------------------
$username = $_SESSION['username'];
$escolhe_projecto1 = "SELECT * FROM utilizadores WHERE username='".$username."'";
$resultado1 = mysqli_query($ligaBD,$escolhe_projecto1);
$registos1 = mysqli_fetch_array($resultado1);
		if(!$resultado1){
			echo '<p> Erro: Falha a escolher projecto';exit;}
//-----------------------------------------------------------------------------

//Insere na Tabela Projectos um Novo Projecto com o ID do Utilizador que tem sessão iniciada
$data = date("Y/m/d h:i:s");
$inserir_projecto = "INSERT projectos VALUES ('','','".$registos1['id_utilizador']."','".$data."')";
$resultado2 = mysqli_query($ligaBD,$inserir_projecto);
//-----------------------------------------------------------------------------

//Seleciona o Projecto que o utilizador acabou de criar que vem da query anterior.
$escolhe_projecto2 = "SELECT * FROM utilizadores u, projectos p WHERE u.username='".$_SESSION['username']."' AND u.id_utilizador=p.id_utilizador";
$resultado3 = mysqli_query($ligaBD,$escolhe_projecto2);
$registos2 = mysqli_fetch_array($resultado3);
if(!$resultado3){
			echo '<p> Erro: Falha a escolher projecto';exit;}
//------------------------------------------------------------------------------
//Fim da query para atribuir um Id a um Projecto*******************************************************

//Paginas**********************************************************************************************
//Insere Obrigatoriamente como 1ª página a Home Page----------------------------
// Paginas (id_pagina,id_utilizador,titulo_principal,titulo_pag,body_pag,footer,ultimamod,id_projecto)
$inserir_pagina = "INSERT paginas VALUES ('','".$registos1['id_utilizador']."','','Index','','','".$data."','".$registos2['id_projecto']."','".$_GET['template']."')";
$resultado4 = mysqli_query($ligaBD,$inserir_pagina);
//-----------------------------------------------------------------------------


//Seleciona o Id da pagina que acabou de ser criada na query anterior----------
$escolhe_pagina = "SELECT id_pagina FROM paginas WHERE id_utilizador IN( SELECT id_utilizador FROM projectos WHERE id_projecto='".$registos2['id_projecto']."')";
$resultado5 = mysqli_query($ligaBD,$escolhe_pagina);
$registos3 = mysqli_fetch_array($resultado5);
		if(!$resultado5){
			echo '<p> Erro: Falha a escolher pagina';exit;}
//-----------------------------------------------------------------------------
//Fim de querys para Paginas***************************************************************************


//Verifica Template escolhido pelo utilizador e redirecciona-------------------------------------------------
function templates(){
		if ($_GET['template'] == 'temp1') {
			return "../transparentia/index.php";exit;	
		}
		if ($_GET['template'] == 'temp2') {
			return "../goods/index.php";exit;
		}
		if ($_GET['template'] == 'temp3') {
			return "../goods/index.php";exit;
		}
}
//-------------------------------------------------------------------------------------------
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /><title> Mypage Maker - 
Painel de Controlo</title><meta http-equiv="content-script-type" content="text/javascript" />
<meta http-equiv="content-style-type" content="text/css" /><meta http-equiv="imagetoolbar" content="no" />
<LINK REL="icon" HREF="http://forum.v8server.net/style_images/camskin/menu_member/tools.png"> 
<link href="../../administrador/style.css" rel="stylesheet" type="text/css" media="screen" />

<style type="text/css">body { font-size:11pt; }</style>
<!--<script src="../scripts/jquery.min.js" type="text/javascript"></script>
<script src="../scripts/notutf8-pt.js" type="text/javascript"></script>
<script src="../scripts/notutf8-pt_help.js" type="text/javascript"></script>
<script src="../scripts/admin.js" type="text/javascript"></script>-->

<script type="text/javascript" src="jquery-1.3.2.min.js"></script>

<style type="text/css">
div.TextBoxDiv1{
	padding:8px;
}
</style>

<script type="text/javascript">

$(document).ready(function(){

    var counter = 2;

    $("#addButton").click(function () {

if(counter>10){
            alert("Only 10 textboxes allow");
            return false;
}   

var newTextBoxDiv = $(document.createElement('div'))
     .attr("id", 'TextBoxDiv' + counter);

newTextBoxDiv.after().html('<label>Nova Página '+ counter + ' : </label>' +
      '<input type="text" name="textbox' + counter + 
      '" id="textbox' + counter + '" value="" >');

newTextBoxDiv.appendTo("#TextBoxesGroup");


counter++;
     });

     $("#removeButton").click(function () {
if(counter==1){
          alert("Não existem mais páginas para remover.");
          return false;
       }   

counter--;

        $("#TextBoxDiv" + counter).remove();

     });

     $("#getButtonValue").click(function () {

var msg = '';
for(i=1; i<counter; i++){
   	  msg += "\n Textbox #" + i + " : " + $('#textbox' + i).val();
}
    	  alert(msg);
     });
  });
</script>



</head><body><div class="conteneur_minwidth_IE"><div class="conteneur_layout_IE"><div class="conteneur_container_IE">
      <div id="page-header" class="clearfix"><a href="../../index.php"><img src="images/logo_foot.png" alt="logo" class="logo" /></a>   <a href="/" class="url" ><span class=""> Painel de Controlo  </span>
      
      <span class="txt_blue" style="font-style: italic;"></span></a>

      <p id="user_connected">

        
      <?php
  	// Código de Boas Vindas do Utilizador----------------------------------------------------------------------------------------------------
  
  	if(isset($_SESSION['username'])){
	$query = "SELECT * FROM utilizadores WHERE username ='".$_SESSION['username']."'";
	$resultado = mysqli_query($ligaBD,$query);
	$registos = mysqli_fetch_array($resultado);
	if(mysqli_num_rows($resultado) == 1) { // Verifica se existe na Base de Dados
		echo "Bem Vindo, <b><font color='#0066FF'>".$registos['nome']."</font></b> [ <a href='../../scripts/logout.php'>Sair</a> ]";
	}else{
		echo "erro!";
	}
	}else{
		//não mostra user
	}
	//Fim do Código de Boas Vindas do Utilizador---------------------------------------------------------------------------------------------
  ?>
      
   	  </p>

      <ul class="preview_forum clearfix"><li class="header_admin_left"><img src="" alt="" /><a href="/" target="_blank">Visualizar o Website Principal</a></li><li class="header_admin_left"><img src="" alt="" /><a href="/portal" target="_blank"> </a></li><li class="header_admin_right"><img src="" alt="" /><a href=""> </a></li></ul></div><div id="page-body"><div id="tabs" class="clearfix"><ul><li ></li><li ></li><li ></li><li ></li><li ></li><li  id="activetab"></li></ul></div><!--
<div class="panel"> --><div id="wrapper"><div id="content" class="clearfix"><div id="menu_close" style="display: none;"><p><a href="javascript:ShowHideMenu('menu','menu_close', 'main', 'expended_main');"><img src="http://illiweb.com/fa/admin/icones/show_menu.png" alt="Mostrar o menu" title="Mostrar o menu" /></a></p></div><div id="menu" ><p id="hide-menu"><a href="javascript:ShowHideMenu('menu','menu_close', 'main', 'expended_main');"><img src="http://illiweb.com/fa/admin/icones/hide_menu.png" alt="Esconder o menu" title="Esconder o menu" /></a></p>


<div class="header"> </div>

<div class="coins-top">
          <div class="left-top">  <img src="http://illiweb.com/fa/admin/icones/small_ico/gestion_points.png" align="absmiddle"> Administração</div><img src="http://illiweb.com/fa/admin/icones/top-right-gris.png" align="right" class="corner-right"></div><br clear="all" /><div class="coins-border">
            <div class="submenu"><a href="../../administrador/index.php" ><span>Mural</span></a></div>
            <div class="submenu"><a href="../../administrador/pesquisar.php" ><span>Pesquisar Utilizador</span></a></div>
            <div class="submenu"><a href="../../administrador/mensagens.php" ><span>Mensagens</span></a></div>
</div><div class="coins-bottom"><div class="left-bottom"></div><img src="http://illiweb.com/fa/admin/icones/bottom-right-blanc.png" align="right"></div><br clear="all" /><br /><div class="coins-top">
              <div class="left-top">  <img src="http://illiweb.com/fa/admin/icones/small_ico/support.png" align="absmiddle"> Projectos</div><img src="http://illiweb.com/fa/admin/icones/top-right-gris.png" align="right" class="corner-right"></div><br clear="all" /><div class="coins-border">
                <div class="submenu"><a href="../../administrador/myprojects.php" ><span>Os Meus Projectos</span></a></div>
                <div class="submenu"><a href="../../administrador/criar.php" ><span>Criar Nova Página</span></a></div>
                <div class="submenu"><a href="../../administrador/lastprojects.php" ><span>Ver Últimos Projectos</span></a></div>

                
                </div>
                
              <div class="coins-bottom"><div class="left-bottom"></div><img src="http://illiweb.com/fa/admin/icones/bottom-right-blanc.png" align="right"></div><br clear="all" /><br /><div class="coins-top">
                <div class="left-top">  <img src="http://illiweb.com/fa/admin/icones/small_ico/galerie.png" align="absmiddle"> Perfil</div><img src="http://illiweb.com/fa/admin/icones/top-right-gris.png" align="right" class="corner-right"></div><br clear="all" /><div class="coins-border">
                  <div class="submenu"><a href="../../administrador/perfil.php" ><span>O Meu Perfil</span></a></div>
                  <div class="submenu"><a href="../../administrador/faq.php" ><span>FAQ</span></a></div>
                  </div><div class="coins-bottom"><div class="left-bottom"></div><img src="http://illiweb.com/fa/admin/icones/bottom-right-blanc.png" align="right"></div><br clear="all" /><br /></div><div id="main" ><div id="main-content">
                  <h2>Criar Menu</h2><blockquote class="block_left">
                    <p class="explain">Insira as páginas que deseja adicionar ao menu.</p>
                  </blockquote>
                  <br />
			  <font size="3">
			  
			  <form action="<? $url=templates(); echo $url."?id_projecto=".$registos2['id_projecto']."&id_pagina=".$registos3['id_pagina'] ?>" method="POST">
			  
			  1ª Pagina: <input type="text" name="page1" disabled="Index" readonly="readonly" value="Index">
			  <br><p>
			  
			  <div id='TextBoxesGroup'>
					<div id="TextBoxDiv1">

						<label>Nova Página : </label><input type='textbox' id='textbox1' name="textbox1">
					</div>
			  </div>
			  
			  
			  <input type='button' value='Adicionar Página' id='addButton'>
<input type='button' value='Remover Página' id='removeButton'>
			</font>

<br><br><br />

<div align="right"><input type="submit" value="Criar Projecto"></div>
			</form>


<br /><br />
			  
			  

<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="top" width="45%"> </td></tr></table></div><!--
closing tag for #main-content --></div><!--
closing tag for #main --><div id="tools" ></div><!--
closing tag for #tools --></div><!--
closing tag for #content --></div><!--
closing tag for #wrapper --><div class="clear"></div><!--
We request you retain the full copyright notice below including the link to www.phpbb.com.This not only gives respect to the large amount of time given freely by the developersbut also helps build interest, traffic and use of phpBB2. If you (honestly) cannot retainthe full copyright we ask you at least leave in place the "Powered by phpBB" line, with"phpBB" linked to www.phpbb.com. If you refuse to include even this then support on ourforums may be affected.The phpBB Group : 2006--></div><!--
closing tag for #page-body --><div id="page-footer"></div><a name="down"></a></div></div></div></body></html>


"Se algum dia sentires um vazio dentro de ti.. come que isso é fome xD"

Share this post


Link to post
Share on other sites
brunoais

Tens aí um código difícil de ler!

Tu tens aí no teu código <? em vez de <?php. Vê se esse código é executado pelo php.

O validador de xHTML diz: "52 Errors, 1 warning"

Por exemplo:

<input type='textbox' id='textbox1' name="textbox1">

Tens 2 erros:

textbox n é um type válido.

A tag input não é fechada

Põe o output do teu programa a validar no http://validator.w3.org e corrige os erros. Depois volta aqui a pedir ajuda ;)


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
Grufa

Já consegui resolver o problema!

Era mesmo por causa do html como alguns de voces disseram  :(

Abraços!


"Se algum dia sentires um vazio dentro de ti.. come que isso é fome xD"

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.