actuele weekdagen

Status
Niet open voor verdere reacties.
Heb ik ook gedaan nu

(mooi progie hiervoor https://www.heidisql.com// )

nu werkt het wel ,,,kijken wat er bij mij mis gaat .... heb meerdere kolommen in tabel maar dat zal niet uitmaken gaat hier om datum em image
 
Laatst bewerkt:
Ik vermoed van wel, vandaar dat ik de sql van de DB gaf.

HeidiSql (windows app) doet functioneel hetzelfde als phpMyAdmin (browser app). Tabel- en kolomeigenschappen die zijn gekozen kunnen in php soms niet zo handig zijn, in dat geval maakt het niet uit welke app wordt gebruikt.
 
Ok dat begrijp ik

Ben aan het zoeken wat mis kan zijn dus tabellen vergelijken

anderzijds werkte het met mijn code wel in tabel
 
Yep, met jouw code was niets mis, er zaten een paar bugs in maar die waren te verhelpen. Jouw code was wel omslachtig, stel dat je dat voor elke dag in het jaar zou moeten doen, dan krijg je 365 blokken code onder elkaar ;) Vandaar de while loop die dit efficienter regelt.
 
Beste Bron

Het ziet er goed uit nu

Wat ik wilde zeggen was dat jouw aangepaste code wel werkte (was ik al heel blij mee) uiteraard is een while loop handiger

ik doelde op
Notice: Trying to get property of non-object in

Nou heb ik een kopie van tabel gemaakt en andere naam , werkte het wel , probleem bleek lijntje midden in naam:

data-naam =fout
data_naam =goed al had het 1e voorbeeld tot nu toe altijd gewerkt

Mijn dank is groot
 
Laatst bewerkt:
Graag gedaan. Suc6 met de applicatie :thumb:
 
Bedankt

had al heel wat geprobeerd met datums , zelf zou me dit niet gelukt zijn.

Dacht ik al dat het goed was ging het op maandag of zondag weer fout (begin van de week start op,,,,,) hoop dat dat nou goed gaat


Weet je toevallig hier nog een oplossing voor , is van een online bezoekersteller en in php v 7,4 komt melding:
Voorheen vphp5.6.

Deprecated: The each() function is deprecated.


PHP:
while(list($user_ip, $user_time) = each($dbary)) {
			if(($user_ip != $cur_ip) && (($user_time + $expire) > $cur_time)) {
				$dbary_new[$user_ip] = $user_time;
			}
		}
	}
 
Laatst bewerkt:
Niet getest omdat ik de inhoud van alle variabelen niet ken.
Code:
foreach ($dbary as $arrDdbary) {
  list($user_ip, $user_time) = $arrDdbary;
  if(($user_ip != $cur_ip) && (($user_time + $expire) > $cur_time)) {
    $dbary_new[$user_ip] = $user_time;
  }
}
 
Laatst bewerkt:
Bedankt de foutmelding is weg weet niet zeker of hij nu ook nog telt (onlinebezoekers) waarschijnlijk niet.
er zit nog een bestandje bij waar alles in wordt opgeslagen. visitors.db

Het zal verouderd zijn en de URL van maker wordt bij mij als onveilig gekenmerkt.


PHP:
<?php
/*************************************************************************
php easy :: online visitors counter scripts set - PHP Include Version
==========================================================================
Author:      php easy code, www.phpeasycode.com
Web Site:    http://www.phpeasycode.com
Contact:     webmaster@phpeasycode.com
*************************************************************************/

$dbfile = "visitors.db";  // path to data file
// 1600 
$expire = 400; // 100  average time in seconds to consider someone online before removing from the list

if(!file_exists($dbfile)) {
	die("Error: Data file " . $dbfile . " NOT FOUND!");
}

if(!is_writable($dbfile)) {
	die("Error: Data file " . $dbfile . " is NOT writable! Please CHMOD it to 666!");
}

function CountVisitors() {
	global $dbfile, $expire;
	$cur_ip = getIP();
	$cur_time = time();
	$dbary_new = array();
	
	$dbary = unserialize(file_get_contents($dbfile));
	if(is_array($dbary)) 
	
	{
		
		foreach ($dbary as $arrDdbary) {
  list($user_ip, $user_time) = $arrDdbary;
  if(($user_ip != $cur_ip) && (($user_time + $expire) > $cur_time)) {
    $dbary_new[$user_ip] = $user_time;
  }
}

//		while(list($user_ip, $user_time) = each($dbary)) {
//			if(($user_ip != $cur_ip) && (($user_time + $expire) > $cur_time)) {
//				$dbary_new[$user_ip] = $user_time;
//			}
//		}
	}
	$dbary_new[$cur_ip] = $cur_time; // add record for current user
	
	$fp = fopen($dbfile, "w");
	fputs($fp, serialize($dbary_new));
	fclose($fp);
	
	$out = sprintf("%03d", count($dbary_new)); // format the result to display 3 digits with leading 0's
	return $out;
}

function getIP() {
	if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
	elseif(isset($_SERVER['REMOTE_ADDR'])) $ip = $_SERVER['REMOTE_ADDR'];
	else $ip = "0";
	return $ip;
}

$visitors_online = CountVisitors();
?>
   &nbsp; Bezoekers online: <b><?=$visitors_online;?></b>
 
De feature 'visitors online' wordt steeds minder gebruikt, het hoort eigenlijk niet thuis in een tijd waar bezoekers waarde hechten aan privacy. Net een simpel scriptje gemaakt als je toch zoiets wilt hebben op je website.
 

Bijlagen

  • VisitorsOnline.zip
    1,9 KB · Weergaven: 21
... omdat hier nu de week op zondag start ipv op maandag

php date('w') is eenduidig gedefinieerd.
De dag loopt van 0 (zondag) t/m 6 (zaterdag).

In php wordt in veel functies en bij veel variabelen vanaf 0 geteld. Probeer dit in je code altijd aan te houden.
De gebruikte array is ook van 0 t/m 6 oftewel ['Zondag', ..., 'Zaterdag']
Bij het rekenen met dagen en datums zal hier rekening mee gehouden moeten worden.

Het eventueel verschuiven in dagen kan je in dit stukje doen
Code:
$intMaandag = $intVandaag - (($intDagNr-1) * 86400);
$intZondag  = $intMaandag + (6 * 86400);


Als je in de sql query BETWEEN gebruikt dan is dit inclusief begin- en inclusief einddatum.
In mijn code is dit dus maandag tot en met zondag. Mogelijk komt dit niet overeen met jouw database en/of jouw code.
 
Laatst bewerkt:
Als je op zondag de huidige zondag wilt zien én de komende 7 dagen (ma t/m zo) dan zet je deze regel onder de regel die begint met $intMaandag=
Code:
if (date('w') == 0) $intMaandag = $intVandaag;
Je ziet dan in totaal 8 dagen.
 
werken jou voorbeelden nog correct bij jou ?

als ik ga schuiven klopt het wellicht morgen niet.
 
Laatst bewerkt:
Ik krijg het niet werkend , alles gemaakt met jou voorbeelden ook niet.

Het worden 7 dagen ,,,maandag t.m zondag , nieuwe week moet starten op maandag ,
start nu dus op zondag (vandaag zondag 17 maart 2019) dus ik krijg nu al de flyers van volgende week te zien (18-24 maart)
terwijl dit vannacht om 0 uur zou moeten.

Het probleem zal zich waarschijnlijk alleen op zondag voordoen
 
Laatst bewerkt:
Je legt niet goed uit hoe de overgang in het weekend is.
Nu werkt het zo
Code:
Vandaag   Toon flyers van
--------+-------------------
vr        afgelopen ma t/m komende zo
za        afgelopen ma t/m komende zo
zo        deze zo + komende ma t/m zo
ma        deze maandag t/m komende zo
di        afgelopen ma t/m komende zo
Klopt dit met jouw idee.
 
Klopt de werking zoals jij die aangeeft

Maar je begint de nieuwe week op zondag dat moet maandag zijn :zo deze zo + komende ma t/m zo
deze zondag en komende ma tot zon zijn er ook 8 het zijn er altijd 7 >Ma-zondag

18-3 toon de 7 dagen/flyers die bij maandag 18-3 t/m zondag 24-3 horen
Ook op 19,20,21,22,23 en 24 maart moeten de flyers worden getoond die bij maandag 18-3 t/m zondag 24-3 horen

vanaf Maandag 25 maart:
25-3 toon de 7 dagen/flyers die bij maandag 15-3 t/m zondag 31-3 horen
Ook op 26,27,28,29,30 en 31 maart moeten de flyers worden getoond die bij maandag 15-3 t/m zondag 31-3 horen
 
Laatst bewerkt:
18-3 toon de 7 dagen/flyers die bij maandag 18-3 t/m zondag 24-3 horen
Ook op 19,20,21,22,23 en 24 maart moeten de flyers worden getoond die bij maandag 18-3 t/m zondag 24-3 horen
vanaf Maandag 25 maart:
25-3 toon de 7 dagen/flyers die bij maandag 15-3 t/m zondag 31-3 horen
Ook op 26,27,28,29,30 en 31 maart moeten de flyers worden getoond die bij maandag 15-3 t/m zondag 31-3 horen
Is nu duidelijk. Ik heb 1 regel in de code toegevoegd aangeduid met [fix]
 

Bijlagen

  • kalender-3.zip
    1,8 KB · Weergaven: 26
Laatst bewerkt:
Beste Bron

Wederom bedankt!

Wat getest met div. datums en werkt goed.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan