[PHP]Counter voert alles dubbel in

Pagina: 1
Acties:
  • 118 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Acolyte
  • Registratie: Oktober 2002
  • Laatst online: 28-08-2024
Geloof me, ik ben echt 3 uur bezig geweest en voel me nu een ontzettende noob. Het gaat om deze paar regels code:

PHP:
1
2
3
4
5
6
7
8
9
<?php
  include("datasource.php");
  $db = openDB();  

  //counter gedeelte
  $query = "INSERT INTO counter (stamp, ip) VALUES('".mktime()."', '".$_SERVER['REMOTE_ADDR']."')";
  mysql_query($query,$db);
  checkDB();
?>


Dit moet ervoor zorgen dat op een hele primitieve manier bijgehouden wordt hoeveel bezoekers mijn site trekt. Op zich voegt hij wel in, maar dubbel :?
Als ik 1 keer refresh en daarna direct in de db kijk, zie ik daar 2 x mijn IP staan en een timestamp die soms een seconde verschilt. Ik heb echt alles al geprobeerd om het dubbele weg te halen:

- de site zir niet in frames
- er zijn wat includes, maar geen van hen heeft ook de counter of roept index.php aan (waar de counter in staat)
- als ik de php code los neem en in de db uitprobeer, krijg ik netjes maar 1 entry
- ik heb de code onderaan en bovenaan de pagina gezet, mocht niet baten.

Ik heb nog veel meer geprobeerd, weet zo allemaal niet meer.
Wie kan mij helpen dit op te lossen? Ik heb veel vaker php geschreven en ook veel complexer dan dit, maar dit heb ik nog nooit gehad.

Acties:
  • 0 Henk 'm!

  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 23:23

DizzyWeb

Ondertiteld

Weet je heel zeker dat de code maar 1x voorkomt/geinclude wordt?

Alleen deze code kan het onmogelijk 2x invoeren.

Acties:
  • 0 Henk 'm!

  • sjoerdb2
  • Registratie: Juli 2001
  • Laatst online: 09-05 09:52
Als je nou eens het log van je webserver erbij pakt, misschien vind je dan een 2e request? Misschien zet er ergens een <meta http-equiv='refresh'> oid in? of een javascript redirect?

Kun je eventueel de broncode online zetten?

Acties:
  • 0 Henk 'm!

  • 418O2
  • Registratie: November 2001
  • Laatst online: 22:09
DizzyWeb schreef op vrijdag 12 mei 2006 @ 00:01:
Weet je heel zeker dat de code maar 1x voorkomt/geinclude wordt?

Alleen deze code kan het onmogelijk 2x invoeren.
ligt er aan wat er in die include staat natuurlijk..

Acties:
  • 0 Henk 'm!

  • Cloud
  • Registratie: November 2001
  • Laatst online: 13-06 09:54

Cloud

FP ProMod

Ex-moderatie mobster

Is de gepostte code het enige wat in je bronbestand staat? Want dan is het echt onmogelijk dat die query twee keer uitgevoerd wordt. Dus waarschijnlijk gaat er iets mis in die include, datasource.php.

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana


Acties:
  • 0 Henk 'm!

  • Ramon
  • Registratie: Juli 2000
  • Nu online
Heb je die code in een plaatje staan misschien? En vraag je dat plaatje dan met firefox op? En komt het plaatje dan voor de url te staan in de urlbalk? :P

Dat had ik namelijk toen ik eens een plaatje maakte die bezoekers moest tellen. :P

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
je zou natuurlijk even een UNIQUE constraint kunnen zetten op (ip,timestamp). dan is per seconde maar 1 record per ip mogelijk.

Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 06-06 09:54
wat doet checkDB()?

Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 09-06 21:17
Acolyte schreef op donderdag 11 mei 2006 @ 23:54:
- ik heb de code onderaan en bovenaan de pagina gezet, mocht niet baten.
Heb je hem toen je hem onderin probeerde bovenin weer weggehaald? :P

Het kan niet anders dat de code 2x wordt uitgevoerd. Of doordat je 2 requests naar de pagina doet, of om dat de code 2x wordt uitgevoerd omdat deze 2x voorkomt, in een loopje staat, in een dubbel aangeroepen functie, etc.

Acties:
  • 0 Henk 'm!

  • storeman
  • Registratie: April 2004
  • Laatst online: 22:25
Genoil schreef op vrijdag 12 mei 2006 @ 09:31:
je zou natuurlijk even een UNIQUE constraint kunnen zetten op (ip,timestamp). dan is per seconde maar 1 record per ip mogelijk.
Daat gaat natuurlijk niet goed werken voor een telsysteem, bezoekers kunnen best op exact hetzelfde tijdstip aankomen op de site. De kans is redelijk klein voor een rustige site, maar voor een drukke site zal dit echt niet volstaan.

"Chaos kan niet uit de hand lopen"


Acties:
  • 0 Henk 'm!

  • Brons
  • Registratie: April 2002
  • Laatst online: 04-06 14:11

Brons

Fail!

Acolyte schreef op donderdag 11 mei 2006 @ 23:54:

Als ik 1 keer refresh en daarna direct in de db kijk, zie ik daar 2 x mijn IP staan en een timestamp die soms een seconde verschilt.
Lijkt mij logisch? Iedere keer dat je de pagina refreshed zal er iets in je database komen. Of staat het er 2 keer in per refresh?

Acties:
  • 0 Henk 'm!

  • Blackbird-ce
  • Registratie: September 2005
  • Laatst online: 06-06 07:26
storeman schreef op vrijdag 12 mei 2006 @ 09:54:
[...]


Daat gaat natuurlijk niet goed werken voor een telsysteem, bezoekers kunnen best op exact hetzelfde tijdstip aankomen op de site. De kans is redelijk klein voor een rustige site, maar voor een drukke site zal dit echt niet volstaan.
zelfde tijd én hetzelfde IP? ;)

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 13-06 14:24

Janoz

Moderator Devschuur®

!litemod

Voeg je dit in al je php bestanden toe? In dat geval kan het natuurlijk zijn dat je ook een plaatje ophaald mbv php, een stuk javascript, een iframe vult, uberhaupt frames gebruikt. Sla naast het tijdstip anders ook eens de request url op. Misschien wordt het dan duidelijker.

Het zetten van een unique constraint als 'oplossing' voor dit probleem is natuurlijk de ultieme vorm van het paard achter de wagen spannen

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
Het zetten van een unique constraint als 'oplossing' voor dit probleem is natuurlijk de ultieme vorm van het paard achter de wagen spannen
Nou dat vind ik niet. Ik zag de opmerking van Ramon de Jesus, en dan kun je hoog en laag PHP-en wat je wilt, het komt toch altijd dubbel te staan. Maar ik geef toe dat het meer een soort safeguard is dan een echte oplossing.

[ Voor 17% gewijzigd door Genoil op 12-05-2006 12:52 ]


Acties:
  • 0 Henk 'm!

  • Acolyte
  • Registratie: Oktober 2002
  • Laatst online: 28-08-2024
Ok, bedankt voor de vele replies, maar alles wat hier genoemd wordt heb ik al geprobeerd of is niet van toepassing. Zoals:

- Er worden dingen include, maar in geen van deze bestanden zit een verwijzing naar index.php. Sterker nog, in de meeste includes komt niets anders dan html voor.
- De code staat niet in een plaatje, de counter is voor bezoekers onzichtbaar.
- Het is de bedoeling dat de counter bovenaan elke pagina komt, maar voorlopig is ie echt alleen maar op de index terug te vinden.
- de request url heb ik al wel eens laten opslaan, maar ook die blijft steeds index.php, bovendien had ik er een teller bijgevoegd die verbied dat de code uitgevoerd mag worden als $i = 1. Ook die waarde las ik dan uit, en die was keurig steeds 1, niet 2, zoals zou gebeuren als dezelfde code nog eens werd uitgevoerd.

Hieronder de broncodes van de bestanden, ik dacht dat dat wat teveel van het goede zou zijn, maar als t mag:

index.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
  include("datasource.php");
  $db = openDB();  

  //counter gedeelte
  $query = "INSERT INTO counter (stamp, ip) VALUES('".mktime()."', '".$_SERVER['REMOTE_ADDR']."')";
  mysql_query($query,$db);
  checkDB();
?>
<!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">
<head>
<script type="text/javascript">
  function laatzien(zap) {
   if (document.getElementById) {
   var abra = document.getElementById(zap).style;
    if (abra.display == "block") {
    abra.display = "none";
    } else {
    abra.display= "block";
   }
   return false;
   } else {
   return true;
  }
  }
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Eurlyaid 2006 - Papendal</title>
<link href="css/stijlblad.css" rel="stylesheet" type="text/css" />
</head>

<body>
<table width="200" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="170" height="169" valign="top"><? include("bosk_logo.php"); ?></td>
    <td valign="top"><? include("orange.php"); ?></td>
  </tr>
  <tr>
    <td valign="top"><? include("purple.php"); ?></td>
    <td valign="top" bgcolor="#eedede"><table width="100%" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td width="20" rowspan="2">&nbsp;</td>
        <td height="20">&nbsp;</td>
      </tr>
      <tr>
        <td width="530" valign="top" background="#eedede"><? include("index_main.php");?></td>
      </tr>
      <tr>
      <td height="20">&nbsp;</td>
      </tr>
    </table></td>
  </tr>
</table>
</body>
</html>


datasource.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
  function openDB()
  {
      $connect_id = mysql_pconnect("localhost", "eurlyaid", "******");
      if(!$connect_id) exit;
      mysql_select_db("eurlyaid", $connect_id);
      checkDB();
      return $connect_id;
  }

  function checkDB()
  {
      if(mysql_errno())
      {
          print mysql_error();
          exit;
      }
  }
?>


purple.php
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<table border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="85"><a href="programma.php" target="_self"
      onmouseover="document.programma.src='images/buttons/programma_on.jpg'"
      onmouseout="document.programma.src='images/buttons/programma_off.jpg'">
      [img]"images/buttons/programma_off.jpg"[/img]</a></td>
    <td width="85"><a href="sprekers.php" target="_self"
      onmouseover="document.sprekers.src='images/buttons/sprekers_on.jpg'"
      onmouseout="document.sprekers.src='images/buttons/sprekers_off.jpg'">
      [img]"images/buttons/sprekers_off.jpg"[/img]</a></td>
  </tr>
  <tr>
    <td width="85"><a href="contact.php" target="_self"
      onmouseover="document.contact.src='images/buttons/contact_on.jpg'"
      onmouseout="document.contact.src='images/buttons/contact_off.jpg'">
      [img]"images/buttons/contact_off.jpg"[/img]</a></td>
    <td><a href="sponsoren.php" target="_self"
      onmouseover="document.sponsoren.src='images/buttons/sponsoren_on.jpg'"
      onmouseout="document.sponsoren.src='images/buttons/sponsoren_off.jpg'">
      [img]"images/buttons/sponsoren_off.jpg"[/img]</a></td>
  </tr>
</table>


alle andere includes zijn zoals purple: geen php at all...

[ Voor 21% gewijzigd door Acolyte op 12-05-2006 13:57 ]


Acties:
  • 0 Henk 'm!

  • Blackbird-ce
  • Registratie: September 2005
  • Laatst online: 06-06 07:26
ik zie zelf hier echt geen mogelijkheid dat je code tweemaal wordt uitgevoerd, behalve als de counter ook nog eens in één van de includes staat (maarja, je zegt zelf van niet)...
Weet je zeker dat index_main.php niet ook de counter bezit?

Acties:
  • 0 Henk 'm!

  • Gods Lonely Man
  • Registratie: April 2002
  • Laatst online: 19-02-2024

Gods Lonely Man

A sidekick's sidekick

Heel vreemd. :|
Wat zie je als je
PHP:
1
mysql_query($query,$db);
vervangt door een simpele
PHP:
1
echo 1;
?
Acolyte schreef op vrijdag 12 mei 2006 @ 13:56:
- de request url heb ik al wel eens laten opslaan, maar ook die blijft steeds index.php, bovendien had ik er een teller bijgevoegd die verbied dat de code uitgevoerd mag worden als $i = 1. Ook die waarde las ik dan uit, en die was keurig steeds 1, niet 2, zoals zou gebeuren als dezelfde code nog eens werd uitgevoerd.
Staat er in je code ook letterlijk het volgende?
PHP:
1
if($i = 1)
:P

It was that kind of a crazy afternoon, terrifically cold, and no sun out or anything, and you felt like you were disappearing every time you crossed a road.

If it weren't for Carbon-14, I wouldn't date at all.


Acties:
  • 0 Henk 'm!

Anoniem: 49627

En heb je al eens gekeken naar je browser? Voert die niet een conditionele request uit oid?

Acties:
  • 0 Henk 'm!

  • JeRa
  • Registratie: Juni 2003
  • Laatst online: 30-04 10:28

JeRa

Authentic

Ik heb dit probleem ook gehad, toen lag het bij mij aan de HTTP errors :) ik had een .htaccess waarin ik aparte pagina's had opgegeven voor HTTP 403, 404, etc. Deze pagina's tellen ook bezoekers.

Maar omdat ik geen favicon.ico had, kreeg ik zo'n beetje bij elke request twee hits erbij. Eéntje voor de opvraag van de pagina, en nog ééntje voor de custom error pagina (die ik vanzelfsprekend niet te zien kreeg ;)).

ifconfig eth0 down


Acties:
  • 0 Henk 'm!

  • Acolyte
  • Registratie: Oktober 2002
  • Laatst online: 28-08-2024
PsychoBoy schreef op vrijdag 12 mei 2006 @ 14:21:
Heel vreemd. :|
Wat zie je als je
PHP:
1
mysql_query($query,$db);
vervangt door een simpele
PHP:
1
echo 1;
?

[...]

Staat er in je code ook letterlijk het volgende?
PHP:
1
if($i = 1)
:P
Code heb ik inmiddels weggedaan, maar er stond wel degelijk $i == 1 hoor ;)

Die door echo 1 vervangen zal ik eens doen.
Anoniem: 49627 schreef op vrijdag 12 mei 2006 @ 14:29:
En heb je al eens gekeken naar je browser? Voert die niet een conditionele request uit oid?
Ik heb hier FF en IE en beiden hebben het euvel.
Ook als ik eens kijk naar requests van andere bezoekers zie ik steeds dubbele invoer. Het rare is echter dat het soort van willekeurig gaat. De ene IP heeft maar 1 stamp, de andere soms wel 3 (dit kan natuurlijk ook gewoon een refresh zijn van de andere kant, maar soms zitten de stamps 1 of 2 seconden uit elkaar dat moet haast wel duiden op een repeat binnenin het script) :? Stukkie uit de DB:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
                                    stamp               IP
    Wijzigen    Verwijderen     1147435814  62.251.29.***    
    Wijzigen    Verwijderen     1147435813  62.251.29.***    
    Wijzigen    Verwijderen     1147435261  80.126.252.***   <-- duidelijk een refresh
    Wijzigen    Verwijderen     1147435203  80.126.252.***   
    Wijzigen    Verwijderen     1147435202  80.126.252.***   
    Wijzigen    Verwijderen     1147434021  194.138.26.***   
    Wijzigen    Verwijderen     1147434021  194.138.26.***   
    Wijzigen    Verwijderen     1147434011  194.138.26.***   
    Wijzigen    Verwijderen     1147433953  213.34.51.***    
    Wijzigen    Verwijderen     1147407187  85.146.105.***   
    Wijzigen    Verwijderen     1147405899  82.157.130.***   
    Wijzigen    Verwijderen     1147433953  213.34.51.***    
    Wijzigen    Verwijderen     1147427833  86.85.87.***     
    Wijzigen    Verwijderen     1147425654  83.137.136.***   
    Wijzigen    Verwijderen     1147425457  194.109.244.***      
    Wijzigen    Verwijderen     1147423944  217.17.138.***   
    Wijzigen    Verwijderen     1147423252  86.82.187.***    
    Wijzigen    Verwijderen     1147423252  86.82.187.***    
    Wijzigen    Verwijderen     1147422399  194.151.13.***   
    Wijzigen    Verwijderen     1147421118  130.37.210.***   
    Wijzigen    Verwijderen     1147421118  130.37.210.***   
    Wijzigen    Verwijderen     1147419844  81.205.80.***    
    Wijzigen    Verwijderen     1147419744  81.205.80.***    
    Wijzigen    Verwijderen     1147414532  66.249.65.***    
    Wijzigen    Verwijderen     1147405898  82.157.130.***

Acties:
  • 0 Henk 'm!

  • Wim-Bart
  • Registratie: Mei 2004
  • Laatst online: 10-01-2021

Wim-Bart

Zie signature voor een baan.

Verander gewoon je code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
  include("datasource.php"); 
  if (!isset($bCounter))
  {
    $bCounter = TRUE;
    if (!isset($db))
    {
      $db = openDB();   
    }
    //counter gedeelte 
    $query = "INSERT INTO counter (stamp, ip) VALUES('".mktime()."', '".$_SERVER['REMOTE_ADDR']."')"; 
    mysql_query($query,$db); 
    checkDB(); 
  }

Beheerders, Consultants, Servicedesk medewerkers. We zoeken het allemaal. Stuur mij een PM voor meer info of kijk hier De mooiste ICT'er van Nederland.


Acties:
  • 0 Henk 'm!

  • ReverendBizarre
  • Registratie: December 2001
  • Laatst online: 24-03-2021
wim-bart schreef op vrijdag 12 mei 2006 @ 14:47:
Verander gewoon je code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
  include("datasource.php"); 
  if (!isset($bCounter))
  {
    $bCounter = TRUE;
    if (!isset($db))
    {
      $db = openDB();   
    }
    //counter gedeelte 
    $query = "INSERT INTO counter (stamp, ip) VALUES('".mktime()."', '".$_SERVER['REMOTE_ADDR']."')"; 
    mysql_query($query,$db); 
    checkDB(); 
  }
Dat is natuurlijk meer een workaround dan een daadwerkelijke oplossing voor het probleem (met andere woorden, het zou niet nodig moeten zijn om uberhaupt die constructie te maken). Bovendien zou dat geen resultaat hebben als de dubbele entries inderdaad veroorzaakt worden door aparte HTTP requests. Het is echter wel een idee als debug methode. Om er echt 100% zeker van te zijn dat dit stukje code nergens anders voorkomt moet je anders gewoon deze regel eens aanpassen dat hij ipv de timestamp gewoon 0 ofzo invoert. Als je dan twee records ziet waarvan er maar eentje 0 is dan wordt er ergens anders nog wat geinsert, als ze allebei 0 zijn dan wordt dit stuk code toch twee keer doorlopen of wordt het hele script twee keer gedraaid (en dat laatste kan je weer controleren door een constructie als hierboven erom heen te zetten).

Sowieso zou ik dingen als die gewoon in een apart bestand zetten en met require_once() includen. Hetzelfde geldt voor die database functies. In principe moet je include() alleen gebruiken voor dingen die meerdere keren in je script voor zouden mogen komen. Op het moment dat je files gaat includen die functies of classes bevatten moet je gewoon require_once gebruiken. Hetzelfde geldt voor files die stukken globale code hebben die maar een keer uitgevoerd mogen worden.

Acties:
  • 0 Henk 'm!

  • Acolyte
  • Registratie: Oktober 2002
  • Laatst online: 28-08-2024
It gets even stranger :?
Als ik echo 1; doe, krijg ik keurig ook maar 1 x een 1 terug... Geen twee 1'en zoals zou gebeuren wanneer de code twee keer wordt uitgevoerd.

@wim-bart:
wim-bart schreef op vrijdag 12 mei 2006 @ 14:47:
Verander gewoon je code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
  include("datasource.php"); 
  if (!isset($bCounter))
  {
    $bCounter = TRUE;
    if (!isset($db))
    {
      $db = openDB();   
    }
    //counter gedeelte 
    $query = "INSERT INTO counter (stamp, ip) VALUES('".mktime()."', '".$_SERVER['REMOTE_ADDR']."')"; 
    mysql_query($query,$db); 
    checkDB(); 
  }
Nice try, maar ook deze heeft niet gewerkt? Ik krijg nog steeds dubbele waarden. Ik snap er niets van :/

Acties:
  • 0 Henk 'm!

  • NetForce1
  • Registratie: November 2001
  • Laatst online: 19:56

NetForce1

(inspiratie == 0) -> true

Acolyte schreef op vrijdag 12 mei 2006 @ 15:32:
[...]

It gets even stranger :?
Als ik echo 1; doe, krijg ik keurig ook maar 1 x een 1 terug... Geen twee 1'en zoals zou gebeuren wanneer de code twee keer wordt uitgevoerd.
Wat als je een countertje in je sessie bijhoud, increment die dan ook met een bij iedere harde refresh?

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 09-06 21:17
Kijk gewoon even in de acceslog van je browser waar die 2de request vandaan komt. Het moge inmiddels duidelijk zijn dat je index.php 2x wordt uitgevoerd.
De tip van JeRa kon wel eens de gouden zijn.

Acties:
  • 0 Henk 'm!

  • Acolyte
  • Registratie: Oktober 2002
  • Laatst online: 28-08-2024
frickY schreef op vrijdag 12 mei 2006 @ 15:49:
Kijk gewoon even in de acceslog van je browser waar die 2de request vandaan komt. Het moge inmiddels duidelijk zijn dat je index.php 2x wordt uitgevoerd.
De tip van JeRa kon wel eens de gouden zijn.
1. Op de server staan idd accesslogs, maar daar kan ik niet uit halen of ik de request 2 keer doe.
2. De site heeft een 404-pagina die je zelf kunt aanpassen. Die is ook actief, maar kan iemand mij uitleggen hoe die functie kan dwarsbomen bij het registeren van een hit op een pagina die wél gewoon bestaat? Laadt ie dan alsnog die not-found pagina ofzo? Ikke niet snap. Heb ook geen idee hoe ik dat uit zou kunnen zetten.

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Je browser probeert bijvoorbeeld ook je favicon in te laden; als die niet bestaat dan zal je 404 pagina geladen worden. Als je 404 pagina ook een hit count of dmv een location header redirect naar je index dan is dat te verklaren. De accesslogs van je webserver of de headers van je browserverkeer sniffen zou daar uitsluitsel over moeten kunnen geven.

[ Voor 5% gewijzigd door crisp op 12-05-2006 16:16 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • user109731
  • Registratie: Maart 2004
  • Niet online
bestand favicon.ico zorgt voor die kleine pictogrammen die je soms voorin de adresbalk ziet staan (zoals hier op GoT).

Deze word door de browser ook opgevraagd bij het laden van de pagina, net zoals een normale afbeelding. Als deze niet bestaat -> 404 page uitgevoerd.

Zet anders even een favicon.ico bestandje in de root van je site, en dan kijken watie dan doet.

Acties:
  • 0 Henk 'm!

  • Acolyte
  • Registratie: Oktober 2002
  • Laatst online: 28-08-2024
ok, mits de 404 pagina weer linkt naar de index.php óf wanneer de counter ook is opgenomen in dat bestand. Maar dat is zeer zeker niet het geval.

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

En heb je al gecontroleerd wat voor requests de browser allemaal doet? Dat kan bijvoorbeeld heel handig met de LiveHTTPheaders plugin in Firefox :)

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Acolyte
  • Registratie: Oktober 2002
  • Laatst online: 28-08-2024
crisp schreef op vrijdag 12 mei 2006 @ 17:05:
En heb je al gecontroleerd wat voor requests de browser allemaal doet? Dat kan bijvoorbeeld heel handig met de LiveHTTPheaders plugin in Firefox :)
Je bent een held _/-\o_
Die header extention gaf me goed inzicht in wat er nou werkelijk werd aangevraagd. Wat bleek nou? Kijk effe naar het volgende stukkie code:

code:
1
        <td width="530" valign="top" background="#eedede"><? include("index_main.php");?></td>


Zie je het? background is een argument dat een plaatje probeert te laden. #eedede is geen plaatje, maar een hex-kleur. Maar toch gaat FF (en elke andere browser) op zoek naar het bestand. En dus doet ie een request voor 'http://sitenaam.nl/#eedede'. En sinds het een # betreft, is dat een link binnen index.php (die niet bestaat, maar ok). Zodoende roept ie dus 2x index.php aan.

Nou, ik vond dat toch wel vergezocht hoor :P 8)7

In ieder geval, hij lijkt nu te functioneren zoals het hoort. Iedereen ontzettend bedankt voor het meehelpen.

Acties:
  • 0 Henk 'm!

  • user109731
  • Registratie: Maart 2004
  • Niet online
Daar is bgcolor toch voor? Weer een argument om je opmaak netjes in een stylesheet te zetten :).
Maar iig mooi dat het opgelost is :)

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

HTML:
1
<td width="530" valign="top" background="#eedede"><? include("index_main.php");?></td>

background is helemaal geen geldig attribuut voor een td :P
#eedede is echter wel een geldig URI (fragment identifier, base location implied)
Grote prutser schreef op vrijdag 12 mei 2006 @ 22:09:
Daar is bgcolor toch voor? Weer een argument om je opmaak netjes in een stylesheet te zetten :).
Maar iig mooi dat het opgelost is :)
bgcolor bestaat (nog) wel maar is deprecated wat wil zeggen dat het gebruik ervan is afgeraden omdat inderdaad CSS daarvoor bedoelt is (net als dat tabellen ook niet voor opmaak bedoelt zijn).

Maar dit was inderdaad wel een zoekertje waar je niet zomaar zo 1-2-3 achterkomt. Meten is weten blijkt maar weer ;)

[ Voor 73% gewijzigd door crisp op 12-05-2006 23:39 ]

Intentionally left blank

Pagina: 1