[PHP] Controleren online...

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Mittnick
  • Registratie: September 2002
  • Laatst online: 15-09 19:55
Ik ben bezig met een avatar-systeem die random-icons laat zien, en heb daar tevens een database aan gehangen, om daarbij ook mijn community's bij te houden! Nu maak ik dus gebruik van een exit.php, die dus bijhoudt als ik op een link klik, hoevaak erop is geklikt..

Nu wil ik mijn exit.php zo maken, dat hij eerst controleerd of de community nog online is, en zo niet; dat hij dan wordt doorverwezen naar exit.php?page=down oid.

Ik heb alleen geen idee hoe ik dit voor elkaar moet krijgen :(

Huidige Exit.php

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<? 
ob_start(); 
include 'includes/config.inc.php'; 
$query = mysql_query("SELECT id, url, kliks FROM mittnick_icon WHERE id = '".intval($_GET['id'])."'"); 
$bestaat = mysql_num_rows($query); 
if ($bestaat == "0"){ 
header("Location: index.php"); 
exit; 
} else { 
$banner = mysql_fetch_array($query); 
$kliks = $banner['kliks'] + 1; 
mysql_query("UPDATE mittnick_icon SET kliks = '".$kliks."' WHERE id = '".intval($_GET['id'])."'"); 
header("Location: ".$banner['url'].""); 
} 
ob_end_flush(); 
?>

Acties:
  • 0 Henk 'm!

  • pachacuti
  • Registratie: Januari 2002
  • Laatst online: 14-09 12:40
Met de functie fsockopen kan je testen of bepaalde sites bereikbaar zijn.

Acties:
  • 0 Henk 'm!

  • Mittnick
  • Registratie: September 2002
  • Laatst online: 15-09 19:55
Ik heb nu m'n script aangepast; en hij werkt nog niet zoals ik wil.. ik krijg nl. gewoon de 'pagina kan niet worden weergegeven' melding, als ik een site link die niet bestaat..

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
27
<? 
ob_start(); 
include 'includes/config.inc.php'; 

$query = mysql_query("SELECT id, url, kliks FROM mittnick_icon WHERE id = '".intval($_GET['id'])."'"); 
$bestaat = mysql_num_rows($query); 

if ($bestaat == "0") 
{ 
  header("Location: index.php"); 
  exit; 
} 
else 
{ 
  if(fsockopen($banner['url']) == "FALSE") {
  echo 'hallo?';
  } 
  else 
  {
    $banner = mysql_fetch_array($query); 
    $kliks = $banner['kliks'] + 1; 
    mysql_query("UPDATE mittnick_icon SET kliks = '".$kliks."' WHERE id = '".intval($_GET['id'])."'"); 
    header("Location: ".$banner['url'].""); 
  }
} 
ob_end_flush(); 
?>


Zien jullie wat ik fout doe?

Acties:
  • 0 Henk 'm!

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022

Reveller

Hopla!

Wordt die nul in regel 8 door die quotes nu niet als een string beschouwd waarmee geen vergelijking te maken valt? Zit in de startblokken om naar huis te gaan, dus heb niet je hele code bekeken, maar het is het eerste wat me opvalt. Die quotes moeten sowieso weg....nul is hier een integer, geen string...

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


Acties:
  • 0 Henk 'm!

  • Mittnick
  • Registratie: September 2002
  • Laatst online: 15-09 19:55
Nee, dat werkt wel.. hij gaat gewoon door naar de index.php als er gewoon exit.php wordt ingevult.. het probleem is dat als ik doorlink naar een pagina die niet bestaat dat ik gewoon 'Deze pagina kan niet worden weergegven' error krijg, ipv mijn eigen echo die hij moet weergeven :(

Acties:
  • 0 Henk 'm!

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022

Reveller

Hopla!

Dan kom ik toch weer terug op die quotes. Ik kan niet zien waar je $banner vult en welke info die variabele bevat, dus ik ga er vanuit dat het probleem niet daar zit. Wel kan ik je deze hint geven: "FALSE" is niet hetzelfde als FALSE. Vergelijk
PHP:
1
2
3
4
5
6
$test = 'FALSE';

if ($test == FALSE)
  echo 'de variabele "test" bestaat niet';
else
  echo 'de variabele "test" bestaat wel'; // output
maar met
PHP:
1
2
3
4
5
6
$test = FALSE;

if ($test == FALSE)
  echo 'de variabele "test" bestaat niet'; // output
else
  echo 'de variabele "test" bestaat wel';

Ik denk dat daar je probleem zit. Integers zet je, net als TRUE of FALSE, niet tussen quotes normaal gesproken...

[ Voor 9% gewijzigd door Reveller op 02-02-2005 22:42 ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."

Pagina: 1