Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Counter will net so wie ich will [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Counter will net so wie ich will


 
buschmannd
15-06-2006, 17:33 
 
Also ma wieder nen problem ich habe nen Counter erstellt und fast zum Laufen gebracht, wenn da net noch dieses kleine Problem währe.
Also hier erstma das skript:



<?PHP

// In dem Ersten Bereich kann das Script an eigene Bedürfnisse Angepasst werden

// Allgemeine Einstellungen
$grafik_counter = 1 ; // 1=>Grafikcounter, 0=>Textcounter

$font_size = "4" ; // Fontgrösse
$text_color = "#000000" ; // Textfarbe (zb. #000000 für schwarz)

$back_color = "#FFFFFF" ; // Hintergrundfarbe (zb. #FFFFFF für weiss) ! nur bei grafik_counter = 1 !

$showuser=1; // Total Counter Anzeigen ( 1=>Sichtbar / 0=>Unsichtbar )
$showgestern=1; // Gestern gesammt User Anzeigen ( 1=>Sichtbar / 0=>Unsichtbar )
$showheute=1; // Heute User Anzeigen ( 1=>Sichtbar / 0=>Unsichtbar )
$showtrend=1; // Trend Anzeige im Vergleich zu Gestern gleicher Zeit ! ( 1=>Sichtbar / 0=>Unsichtbar )
$showonline=1; // User Online Anzeigen ( 1=>Sichtbar / 0=>Unsichtbar )

$onlinetime=3; // Online Zeit in Minuten
$reload=24*60; // Reload Sperre in Minuten ( 24*60 => 24Stunden )

$startwert=0; // Hier können Sie den Startwert einstellen. Vor der installation setzen ! Oder einfach 0 lassen.

// Datenbank Einstellungen
$db_host = 'localhost'; // Datenbankserver (z.b localhost)
$db_user = 'testc'; // Benutzername
$db_pass = 'testc'; // Passwort
$db_name = 'testc'; // Datenbankname

// Beim erstem Start rufen Sie bitte das Script mit "http://www.ihrehomepage.de/counter.php?install=install" auf


// ab hier nichts mehr ändern
// ab hier nichts mehr ändern

// Variablen auslesen
while (list($key,$val)=each($_GET)) {
${$key} = $val; }


// mit der Datenbank verbinden:
$serverID = @mysql_connect($db_host, $db_user, $db_pass);
if(!$serverID) {echo "Der DB Server ist im Moment leider nicht erreichbar!"; exit;}
$datenbank = @mysql_select_db($db_name, $serverID);
if(!$datenbank) {echo "Die Datenbank wurde nicht gefunden !"; exit;}


// Installationsroutine
if ($install=="install")
{
if(!$serverID) {echo "<font color=\"#CC0000\">- Der DB Server ist leider nicht erreichbar !</font><br>"; }
else {echo "<font color=\"#00CC00\">- Der DB Server wurde erfolgreich erreicht !</font><br>";}
if (!$datenbank) {echo "<font color=\"#CC0000\">- Die Datenbank wurde nicht gefunden !</font><br>"; }
else {echo "<font color=\"#00CC00\">- Die Datenbank wurde gefunden !</font><br>";}
$anlegen = mysql_query("create table Counter (
id int(11) NOT NULL auto_increment,
ip varchar(15) NOT NULL default '',
time int(20) NOT NULL default '0',
online int(20) NOT NULL default '0',
PRIMARY KEY (id)
) TYPE=MyISAM COMMENT='Counter by Pawlita' ");
if (!$anlegen) {echo "<font color=\"#CC0000\">- Tabelle konnte nicht angelegt werden !</font><br>";}
else {
echo "<font color=\"#00CC00\">- Tabelle wurde erfolgreich angelegt !<br>";
if ($startwert > 0)
{
mysql_query("insert into Counter (id, ip, time, online) values ('$startwert', 'Start', '$time', '$time')");
echo "<font color=\"#00CC00\">- Der Startwert wurde auf $startwert gesetzt !<br>";
}
}
exit;
}


// Initialisierung
$time=time();
$ip=$REMOTE_ADDR;

// Veraltete Einträge löschen
$anfangGestern = mktime(0, 0, 0, date(n), date(j), date(Y)) - 24*60*60 ;
$delete=mysql_query("delete from Counter where time<'$anfangGestern'");
if (!$delete) {echo"Es ist ein Fehler aufgetreten, möglicherweise ist die Tabelle nicht angelegt."; exit;}

// Reloadsperre und Onlinezeit abfragen und setzen
$oldreload = $time-$reload*60;
$gesperrt=mysql_query("select id from Counter where ip='$ip' AND time>'$oldreload' order by id desc limit 1");
if (!$gesperrt) {echo"Es ist ein Fehler aufgetreten, möglicherweise ist die Tabelle nicht angelegt."; exit;}
if (mysql_num_rows($gesperrt)==0)
{
mysql_query("insert into Counter (ip, time, online) values ('$ip', '$time', '$time')");
}
else
{
$gesperrtID=mysql_result($gesperrt,0,0);
mysql_query("update Counter set online='$time' where id='$gesperrtID'");
}


// Abfrage
if ($showuser==1)
{
// Counterstand ermitteln
$abfrage=mysql_query("select id from Counter order by id desc limit 1");
$user=mysql_result($abfrage,0,0);
mysql_free_result($abfrage);
$Userstring = "Total: $user";
}
if ($showgestern==1)
{
// gestern
$anfangTag= mktime(0, 0, 0, date(n), date(j), date(Y)) - 24*60*60 ;
$endeTag= mktime(23, 59, 59, date(n), date(j), date(Y)) - 24*60*60 ;
$abfrage=mysql_query("select count(id) from Counter where time>='$anfangTag' AND time<=$endeTag");
$gestern=mysql_result($abfrage,0,0);
mysql_free_result($abfrage);
$Gesternstring = "Gestern: $gestern";
}
if ($showheute==1)
{
// Heute
$anfangTag= mktime(0, 0, 0, date(n), date(j), date(Y)) ;
$endeTag= mktime(23, 59, 59, date(n), date(j), date(Y)) ;
$abfrage=mysql_query("select count(id) from Counter where time>='$anfangTag' AND time<=$endeTag");
$heute=mysql_result($abfrage,0,0);
mysql_free_result($abfrage);
$Heutestring = "Heute: $heute";
}
if ($showtrend==1)
{
// gestern zur gleichen Zeit
$anfangTag= mktime(0, 0, 0, date(n), date(j), date(Y)) - 24*60*60 ;
$endeTag= time() - 24*60*60 ;
$abfrage=mysql_query("select count(id) from Counter where time>='$anfangTag' AND time<=$endeTag");
$gestern=mysql_result($abfrage,0,0);
mysql_free_result($abfrage);
$trend = $heute - $gestern;
if ($trend>0)$trend = "+".$trend;
$Trendstring = "Trend: $trend";
}
if ($showonline==1)
{
// User Online ermitteln
$isonline=$time-($onlinetime*60);
$abfrage=mysql_query("select count(id) from Counter where online>='$isonline'");
$online=mysql_result($abfrage,0,0);
mysql_free_result($abfrage);
$Onlinestring = "Online: $online";
}
// Ausgabe
if ($grafik_counter == 0)
{
if ($showuser==1) $Userstring = $Userstring."<br>";
if ($showgestern==1) $Gesternstring = $Gesternstring."<br>";
if ($showheute==1) $Heutestring = $Heutestring."<br>";
if ($showtrend==1) $Trendstring = $Trendstring."<br>";
if ($showonline==1) $Onlinestring = $Onlinestring."<br>";
echo "<font size=\"$font_size\" color=\"$text_color\">".$Userstring.$Gesternstring.$Heutestring.$Trendstring.$Onlinestring."</font><font size=\"1\" color=\"$text_color\">Pawlita.de</font>";
}
else
{
// Hintergrundsfarbe umwandeln
if( eregi( "[#]?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})", $back_color, $bc ) )
{ $back_red = hexdec( $bc[1] ); $back_green = hexdec( $bc[2] ); $back_blue = hexdec( $bc[3] ); }
// Textfarbe umwandeln
if( eregi( "[#]?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})", $text_color, $tc ) )
{ $text_red = hexdec( $tc[1] ); $text_green = hexdec( $tc[2] ); $text_blue = hexdec( $tc[3] ); }

// initialisierung
$maxlen=0;
if (strlen($Userstring)>$maxlen) $maxlen = strlen($Userstring);
if (strlen($Gesternstring)>$maxlen) $maxlen = strlen($Gesternstring);
if (strlen($Heutestring)>$maxlen) $maxlen = strlen($Heutestring);
if (strlen($Trendstring)>$maxlen) $maxlen = strlen($Trendstring);
if (strlen($Onlinestring)>$maxlen) $maxlen = strlen($Onlinestring);
$width = (ImageFontWidth($font_size) * $maxlen)+4;
$zeilen = $showuser + $showgestern + $showheute + $showtrend + $showonline;
$height = ( $zeilen*ImageFontHeight($font_size) ) + ImageFontHeight(1)+2;

// Erzeuge Bild in angegebener Größe
$im = imagecreate ($width,$height) or die ("Cannot Initialize new GD image stream");

// Hintergrundfarbe
$background_color = imagecolorallocate ($im, $back_red, $back_green, $back_blue);

// Textfarbe (evtl. schwarz???)
$text_color = imagecolorallocate ($im, $text_red, $text_green, $text_blue);

// Bild zusammensetzen
$aktZeile = 0;
if ($showuser==1)
{imagestring ($im, $font_size, 2, ImageFontHeight($font_size)*$aktZeile, $Userstring, $text_color); $aktZeile++; }
if ($showgestern==1)
{imagestring ($im, $font_size, 2, ImageFontHeight($font_size)*$aktZeile, $Gesternstring, $text_color); $aktZeile++; }
if ($showheute==1)
{imagestring ($im, $font_size, 2, ImageFontHeight($font_size)*$aktZeile, $Heutestring, $text_color); $aktZeile++; }
if ($showtrend==1)
{imagestring ($im, $font_size, 2, ImageFontHeight($font_size)*$aktZeile, $Trendstring, $text_color); $aktZeile++; }
if ($showonline==1)
{imagestring ($im, $font_size, 2, ImageFontHeight($font_size)*$aktZeile, $Onlinestring, $text_color); $aktZeile++; }
imagestring ($im, 1, 2, ImageFontHeight($font_size)*$aktZeile+2,"Pawlita.de", $text_color);
// Bild erzeugen und ausgeben
header ("Content-type: image/png");
// PNG Bild erzeugen und senden
imagepng($im);
// Bild auf dem Server loeschen
imagedestroy($im);
}
?>




wen ich da aber nun starten will dann kommt immer folgende Meldung: Es ist ein Fehler aufgetreten, möglicherweise ist die Tabelle nicht angelegt.
der Link auch nochma: http://andi89.dyndns.org/apex/Counter/counter.php
danke im Voraus Dennis

 
MelloPie
15-06-2006, 17:50 
 
Lass Dir doch mal die mysql_error ausgeben, die Du erzeugst

 
buschmannd
15-06-2006, 17:57 
 
wie kann ich mir denn ausgeben lassen ?

 
penizillin
15-06-2006, 20:12 
 
wer die regeln liest und befolgt, weiß bescheid.

 
buschmannd
15-06-2006, 20:24 
 
was meinste bitte?

 
derHund
15-06-2006, 20:29 
 
http://www.php-resource.de/forum/showthread.php?s=&threadid=50454

 
buschmannd
15-06-2006, 21:22 
 
sry aber ich weiß wirklich net,was ich machen soll :mad:
ich bin echter noob in php und deshalb poste ich hir auch also bitte helft mir nen bislle kompetenter und postet net nur so nen dummen Link danke.
Warum ich den ganzen Quellcode gepostet habe ? weil ivh net weiß wo das pro is ..... aks bitte helft mir

 
ministry
15-06-2006, 21:29 
 
Ich versuch mal zu übersetzen.
Deine Fehlermeldung kommt ja offensichtlich von hier:

// Veraltete Einträge löschen
$anfangGestern = mktime(0, 0, 0, date(n), date(j), date(Y)) - 24*60*60 ;
$delete=mysql_query("delete from Counter where time<'$anfangGestern'");
if (!$delete) {echo"Es ist ein Fehler aufgetreten, möglicherweise ist die Tabelle nicht angelegt."; exit;}

Daraus machst du dann mal
// Veraltete Einträge löschen
$anfangGestern = mktime(0, 0, 0, date(n), date(j), date(Y)) - 24*60*60 ;
$delete=mysql_query("delete from Counter where time<'$anfangGestern'") or die(mysql_error());


und dann postest du hier die Fehlermeldung die du bekommst.

Und ich glaube, das kommt nicht so gut, wenn du den Hinweis auf die Regeln einen dummen Link nennst.

 
penizillin
15-06-2006, 21:30 
 
[...] ich habe nen Counter erstellt und fast zum Laufen gebracht [...] wenn das die wahrheit wäre, dann müsstest du selbst erkennen, um welchen teil des skriptes es sich handelt.

befolge doch einfach die paar tipps, die in dem post erklärt werden - code umbrechen, E_ALL, mysql_error() etc.

 
onemorenerd
15-06-2006, 21:31 
 
Dieser "dumme Link" führt dich zu den hiesigen Regeln, die du bitte umgehend befolgst!

Wenn du schon den ganzen Code hinklatscht, dann brich ihn wenigstens um! Keiner liest diesen Brocken, wenn er dabei auch noch ständig links-rechts-scrollen muß. :rolleyes:

 
mai
15-06-2006, 22:23 
 
-Lies deine mails-

also eine Frage habe ich schon noch dazu:
du andi89.dyndns.org (ip1, tiscali )hast einen Counter entwickelt.
warum fragst Du nicht den Autor davon, pawlita.de (ip2, evanzo)?

oder blick ich da nicht durch

 
mai
16-06-2006, 20:42 
 
Also das ist ein Spezialfall. Die mysql-Fehlermeldung beim DELETE lautete "Table
db.Counter does not exist." Das stimmt auch: er hat nämlich den initialisierungs-
Aufruf des Skript nicht gemacht. Das wurde inzwischen nachgeholt, url hat er ja
angegeben. Im Skript ist noch ein zweiter, subtilerer Fehler, der zur gleichen
Fehlermeldung führt, und welcher Fehler auch im Original von pawlita.de drin ist.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:00 Uhr.