Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

[wie is online script] meerdere personen worden weergegeven

Pagina: 1
Acties:
  • 186 views

Verwijderd

Topicstarter
Hi, ik heb een wie is online script voor een ledensysteem. Alleen het probleem is dat hij gasten 2 keer laat zien. Kan iemand zien wat er eigenlijk fout is?

// Online

$time = time();
$time2 = time()-240;
$time3 = date("H:i:s");

@mysql_query("DELETE FROM online WHERE tijd < '".$time2."'");

$select3 = "SELECT * FROM online WHERE ip = '".$_SERVER['REMOTE_ADDR']."'";
$query3 = @mysql_query($select3);
$aantal3 = @mysql_num_rows($query3);

if($ingelogd == 0){
$naam = "0";
} else {
$naam = $_COOKIE['userid'];
}

if($aantal3 == 0){
@mysql_query("INSERT INTO online (ip,userid,pagina,pagina2,tijd,tijd2) VALUES ('".$_SERVER['REMOTE_ADDR']."','".$naam."','".$pagina_online."','".$pagina_online2."','".$time."','".$time3."')");
} else {
@mysql_query("UPDATE online SET userid = '".$naam."', pagina = '".$pagina_online."', pagina2 ='".$pagina_online2."', tijd = '".$time."', tijd2 = '".$time3."' WHERE ip = '".$_SERVER['REMOTE_ADDR']."'");
}

  • Nielsvr
  • Registratie: Maart 2004
  • Laatst online: 31-10 10:36
Je doet aan fout onderdrukking (Dat met die @ voor de functies) wat heel erg smerig is. Haal die eerst eens weg en laat eens wat foutmeldingen zien als die er zijn. Beetje schamele uitleg...

  • TRON
  • Registratie: September 2001
  • Laatst online: 17-11 09:59
bitking, ik wil je graag helpen, alvast een tip: gebruik namen voor variabelen en voor kolomnamen waarachter een duidelijke logica zit. Dat zorgt er in ieder geval voor dat je (en anderen) sneller kan inzien waar eventueel de fout zit.

Hou er ook rekening mee dat de waarde van $_COOKIE['userid'] input is vanuit de gebruiker. Het is mogelijk voor een gebruiker om deze waarde aan te passen met alle mogelijke gevolgen van dien.

Nog een paar vragen/tips:
- worden gasten altijd 2 keer opgenomen in de database?
- kan je regelrecht in de database kijken of gasten ook daadwerkelijk tweemaal voorkomen,
- haal (zoals Nielsvr aangeeft) het @-teken weg,
- maak gebruik van de functie mysql_err() na elke query om te debuggen.

Leren door te strijden? Dat doe je op CTFSpel.nl. Vraag een gratis proefpakket aan t.w.v. EUR 50 (excl. BTW)


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
[wie is online script]?? :X Wat dacht je van [PHP]? ;)

En als het PHP betreft hoort het niet in WEB maar in PRG. Zie Waar hoort mijn topic?. Verder hebben we code tags uitgevonden voor code i.p.v. de sub-tag. Dat maakt je code stukken leesbaarder. En tot slot verwachten we een hele bak meer eigen inzet, waar je regelmatig op gewezen bent. We blijven niet aan de gang. Lees onze Programming Beleid Quickstart en onze Korte FAQ nou gewoon eens door. Misschien is het handig voortaan ook eens te debuggen (Debuggen: Hoe doe ik dat?) voordat je een topic opent. En dat los van de tips die hierboven al gegeven zijn.

[ Voor 37% gewijzigd door RobIII op 16-07-2008 20:17 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Dit topic is gesloten.