Scripts

Update checker

Dit is een script wat doormiddel van de functie get_meta_tags kijkt of er een nieuwe update beschikbaar is voor een bepaald script/plugin Wil je meer te weten komen over de functie get_meta_tags Kijk dan even na deze tutorial van mij: http://www.phphulp.nl/php/tutorials/4/407/ Dit script heb ik gemaakt na aanleiding van dit topic: http://www.phphulp.nl/forum/showtopic.php?cat=1&id=21734&lasttopic=1 En omdat ik hier al meerdere vragen van heb gezien op phphulp

update-checker
Sql:

[code]
CREATE TABLE updates (
	naam			varchar(32)			NOT NULL,
	u_link			varchar(255)			NOT NULL			default 'http://www.jouwwebsite.nl/update/',
	d_link			varchar(255)			NOT NULL			default 'http://www.jouwwebsite.nl/download/',
	versie			varchar(9)			NOT NULL,
	n_versie		varchar(9)			NOT NULL,
	n_update		enum('ja','nee')		NOT NULL			default 'nee',
	wanneer			datetime			NOT NULL,
   UNIQUE KEY(naam)
);
[/code]

Verander de link: http://www.jouwwebsite.nl/ [b]GOED![/b]

PHP code:

<?php

error_reporting(E_ALL);

//Dit bestand kijkt of er updates zijn

$host		= 'localhost'; // Voor 99,99% altijd localhost
$user		= 'username';
$pass		= 'wachtwoord';
$db		= 'database';
$Utijd		= 86400; // Hij zal nu om een dag kijken of er updates zijn

mysql_connect($host, $user, $pass) or die(mysql_error());
mysql_select_db($db) or die(mysql_error());

$U_sql = mysql_query("SELECT naam,u_link,versie FROM updates WHERE UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(wanneer) > $Utijd") or trigger_error(mysql_error());

while($U_row = mysql_fetch_assoc($U_sql)) {

	$tags = get_meta_tags($U_row['u_link'].$U_row['naam'].'/');

	if(isset($tags['versie'])) {

		if($U_row['versie'] != $tags['versie']) {

			mysql_query("UPDATE updates SET n_update = 'ja', n_versie = '".$tags['versie']."', wanneer = now() WHERE naam = '".$U_row['naam']."'") or trigger_error(mysql_error());

		}

	}

	mysql_query("UPDATE updates SET wanneer = now() WHERE naam = '".$U_row['naam']."'") or trigger_error(mysql_error());

}

$sql = mysql_query("SELECT naam,d_link,versie,n_versie FROM updates WHERE n_update = 'ja'") or trigger_error(mysql_error());
$count = mysql_num_rows($sql);

if(is_int($count)) {

	if($count == 1) {

	  $zin = 'Er is '.$count.' nieuwe update beschikbaar:<br />';

	} else {

	  $zin = 'Er zijn '.$count.' nieuwe updates beschikbaar:<br />';

	}

  echo $zin."\n";

	while($row = mysql_fetch_assoc($sql)) {

	  echo 'Script: <b>'.$row['naam'].'</b> Van versie '.$row['versie'].' naar versie '.$row['n_versie'].'. <a href="'.$row['d_link'].$row['naam'].'/'. $row['naam'].'_'.$row['n_versie'].'.zip">Download</a>'."\n";

	}

} else {

  echo 'Er zijn geen nieuwe updates beschikbaar'."\n";

}

?>

Voorbeeld:

INSERT INTO `updates` (`naam`, `u_link`, `d_link`, `versie`, `n_versie`, `n_update`, `wanneer`) VALUES ('test', 'http://home.quicknet.nl/qn/prive/henkgoutdeway/update/', 'http://home.quicknet.nl/qn/prive/henkgoutdeway/download/', '1.0.0', '1.0.0', 'nee', '2006-09-02 12:49:47');


De functie [php]get_meta_tags[/php] zal wanneer het script is aangeroepen en bovenstaande sql code is ingevoert kijken in het volgende mapje of er een nieuwe update beschikbaar is:

http://home.quicknet.nl/qn/prive/henkgoutdeway/update/test/

In dit mapje staat index.html daarin staat het volgende:

<meta name="versie" content="2.0.0">

Zoals je kan zien verchilt de huidige versie met die van die in deze map staat en zal daarom de query updaten en zeggen dat er een nieuwe update beschikbaar is

de download link zal nu als volgt zijn:

http://home.quicknet.nl/qn/prive/henkgoutdeway/download/test/test_2.0.0.zip

Dit bestand bestaat niet! Dit hoor je eenmaal later zelf allemaal te veranderen.

Na hoop dat het een goede uitleg is en ziet hoe je een script kan toevoegen om zo te kijken of er een nieuwe update voor beschikbaar is

Heb je nog vragen of ideeën stel ze gerust!

GR. mebus!

edit: o ja reacties zijn welkom hoor:p!!!!

Reacties

0
Nog geen reacties.