PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

01-06-2008, 11:47
|
terminatorxxl
Newbie
|
|
Registriert seit: Jun 2008
Beiträge: 3
|
|
php script in eine andere datei per fwrite befehl hinein fügen
hey ich möchte dieses script per fwrite oder etwas anderes in jede datei die geschrieben werden soll per script hineinkopieren
PHP-Code:
<?php
$serialized_counterData = 'a:6:{s:9:"yesterDay";s:10:"04-08-2007";s:7:"currDay";s:10:"01-01-
2002";s:5:"toDay";i:2;s:6:"visits";i:0;s:4:"hits";i:2;s:11:"whoIsOnline";
a:1:{s:9:"127.0.0.1";i:1009840268;}}';
$counterData = unserialize($serialized_counterData);
if($counterData['currDay'] != date('d-m-Y'))
{
$counterData['yesterDay'] = $counterData['currDay'];
$counterData['currDay'] = date('d-m-Y');
$counterData['toDay'] = 0;
}
if(!isset($counterData['whoIsOnline'][$_SERVER['REMOTE_ADDR']]))
{
$counterData['visits']++;
$counterData['toDay']++;
}
$counterData['hits']++;
$counterData['whoIsOnline'][$_SERVER['REMOTE_ADDR']] = time();
foreach($counterData['whoIsOnline'] as $key => $time)
if($time + 500 < time()) unset($counterData['whoIsOnline']);
$myData = file_get_contents(__FILE__);
$myData = preg_replace('/\$serialized_counterData = \'.*\';/siU',
'$serialized_counterData = \''.serialize($counterData).'\';', $myData);
$myFile = fopen(__FILE__, 'wb');
fwrite($myFile, $myData);
fclose($myFile);
echo('Hits: '.$counterData['hits'].'<br />');
echo('Visiters: '.$counterData['visits'].'<br />');
echo('Yesterday: '.$counterData['yesterDay'].'<br />');
echo('Today: '.$counterData['toDay'].'<br />');
echo('Online: '.count($counterData['whoIsOnline']).'<br />');
?>
Geändert von terminatorxxl (01-06-2008 um 13:10 Uhr)
|

01-06-2008, 11:54
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 3.296
|
|
Bahnhof!
Schon von include gehört?
Das wurde extra für solche Zwecke erfunden.
Und brich bitte deinen Code um.
Sonst hagelt es hier Mäcker!!
|

01-06-2008, 13:11
|
terminatorxxl
Newbie
|
|
Registriert seit: Jun 2008
Beiträge: 3
|
|
ja aber genau das will ich nicht es soll ya für jede datei extra gezählt werden und nciht alle den selben counter status haben.-.-
|

01-06-2008, 13:44
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 3.296
|
|
Das soll mal einer verstehen...
Du willst das gleiche, aber nicht das gleiche!
Mach doch erstmal ein paar Tutorials und stecke den Kopf in die Bücher. Danach weißst du dann was alles möglich ist und kannst dein Problem evt. selber lösen, zumindest besser formulieren.
|

01-06-2008, 14:12
|
terminatorxxl
Newbie
|
|
Registriert seit: Jun 2008
Beiträge: 3
|
|
also ich mach es nochmal ausführlich
ich möchte das dieses script in jeder datei eingebunden ist und zwar seperat weil das script dadurch die besucher für jede seite wo es eingebunden ist seperat zählt und nicht alle die selbe zahl an besuchern haben wenn ich es durch nen include befehl mache
|

01-06-2008, 14:28
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 3.296
|
|
Und ich sage dir nochmal, dass dein Konzept daneben ist!
Selbstmodifizierender Code in einer Webserverumgebung und dann auch noch ohne Locking ist Softwaretechnischer Selbstmord!
Mache dich kundig.
Meine Hilfe endet hier.
Und brich endlich deinen Code um!!
Geändert von combie (01-06-2008 um 16:29 Uhr)
|

01-06-2008, 14:36
|
Blackgreetz
PHP Junior
|
|
Registriert seit: Oct 2005
Beiträge: 901
|
|
Du willst nen Besucherzähler pro explizierter Datei?
Dann würde ich zum chCounter raten...
Deine Idee ist so nicht umsetzbar..
mfg
ps: Bitte Code umbrechen..
|

01-06-2008, 16:23
|
wshbg
Registrierter Benutzer
|
|
Registriert seit: Jun 2007
Beiträge: 33
|
|
Moin,
ich denke man kann das machen.
Erweitere $counterData['hits'] zu einem array of array und verwende z.B. den Dateinamen als Index. Den kannst Du ermitteln aus dem $_SERVER[] Array.
Und wichtig: beherzige den Vorschlag bezüglich Locking, siehe oben.
Wilfried
|

01-06-2008, 17:08
|
jmc
PHP Junior
|
|
Registriert seit: Mar 2006
Beiträge: 868
|
|
Es ist schon durchführbar, aber wie gesagt nicht wirklich sinnvoll...
Dafür sind doch z.B. Datenbanken da und du könntest genausogut eine einzige ini- Datei nehmen statt so viele.
|

01-06-2008, 17:34
|
wshbg
Registrierter Benutzer
|
|
Registriert seit: Jun 2007
Beiträge: 33
|
|
Zitat:
Original geschrieben von jmc
du könntest genausogut eine einzige ini- Datei nehmen statt so viele.
|
 Das ist eine einzige Datei
|

01-06-2008, 17:47
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 3.296
|
|
Nachschlag: - Da ein Automat nicht automatisch die richtige Stelle finden kann, kann der Code auch nicht automatisch eingefügt werden.
- Redundant, weil der Code mehrfach eingefügt werden soll. Unwartbar!
- Das serialisierte Array soll in die aufgerufene Datei immer wieder eingefügt werden. Selbstmodifizierender Code ist im PHP Bereich Unsinn!
- Das fehlende Locking.
Diese Komination ist so grausam, dass man meines Erachtens nach mit Fug und Recht sagen darf:
DAS GEHT SO NICHT!
Klar könnte man Mittel und Wege finden das Vorhaben zu realisieren, aber dann MUSS man an den Grundfesten schütteln. Und das kann der TE scheinbar nicht. Ich glaube auch nicht, dass er den Code selber geschrieben hat.
Geändert von combie (01-06-2008 um 17:50 Uhr)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|