PHP Script/Datei auf PHP 8 anpassen

Freeezer

Grünschnabel
Hallo an alle,

hätte eine Bitte an euch. Ich schaff es einfach nicht das Script an PHP 8.1 anzupassen. Hab schoneiniges Probiert aber es komen immer wieder andere Fehler oder es wird dann nicht alles angezeigt. Der Fehler kommt seit dem der Server auf PHP 8.1 umgestellt wurde.

Das PHP Script wirft folgenden Fehler aus. Es handelt sich um einen Counter. Möchte ihn unbedingt wieter nutzen, gibt aber kein Update mehr.
Danke


Fatal error: Uncaught Error: Undefined constant "REMOTE_ADDR" in /is/htdocs/wp0815_0815/www/counter/counter.php:5 Stack trace: #0 {main} thrown in /is/htdocs/wp11040819_9QVR8LFO0A/www/counter/counter.php on line 5
In der Line5 steht folgendes:
$ip = getenv(REMOTE_ADDR);
Hier das ganze Script, bzw die einzige Datei die dabei ist.

PHP:
<?
$filename="counter.csv";
$count=0;
$time = time();
$ip = getenv(REMOTE_ADDR);
$text=$time."#".$ip."\n";
$zeile = file($filename);
$datum=date("d.m.y");
$setdate=0;
$uhrzeit=date("H:i:s");
//Hier kann die Aufenthaltszeit für eine gültige Zählung und die Reloadsperre eingetragen werden (in sec)
$countgueltig=6400;
$reload=6400;

//Prüfung ob IP vorhanden
foreach($zeile as $sperre)
{
$arraysp = explode("#",$sperre);

if($ip==rtrim($arraysp[1]) & $arraysp[0] > $time -$reload){$vorhanden=1;}
}
//Tages- und Gesamtwert ermitteln
foreach($zeile as $wert)
{
$array = explode("#",$wert);
if($array[0]=='datum'& rtrim($array[1])!=$datum){$setdate=1;}
if($vorhanden==1){
if($array[0]=='heute' & $setdate==0){$heute=rtrim($array[1]);}
if($array[0]=='heute' & $setdate==1){$heute=1;$gestern=rtrim($array[1]);}
if($array[0]=='gesamt'){$gesamt=rtrim($array[1]);}
if($array[0]=='gestern'& $setdate==0){$gestern=rtrim($array[1]);}

}
if($vorhanden!=1)
{

if($array[0]=='heute'& $setdate==0){$heute=rtrim($array[1])+1;}
if($array[0]=='heute'& $setdate==1){$heute=1;$gestern=rtrim($array[1]);}
if($array[0]=='gestern'& $setdate==0){$gestern=rtrim($array[1]);}
if($array[0]=='gesamt'){$gesamt=rtrim($array[1])+1;}
}
}

//Tages- und Gesamtwert schreiben
$fpwrite = fopen($filename , "w");
fwrite ($fpwrite, "datum"."#".$datum."\n"."heute"."#".$heute."\n"."gestern"."#".$gestern."\n"."gesamt"."#".$gesamt."\n".$text, 750);
fclose($fpwrite);



//Useronline schreiben
$fpanhaengen = fopen($filename , "a");
foreach($zeile as $useronline)
{
$arrayuseronline = explode("#",$useronline);

if($arrayuseronline[0] > $time -$countgueltig & $ip!=rtrim($arrayuseronline[1]))
{

fwrite ($fpanhaengen,$useronline, 750);

}
}
fclose($fpanhaengen);
//wieviele user online(für Anzeige)?
$zeile1 = file($filename);


//Ausgabe

for($x=0;$x<count($zeile1);$x++){$count=$count+1;}



//Tages- und Gesamtwert ermitteln

foreach($zeile as $wert)

{

$array = explode("#",$wert);

if($array[0]=='datum'& rtrim($array[1])!=$datum){$setdate=1;}

if($vorhanden==1){

if($array[0]=='heute' & $setdate==0){$heute=rtrim($array[1]);}

if($array[0]=='heute' & $setdate==1){$heute=1;$gestern=rtrim($array[1]);}

if($array[0]=='gesamt'){$gesamt=rtrim($array[1]);}

if($array[0]=='gestern'& $setdate==0){$gestern=rtrim($array[1]);}

if($array[0]=='rekord'){$rekord=rtrim($array[1]);}

}

if($vorhanden!=1)

{

 

if($array[0]=='heute'& $setdate==0){$heute=rtrim($array[1])+1;}

if($array[0]=='heute'& $setdate==1){$heute=1;$gestern=rtrim($array[1]);}

if($array[0]=='gestern'& $setdate==0){$gestern=rtrim($array[1]);}

if($array[0]=='rekord'){$rekord=rtrim($array[1]);}

if($array[0]=='gesamt'){$gesamt=rtrim($array[1])+1;}

if ($heute > $rekord){$rekord = $heute;}

}

}

 

//Tages- und Gesamtwert schreiben

$fpwrite = fopen($filename , "w");

fwrite ($fpwrite, "datum"."#".$datum."\n"."heute"."#".$heute."\n"."gestern"."#".$gestern."\n"."rekord"."#".$rekord."\n"."gesamt"."#".$gesamt."\n".$text, 750);

fclose($fpwrite);






echo '<div style="font-family: arial, helvetica, sans-serif;  font-size: 13px;<strong></strong> color: #000000;">&nbsp;&nbsp;<b>User Online:</b> '; echo $count=$count-4;echo '<br>';
echo '&nbsp;&nbsp;<b>Heute:</b> '; echo $heute;echo '  <br><br>';
echo '&nbsp;&nbsp;<b>Gesamt:</b> '; echo $gesamt;echo '</div>';
?>

Vielen lieben Dank für Tipps und Hilfe.
Falls noch was benötigt wird bitte schreiben. Danke
 
Zuletzt bearbeitet von einem Moderator:

Yaslaw

alter Rempler
Moderator
Ich habe mal zur besseren Lesbarkeit dein Code-Tags gesetzt. Doch das ganze ist total unformatiert und so nicht lesbar.

Rein nach Fehlermeldung - Die Konstante REMOTE_ADDR ist nicht definiert. Kurz Google anwerfen und siehe, auf die Schnelle findet man keine Konstante die so heisst. Sondern man übergiebt das als String.
PHP: getenv - Manual
PHP:
$ip = getenv('REMOTE_ADDR');

Tipp: Fehlermelung lesen
 

Freeezer

Grünschnabel
Vielen lieben Dank zuerst mal an alle für die Hilfe und Mühe!

Glaub das hatte ich sogar versucht gehabt aber ohne Erfolg.

Hab es nun nochmal getestet bzw geändert.

Nun erscheinen folgende Fehlermeldungen, sorry.

Wäre schön, wen Ihr mir weiter helfen würdet. Danke

Warning: Undefined variable $vorhanden in /is/htdocs/wp0819_9QVFO0A/www/counter/counter.php on line 27

Warning
: Undefined variable $vorhanden in /is/htdocs/wp0819_9QVR8LFO0A/www/counter/counter.php on line 34

Warning
: Undefined variable $vorhanden in /is/htdocs/wp819_9QLFO0A/www/counter/counter.php on line 27

Warning
: Undefined variable $vorhanden in /is/htdocs/wp0819_9QLFO0A/www/counter/counter.php on line 34

Warning
: Undefined variable $vorhanden in /is/htdocs/wp0819_9QFO0A/www/counter/counter.php on line 27

Warning
: Undefined variable $vorhanden in /is/htdocs/wp0819_9QFO0A/www/counter/counter.php on line 34

Warning
: Undefined variable $vorhanden in /is/htdocs/wp0819_9QFO0A/www/counter/counter.php on line 27

Warning
: Undefined variable $vorhanden in /is/htdocs/wp0819_9QFO0A/www/counter/counter.php on line 34

Warning
: Undefined variable $vorhanden in /is/htdocs/wp0819_9QFO0A/www/counter/counter.php on line 27

Warning
: Undefined variable $vorhanden in /is/htdocs/wp0819_9QVFO0A/www/counter/counter.php on line 34

Fatal error
: Uncaught TypeError: Unsupported operand types: string + int in /is/htdocs/wp8LFO0A/www/counter/counter.php:40 Stack trace: #0 {main} thrown in /is/htdocs/wp0819_9QLFO0A/www/counter/counter.php on line 40

Danke nochmals!
 
Zuletzt bearbeitet:

Freeezer

Grünschnabel
Hab nun noch die 3te Variante Probiert, die

$ip = getenv('REMOTE_ADDR', true) ?: getenv('REMOTE_ADDR')

da kommt dann folkgende Fehlermeldung:

Parse error: syntax error, unexpected variable "$text" in /is/htdocs/wp819_9QVO0A/www/counter/counter.php on line 6

Evtl hilft euch das weiter.

Danke
 

bdt600

Mitglied
Wird das hier ein Grundlagenkurs?

Undefined variable = Undefinierte Variable

Das Script greift auf eine Variable zu, die nicht definiert wurde.
 

Yaslaw

alter Rempler
Moderator
Fehlermeldungen lesen, ggf mal googeln

Warning: Undefined variable $vorhanden in /is/htdocs/wp0819_9QVFO0A/www/counter/counter.php on line 27
Du vergleichst eine Variable, die nie gesetzt wurde. Saubere Lösung: DIe Variable vorher initializieren, ggf mit null. Do kannst die Warning aber auch ignorieren

Zeile 40: rtrim($array[1])+1;
rtrim gibt ein String zurück. Also ein TEXT. Auf einen Text willst du die Zahl dazurechnen. Geht natürlich nicht. Entweder zuerst den Text in eine Zahl wandeln, wenn gerechnet werden soll. Soll aber nur die Ziffer 1 ans Ende des TExtes angehängt werden, dann geht das mit einem .
PHP:
//Als Zahl -> geht nur, wenn der Text eine Zahl ist. zB '11'
$gesamt=((int) rtrim($array[1]) + 1;
//Text zusammensetzen
$gesamt=rtrim($array[1]).'1';
 

Freeezer

Grünschnabel
Hallo und danke nochmals für die Tipps und Anmekungen. bin bei der Umsetzung aber viel zu ändern. Evtl sollt eich doch neues Counter Script benutzen.

Danke und super von Euch