php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #24952 PHP 4.3.2 + Postgresql 4.3.x without SSL inserts 2 elements
Submitted: 2003-08-05 11:42 UTC Modified: 2008-08-25 16:11 UTC
Votes:5
Avg. Score:3.0 ± 1.7
Reproduced:3 of 4 (75.0%)
Same Version:0 (0.0%)
Same OS:0 (0.0%)
From: sirber at myrealbox dot com Assigned:
Status: Not a bug Package: PostgreSQL related
PHP Version: 4.3.2 OS: Gentoo Linux
Private report: No CVE-ID: None
 [2003-08-05 11:42 UTC] sirber at myrealbox dot com
Description:
------------
Gentoo make.conf:

USE="-X -gnome -kde -qt perl 3dnow mmx crypt -cups gd gif -gtk imap -java jpeg mbox ncurses png
postgres samba sse ssl tcpd zlib x86 apache"

With apache (1 or 2), PHP 4.3.2-x and Postgresql 7.3.2-x,
a pg_query($ConenctID, "INSERT INTO ..."); insert 2 elements. If I add mod_ssl, and use ssl, the same page insert only 1 element, which is normal. 

We made a lot of tests, and the pg_query is executed only once in both case, and the page is loaded only once too. 

Reproduce code:
---------------
pg_query($ConnectID,"INSERT INTO tblassdivision (asscontratid, dateeffective, dateterminaison, concontactid, entdivisionid, conadresseid, creepar, creedate) values ( '$contratID', $txtDateEffective, $txtDateTerminaison, '$contactID', '$divisionID',  '$conAdrID' ,'$sUserID', now())");

Expected result:
----------------
1 new row

Actual result:
--------------
2 new rows without mod_ssl
1 new row with mod_ssl

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2003-08-05 11:48 UTC] sirber at myrealbox dot com
Seems to bug with Internet Explorer only...
 [2003-08-05 12:35 UTC] grimskonk at hotmail dot com
i would also like to add that we tried something to find the bug.. and it came up with a really weird error.

In that same page where we only insert one row, we tried adding 2 new rows with a SELECT CURRVAL inbetweeen.

Like this : 
//_____________________1st insert_______________________
pg_query($ConnectID,"INSERT INTO tblassdivision ....")
rsCur = pg_fetch(pg_query(SELECT currval from tblass.")
<script> alert(rsCur->currval) </script>

//_____________________2nd insert_______________________
pg_query($ConnectID,"INSERT INTO tblassdivision ....")
rsCur = pg_fetch(pg_query(SELECT currval from tblass.")
<script> alert(rsCur->currval) </script>

It inserted 4 rows with the ids 51,52,53,54 
We got 2 popups.. but the weird thing is that it poped
[53] and [54]   instead of   [51][53] / [52][54]

As if a set of inserts were being made BEFORE the actual code, AND THEN it proceeds to the actual code
 [2003-08-05 14:45 UTC] iliaa@php.net
Sorry, but your problem does not imply a bug in PHP itself.  For a
list of more appropriate places to ask for help using PHP, please
visit http://www.php.net/support.php as this bug system is not the
appropriate forum for asking support questions. 

Thank you for your interest in PHP.

If you cannot replicate the error accross all browsers then this is a browser issue and not a PHP one.
 [2003-08-05 16:12 UTC] sirber at myrealbox dot com
I got it few times on Mozilla, but it's at ~90% with IE.
 [2003-08-05 18:05 UTC] sniper@php.net
Broken/invalid HTML has been the cause for these kind of problems before. It sometimes causes the page to get reloaded  and thus you get duplicate entries in your DB.

 [2003-08-06 08:00 UTC] sirber at myrealbox dot com
Ths page isn't reloaded, and it's processed only 1 time. I think there is a conflict between mod_php and apache, coz when the page goes through mod_ssl it's working #1...
 [2004-01-12 11:37 UTC] sirb3r at yahoo dot ca
The bug strike again, in Internet Explorer, whitout SSL.

PostgreSQL: 7.3.5
PHP: 4.3.4-r2
Apache: 2.0.48-r1

From apache logs:
the pages are asked only once: page1 - save - page2
From Javascript:
the output from page "save" is only sent once (tested with "alert")
From PHP:
the script is executed twice:
12 2004-01-12 11:08:34.834394 Ajout de contrat: PID:10607 ID:3200
13 2004-01-12 11:08:34.900397 Ajout de contrat: PID:24142 ID:3201

with this code:
pg_query("INSERT INTO tblasscontrat (enttitulaireid, refassureurid, nom, numero, dateeffective, dateterminaison , ident_emp, creepar, type) VALUES (" . $entTitulaireID . ", " . $selAssureur . ", '" . $txtNom . "', '" . $txtNo . "', " .$txtDateEffective . ", " . $txtDateTerminaison . ", " . GetMyPid() . ", " . $sUserID . ", " . $Type.")");
$sqlLastID = pg_query("SELECT currval('tblasscontrat_asscontratid_seq') AS lastid FROM tblasscontrat");
$rsLastID = pg_fetch_object($sqlLastID);
$rsLastID = $rsLastID->lastid;
$req = "INSERT INTO tbllog (message) VALUES ('Ajout de contrat: PID:" . GetMyPid() . " ID:" . $rsLastID . "')";
pg_query($req);

Possible cause:

from: Internet Explorer 6.0.2800.1106.XPSP2.030422-1633 - apache - mod_php - postgresql
mod_php execute the scripts 2 times, but only return the first one to apache.
from: Internet Explorer 6.0.2800.1106.XPSP2.030422-1633 - apache - mod_ssl - mod_php - postgresql
the script is only executed once.
On Mozilla 1.5, with or without SSL, the script is only executed once.

I tryed with HTTP 1.0/1.1, with and without proxy (squid), and this error happend on both of my servers, both running gentoo linux.
 [2004-01-13 14:28 UTC] sniper@php.net
Does it happen if your page contains ONLY the code, no HTML at all? 

 [2004-01-19 14:10 UTC] sniper@php.net
No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Open". Thank you.

And too old PHP version anyway.

 [2004-02-11 15:01 UTC] sirb3r at yahoo dot ca
got the bug, not related at all to PHP nor postgresql.

we had an <input type="submit" onclick="document.formu.submit()">

Took 7 months to find it :S
 [2008-08-25 15:30 UTC] test dot lamp at gmail dot com
This is issue because of submitting form for two times.

I found that the form is submitted through javascript as well as in OnSubmit action.
 [2008-08-25 16:11 UTC] pajoye@php.net
Not a bug > bogus (also 4.x is dead now).
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Tue Dec 10 03:01:27 2024 UTC