CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
11.08.2009, 19:56:05
|
Anfänger
|
|
Registriert seit: Aug 2009
Alter: 39
Beiträge: 5
|
|
Klick Button +1 Counter
Hallo zusammen nocheinmal :)
Habe noch eine Frage:
Habe einen Counter:
PHP-Code:
<?php
///////////////////////////////////////// // Counter + Reloadsperre v1.0 /////////////////////////////////////////
// 0=keine Reloadsperre, 1=Reloadsperre $aktiv = 1; // Zeit der Reloadsperre in Minuten $zeit = 1; // IP-Datei $ipdatei = "ips.txt"; // Counterdatei $datei = "counter.txt"; // Anzahl der führenden Nullen $stellen = 5; // Festlegen der Bild-Dimensionen $breite="15"; $hoehe="19";
///////////////////////////////////////// // IP-Reloadsperre /////////////////////////////////////////
function pruf_IP($rem_addr) { global $ipdatei,$zeit; @$ip_array = file($ipdatei); $reload_dat = fopen($ipdatei,"w"); $this_time = time(); for ($i=0; $i<count($ip_array); $i++) { list($ip_addr,$time_stamp) = explode("|",$ip_array[$i]); if ($this_time < ($time_stamp+60*$zeit)) { if ($ip_addr == $rem_addr) { $gefunden=1; } else { fwrite($reload_dat,"$ip_addr|$time_stamp"); } } } fwrite($reload_dat,"$rem_addr|$this_time\n"); fclose($reload_dat); return ($gefunden==1) ? 1 : 0; }
///////////////////////////////////////// // Counter-Abfrage /////////////////////////////////////////
if (file_exists($datei) && ($aktiv==0 || ($aktiv==1 && pruf_IP($_SERVER['REMOTE_ADDR'])==0))) { // Falls die Datei existiert, wird sie ausgelesen und // der dort enthaltene Wert um Eins erhöht. $fp=fopen($datei,"r+"); $zahl=fgets($fp,$stellen); $zahl++; rewind($fp); flock($fp,2); fputs($fp,$zahl,$stellen); flock($fp,3); fclose($fp); }else if (!file_exists($datei) && ($aktiv==0 || ($aktiv==1 && pruf_IP($_SERVER['REMOTE_ADDR'])==0))) { // Die Datei counter.txt existiert nicht, sie wird // neu angelegt und mit dem Wert 1 gefüllt. $fp=fopen($datei,"w"); $zahl="1"; fputs($fp,$zahl,$stellen); fclose($fp); } else { // Die Datei existiert zwar, jedoch handelt // es sich wahrscheinlich um den gleichen Besucher $fp=fopen($datei,"r"); $zahl=fgets($fp,$stellen); fclose($fp); }
$zahl=sprintf("%0".$stellen."d",$zahl);
?>
funktioniert auch wunderbar.... nur ich möchte das der zähler nur zählt wenn einer auf einen bestimmten button drückt... wie bekomm ich das hin?
Geändert von cortex (11.08.2009 um 20:21:21 Uhr)
Grund: code-Tags
|
11.08.2009, 20:14:22
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
|
|
AW: Klick Button +1 Counter
Tip: benutze die php-tags des forums zur formatierung von quelltexten - siehe forenregeln. niemand wühlt sich gern durch unformatierten code...
cx
|
11.08.2009, 21:37:56
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Klick Button +1 Counter
Du kannst mit einer Bedingung prüfen, ob z.B. ein bestimmter URL-Parameter übergeben wurde:
PHP-Code:
<?php
if(isset($_GET["paramName"]) && $_GET["paramWert"] == "irgendwas") {
// hier den gewünschten Code reinschreiben
}
|
11.08.2009, 22:19:06
|
Anfänger
|
|
Registriert seit: Aug 2009
Alter: 39
Beiträge: 5
|
|
AW: Klick Button +1 Counter
also müsste das dann so aussehen? :
PHP-Code:
<?php
if(isset($_GET[""]) && $_GET["paramWert"] == "irgendwas") {
// hier den gewünschten Code reinschreiben
}
/////////////////////////////////////////
// Counter + Reloadsperre v1.0
/////////////////////////////////////////
// 0=keine Reloadsperre, 1=Reloadsperre
$aktiv = 1;
// Zeit der Reloadsperre in Minuten
$zeit = 0;
// IP-Datei
$ipdatei = "ips.txt";
// Counterdatei
$datei = "counter.txt";
// Anzahl der führenden Nullen
$stellen = 5;
// Festlegen der Bild-Dimensionen
$breite="15";
$hoehe="19";
/////////////////////////////////////////
// IP-Reloadsperre
/////////////////////////////////////////
function pruf_IP($rem_addr) {
global $ipdatei,$zeit;
@$ip_array = file($ipdatei);
$reload_dat = fopen($ipdatei,"w");
$this_time = time();
for ($i=0; $i<count($ip_array); $i++) {
list($ip_addr,$time_stamp) = explode("|",$ip_array[$i]);
if ($this_time < ($time_stamp+60*$zeit)) {
if ($ip_addr == $rem_addr) {
$gefunden=1;
}
else {
fwrite($reload_dat,"$ip_addr|$time_stamp");
}
}
}
fwrite($reload_dat,"$rem_addr|$this_time\n");
fclose($reload_dat);
return ($gefunden==1) ? 1 : 0;
}
/////////////////////////////////////////
// Counter-Abfrage
/////////////////////////////////////////
if (file_exists($datei) && ($aktiv==0 || ($aktiv==1 && pruf_IP($_SERVER['REMOTE_ADDR'])==0))) {
// Falls die Datei existiert, wird sie ausgelesen und
// der dort enthaltene Wert um Eins erhöht.
$fp=fopen($datei,"r+");
$zahl=fgets($fp,$stellen);
$zahl++;
rewind($fp);
flock($fp,2);
fputs($fp,$zahl,$stellen);
flock($fp,3);
fclose($fp);
}else if (!file_exists($datei) && ($aktiv==0 || ($aktiv==1 && pruf_IP($_SERVER['REMOTE_ADDR'])==0))) {
// Die Datei counter.txt existiert nicht, sie wird
// neu angelegt und mit dem Wert 1 gefüllt.
$fp=fopen($datei,"w");
$zahl="1";
fputs($fp,$zahl,$stellen);
fclose($fp);
} else {
// Die Datei existiert zwar, jedoch handelt
// es sich wahrscheinlich um den gleichen Besucher
$fp=fopen($datei,"r");
$zahl=fgets($fp,$stellen);
fclose($fp);
}
$zahl=sprintf("%0".$stellen."d",$zahl);
?>
und woher bekomme ich den parameterwert bzw name von dem button her?
der quellcode des buttons sieht so aus:
PHP-Code:
<form method="post">
<input name="Submit1" type="submit" value="Ich mache mit!"></form>
Vielen dank schonmal
|
11.08.2009, 23:13:25
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Klick Button +1 Counter
Zitat:
Zitat von Viento
also müsste das dann so aussehen? :
[...]
|
Nein, an der Stelle innerhalb des if-Zweiges, an der ich den Kommentar gesetzt habe, muss natürlich dein Code stehen, der den Zählerstand um Eins erhöht.
Zitat:
Zitat von Viento
und woher bekomme ich den parameterwert bzw name von dem button her?
der quellcode des buttons sieht so aus:
PHP-Code:
<form method="post">
<input name="Submit1" type="submit" value="Ich mache mit!"></form>
|
Der Schlüssel innerhalb des superglobalen Arrays wird durch das name-Attribut des Buttons bestimmt. Der Wert durch das value-Attribut. Da du das Formular per POST-Methode verschickst, musst du dementsprechend aber auch auf $_POST zugreifen:
PHP-Code:
if(isset($_POST["Submit1"]) && $_POST["Submit1"] == "Ich mache mit!") {
}
|
12.08.2009, 20:53:59
|
Anfänger
|
|
Registriert seit: Aug 2009
Alter: 39
Beiträge: 5
|
|
AW: Klick Button +1 Counter
irgendwie bekomm ich das nicht hin:(
ich weis nicht was genau dann da stehen muss:(
wäre nett wenn ihr mir helfen würdet...Danke
|
13.08.2009, 17:43:39
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
|
|
AW: Klick Button +1 Counter
Zitat:
Zitat von Viento
wäre nett wenn ihr mir helfen würdet
|
sorry, das klingt eher nach wenn ihr mir das machen würdet. du hast doch bereits so viel (konkrete) hilfe erhalten...
cx
|
13.08.2009, 19:01:24
|
Anfänger
|
|
Registriert seit: Aug 2009
Alter: 39
Beiträge: 5
|
|
AW: Klick Button +1 Counter
ich habe es wirklich versucht :(
und nicht nur 10 mins sondern recht lange aber ich bin am verzweifeln.....tut mir leid aber ich weis wirklich nicht was ich da falsch mache....bitte helft mir...
|
13.08.2009, 20:45:09
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
|
|
AW: Klick Button +1 Counter
Zitat:
Zitat von Viento
bitte helft mir...
|
sorry, so kommst du (hier) nicht weiter. schau dir bitte punkt D unserer forenregeln an. wenn die grundlegenden dinge wie der zugriff auf superglobale variablen geklärt ist, machen wir weiter.
cx
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
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.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 11:54:55 Uhr.
|