Hoi,

Ik schets kort wat ik wil doen.
aan de ene kant, op mijn server een databank met daarin lijst van website's met start en einddatum
aan de andere zijde, op de verschillende website's ergens anders dan op mijn server uiteraard een kort stukje code die contact maakt met mijn database en nakijkt of de website nog ok is om mee verder te werken, of als de tijd verstreken is en deze dus stopt


<?php
session_start();
ob_start();
include("connect.php");

if (isset($_POST['webid'])){
	$sid = $_POST['webid'];
	$siteresult = mysql_query("SELECT * FROM website WHERE website_id = '$sid'");
	if (mysql_num_rows($siteresult)) {
		while (($prodrow = mysql_fetch_assoc($siteresult)) !== false){
	         	$websitestartdate = $prodrow['website_startdate'];
			$websiteenddate = $prodrow['website_enddate'];
				
			// duration of contract
			$startdate  = strtotime($websitestartdate);
			$enddate = strtotime($websiteenddate);
			$contractdays = ceil(abs($enddate - $startdate) / 86400);
			
			// days left
			$now = strtotime(date("Y-m-d H:m:s"));				
			if ($now > $enddate){
				// overdue
				$sitestatus = "Blocked";
			}else{
				// seems ok
				$sitestatus = "OK";
			}
		}
	}else {	
		// Nothing found
		$sitestatus = "Blocked";
	}
}else{
	// No ID found
	$sitestatus = "Blocked";
}
?>


heb dit getest met de get function en gewoon in de url aangeroepen en dit gedeelte werkt.

wat betreft het stukje code die op de verschillende site moet draaien heb ik al verschillende dingen geprobeerd via jquery post function, uren al naar een oplossing gezocht maar niets die werkt.

dus stel ik hier maar de vraag, hoe ik dat kan bekomen - dus bij start van de site even in 'externe database' kijken of mag verder gegaan worden of niet - zonder dat de gebruiker iets daarvan merkt.

graag jullie feedback

grtjs marc
Het gaat dus om een licentiesysteem, waarbij jij centraal bepaalt of iemand zijn CMS mag gebruiken?
Dan is het niet verstandig om vanuit dat CMS een databaseconnectie te leggen met de 'master-database', want die inlog kan uiteraard simpel worden onderschept.

De beste oplossing is het gebruik van een API die aan de met je hostname en een unieke hash/licentiecode een URL aanroept, en daar de status ophaalt. Let er wel op dat je een CMS bij een connection-timeout niet opslot gooit. Dat zou zonde zijn in het geval van een netwerkstoring.

Verder wordt het gebruik van de MySQL-functies afgeraden. De vervanger hiervoor is MySQLi of PDO.
alvast bedankt voor deze feedback - ben idd nog ni rond met het systeem maar zocht al een manier waarop site met master database kan communiceren
Zorg ook dat je het controlescript encoded, om te voorkomen dat iemand die eruit sloopt. Denk bijv. aan ioncube.

Wel moet de server dat ondersteunen.
Of je verzorgt zelf de hosting van die websites. Dan is een dergelijke controle overbodig.
blijkbaar heb ik mijn vraag ofwel niet duidelijk gesteld ofwel op de verkeerde plaats.
waardeer de adviezen wel maar krijg geen antwoord op wat ik zoek

ik weet weet best waarom ik dit zo wil

enfin zal dan zelf wel oplossingen verdr zoekn tot ik deze vindt
Jij wilt dus een systeem om websites die je bouwt dus aan/uit te zetten. Denk bijv. aan een betalingsachterstand of iets dergelijks? Klopt dat?

Want in dat geval heb ik toch echt een goede oplossing gegeven, plus de uitleg waarom het de beste oplossing is.

Vertel anders eens duidelijk wat je precies wilt?
@Marc

Kan de gebruiker/eigenaar van de website zelf bij de code van de website?
Ik gok op een dubbelzinnig gebruik van "gebruiker".
Als er behoefte is kan ik wel wat code geven van het licentiesysteem die ik ooit eens gebouwd heb.

Deze is een eigen API die aangeeft of een bepaalde sleutel en hostname/domein waarop een CMS van mij draait, toegestaan is.
@ Ariën zou vriendelijk zijn

[size=xsmall]Toevoeging op 29/06/2016 02:33:57:[/size]

Dit heb ik intussen simpel gemaakt waarbij de waarde na webid site nummer is, uiteraard dit allemaal in basis en voorzien worden van een versleuteling - alhoewel het mij eerder om het principe van werking gaat

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script>
$(document).ready(function(){
$.post('checksite.php', {webid:"2"}, function (output){
/*
if (output == 'OK')
echo 'your good to go';
else
echo 'please pay me first';
*/
$('#status').html(output).show();
});
});
</script>
</head>
<body>
<div id="status"></div>
</body>
</html>

Reageren