Ungewollt Doppelt ....

Alles, was PHP betrifft, kann hier besprochen werden.

Ungewollt Doppelt ....

Postby Makconner » 12. March 2007 12:07

Ungewollt Doppelt ....

Problem!
Ich habe eine einfaches Script... welches eine Mysql Anweisung ausführt.

Unter Internet Explorer wird diese genau ein mal ausgeführt. (alles OK)
Unter Firefox wird diese zwei mal ausgeführt. (Fehler)

Es geht hier nur um die mysql Anweisung. Die Rückgabe der Browseranzeige kommt in beiden Fällen nur ein mal.. also eine Anzeige auf dem Bildschirm ist Fehlerfrei.

Ich verfolge das Problem seit mehreren Monaten und habe X Leute befragt.
Ich weiß keine Lösung... was macht der Firefox anders?
User avatar
Makconner
 
Posts: 153
Joined: 14. February 2006 16:00

Postby Makconner » 12. March 2007 13:28

Code: Select all
<?
session_start();
load_values();
no_conn();
//======================================
Henrie();
//======================================
no_conn_close();

function Henrie()
{
if($_GET['Apfel']<>0)
{
   $zeit=date('s');
   if($check<>$zeit)
   {
   $sql='UPDATE noma_account set Inge=Inge+30 where Inge>0 and id='.$_GET['Apfel'].';';mysql_query($sql);      
   $sql='UPDATE noma_account set Inge=Inge+31 where Inge=0 and id='.$_GET['Apfel'].';';mysql_query($sql);   
   $sql='UPDATE noma_account set Gerda=3 where (Gerda=1 or Gerda=0) and id='.$_GET['Apfel'].';';mysql_query($sql);   
   $check=$zeit;      
   }      
}   
}

function load_values()
{
$_SESSION['online']=1;
}
//==============================================================================
function no_conn()
{
if($_SESSION['online'] == 1)
   {
$Server="localhost";
$Benutzer="conner";
$DB="erste";
$pass="zwei";
$Conn=mysql_connect($Server,$Benutzer,$pass);
mysql_select_db($DB,$Conn);      
   }
}

//==============================================================================

function  no_conn_close()
{
if($_SESSION['online'] ==1)
   {
$Server="localhost";
$Benutzer="conner";
$DB="erste";
$pass="zwei";
$Conn=mysql_connect($Server,$Benutzer,$pass);
mysql_close($Conn);      
   }
}
?>


Dieses Script läuft auf dem Server.
Habe ich etwas darin was diese Dopplung verursacht?

PS: Alle wichtigen Werte (zB PW) wurden durch Erdachte ersätzt.
User avatar
Makconner
 
Posts: 153
Joined: 14. February 2006 16:00

Postby Makconner » 12. March 2007 14:40

inzwischen habe ich das script voll zusammengepackt...

$Server="eins";
$Benutzer="zwei";
$DB="drei";
$pass="vier";
$Conn=mysql_connect($Server,$Benutzer,$pass);
mysql_select_db($DB,$Conn);
//======================================
if($_GET['ULF']<>0)
{
$zeit=date('s');
if($check<>$zeit)
{
$sql_1='UPDATE noma_account set Gerda=Gerda+30 where Gerda>0 and id='.$_GET['ULF'].';';mysql_query($sql_1);
$sql_2='UPDATE noma_account set Gerda=Gerda+31 where Gerda=0 and id='.$_GET['ULF'].';';mysql_query($sql_2);
$sql_3='UPDATE noma_account set INGE=3 where (INGE=1 or INGE=0) and id='.$_GET['ULF'].';';mysql_query($sql_3);
$check=$zeit;
}
}
//======================================
$Conn=mysql_connect($Server,$Benutzer,$pass);
mysql_close($Conn);



Selbes Problem... der Fehler ist immer noch im script... oder anders wo.. keine Ahnung... need Help
User avatar
Makconner
 
Posts: 153
Joined: 14. February 2006 16:00

Postby Kenshin » 12. March 2007 23:40

Hmm, das ist jetzt zwar nur ins Blaue geraten, aber vllt hilfts, wenn du im query das ; weglaesst. Das kommt dort normal naemlich nicht hin. Wenns nicht hilft, eventuell die Syntax etwas genauer schreiben.

statt:
Code: Select all
$sql_1='UPDATE noma_account set Gerda=Gerda+30 where Gerda>0 and id='.$_GET['ULF'].';';mysql_query($sql_1);


eher sowas:
Code: Select all
(...)
$sql_1="UPDATE `noma_account` SET `Gerda` = `Gerda` + '30' WHERE `Gerda` > '0' AND `id` = '$_GET[ULF]'";
if (!mysql_query($sql_1)) echo mysql_error();
(...)


greetz,
Kenshin
User avatar
Kenshin
 
Posts: 23
Joined: 30. August 2006 10:55
Location: Munich (Germany)


Return to PHP

Who is online

Users browsing this forum: No registered users and 2 guests