anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Di 19 Mär, 2024 04:28

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Fehlermeldung bei neuem Tag
BeitragVerfasst: Do 21 Okt, 2021 20:22 
Offline
Profi
Profi

Registriert: Do 22 Mai, 2008 09:08
Beiträge: 156
Geschlecht: Weiblich
LoGD: https://lotgd.zumhexenkessel.de/
Huhu zusammen, hatte schon gegooglet und hier in der Scuhe geschaut, konnte nichts finden was mir weiterhilft, vielleicht auch schon zu spät, zu müde oder einfach viel Bäume und Wald :D


Strict Standards: Only variables should be passed by reference in /www/htdocs/w01c469a/logd/setnewday.php on line 157

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w01c469a/logd/setnewday.php:157) in /www/htdocs/w01c469a/logd/common.php on line 65

Hat jemand eine Idee dazu wie ich das beheben kann? Soll ich dazu die Zeilen hier posten der setnewday und common +/- 10 Zeilen?

_________________
Gruß Wiebke


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fehlermeldung bei neuem Tag
BeitragVerfasst: Fr 22 Okt, 2021 18:43 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 01 Sep, 2008 10:29
Beiträge: 118
Wohnort: Niedersachsen
Geschlecht: Männlich
LoGD: https://www.sotbd.de/about.php?op=source
Im Standard sieht Zeile 157 in der setnewday.php wie folgt aus:
$this->bbcode_second_pass_code('', 'list($key,$val)=each(db_fetch_assoc($result));')
Das each() erwartet hier eine Variable und keinen Rückgabewert einer anderen Methode.
Da diese aber in PHP 8 ohnehin entfernt wurden, würde ich mich gar nicht mehr darauf verlassen.

Hab das jetzt nicht getestet, da das bei uns schon lange nicht mehr in dieser Form läuft, aber es sollte funktionieren wenn du den Codeblock zur Optimierung (Zeilen 154 - 159) hiermit ersetzt:

$this->bbcode_second_pass_code('', 'savesetting("lastdboptimize", date("Y-m-d H:i:s"));
$result = db_query("SHOW TABLES");
while ($row = db_fetch_assoc($results)) {
foreach ($row as $key => $value) {
db_query("OPTIMIZE TABLE ".$value);
}
}')

Das andere sieht nach Schwierigkeiten mit dem Setzen des Headers zwecks Seitenkomprimierung aus. Wenn die Meldung nur im Zusammenhang mit dem ersten Fehler auftaucht handelt es sich um einen Folgefehler da PHP ja bereits den Fehler ausgegeben hat und danach keine header() mehr gesetzt werden können.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fehlermeldung bei neuem Tag
BeitragVerfasst: Fr 22 Okt, 2021 22:51 
Offline
Profi
Profi

Registriert: Do 22 Mai, 2008 09:08
Beiträge: 156
Geschlecht: Weiblich
LoGD: https://lotgd.zumhexenkessel.de/
Danke für die Antwort :)

Da ist bei mir wohl ganz gehörig was schief gelaufen. Ich habe die bearbeitet und mit eingefügten neuen Zeilen komme ich gerade auf 159 Zeilen.
Die von Dir erwähnte Zeile kann ich nicht finden. Weder in meiner aktuellen setnewday.php, noch in einer orginalen...
Ich habe auch nach teilstücken des Codes gesucht. Da konnte ich auch nichts finden.


[PHP]
<?php

// 11092004

/*setweather.php
An element of the global weather mod Version 0.5
Written by Talisman
Latest version available at http://dragonprime.cawsquad.net

translation: anpera
*/

if ((int)getsetting("expirecontent",180)>0){
$sql = "DELETE FROM commentary WHERE postdate<'".date("Y-m-d H:i:s",strtotime(date("r")."-".getsetting("expirecontent",180)." days"))."'";
db_query($sql);
$sql = "DELETE FROM news WHERE newsdate<'".date("Y-m-d H:i:s",strtotime(date("r")."-".getsetting("expirecontent",180)." days"))."'";
db_query($sql);
}
$sql = "DELETE FROM mail WHERE sent<'".date("Y-m-d H:i:s",strtotime(date("r")."-".getsetting("oldmail",14)."days"))."'";
db_query($sql);

switch(e_rand(1,9)){
case 1:
$clouds="Wechselhaft und kühl, mit sonnigen Abschnitten";
break;
case 2:
$clouds="Warm und sonnig";
break;
case 3:
$clouds="Regnerisch";
break;
case 4:
$clouds="Neblig";
break;
case 5:
$clouds="Kalt bei klarem Himmel";
break;
case 6:
$clouds="Heiß und sonnig";
break;
case 7:
$clouds="Starker Wind mit vereinzelten Regenschauern";
break;
case 8:
$clouds="Gewittersturm";
break;
case 9:
$clouds="Schneeregen";
break;
}
savesetting("weather",$clouds);

// Vendor in town?
if (e_rand(1,3)==1){
savesetting("vendor","1");
$sql = "INSERT INTO news(newstext,newsdate,accountid) VALUES ('`qDer Wanderhändler ist heute im Dorf!`0',NOW(),0)";
db_query($sql) or die(db_error($link));
}else{
savesetting("vendor","0");
}

// Other hidden paths
$spec="Keines";
$what=e_rand(1,3);
if ($what==1) $spec="Waldsee";
if ($what==3) $spec="Orkburg";
savesetting("dailyspecial","$spec");

// Gamedate-Mod by Chaosmaker
if (getsetting('activategamedate',0)==1) {
$date = getsetting('gamedate','0000-01-01');
$date = explode('-',$date);
$date[2]++;
switch ($date[2]) {
case 32:
$date[2] = 1;
$date[1]++;
break;
case 31:
if (in_array($date[1], array(4,6,9,11))) {
$date[2] = 1;
$date[1]++;
}
break;
case 30:
if ($date[1]==2) {
$date[2] = 1;
$date[1]++;
}
break;
case 29:
if ($date[1]==2 && ($date[0]%4!=0 || ($date[0]%100==0 && $date[0]%400!=0))) {
$date[2] = 1;
$date[1]++;
}
}
if ($date[1]==13) {
$date[1] = 1;
$date[0]++;
}
$date = sprintf('%04d-%02d-%02d',$date[0],$date[1],$date[2]);
savesetting('gamedate',$date);
}


// this now includes the database cleanup from index.php
$old = getsetting("expireoldacct",45)-5;
$new = getsetting("expirenewacct",10);
$trash = getsetting("expiretrashacct",1);

$sql = "SELECT acctid,emailaddress FROM accounts WHERE 1=0 "
.($old>0?"OR (laston < \"".date("Y-m-d H:i:s",strtotime(date("r")."-$old days"))."\")\n":"")
." AND emailaddress!='' AND sentnotice=0";
$result = db_query($sql);
for ($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);

// can't send mail on anpera.net

mail($row[emailaddress],"LoGD Charakter verfällt",
"
Einer oder mehrere deiner Charaktere von Legend of the Green Dragon auf
".$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME']."
verfällt demnächst und wird gelöscht. Wenn du den Charakter retten willst, solltest
du dich bald möglichst mal damit einloggen!
Falls der Charakter ein Haus hatte, ist dieses bereits enteignet.",
"From: ".getsetting("gameadminemail","postmaster@localhost.com")
);
$sql = "UPDATE accounts SET sentnotice=1,house=0,housekey=0,marriedto=0 WHERE acctid='$row[acctid]'";
if ((int)$row[acctid]==(int)getsetting("hasegg",0)) savesetting("hasegg",stripslashes(0));
db_query($sql);
$sql = "UPDATE houses SET owner=0,status=3 WHERE owner=$row[acctid] AND status=1";
db_query($sql);
$sql = "UPDATE houses SET owner=0,status=4 WHERE owner=$row[acctid] AND status=0";
db_query($sql);
$sql = "UPDATE items SET owner=0 WHERE owner=$row[acctid]";
db_query($sql);
$sql = "DELETE FROM pvp WHERE acctid2=$row[acctid] OR acctid1=$row[acctid]";
db_query($sql) or die(db_error(LINK));
$sql = "UPDATE accounts SET charisma=0,marriedto=0 WHERE marriedto=$row[acctid]";
db_query($sql);
}

$old+=5;
$sql = "DELETE FROM accounts WHERE superuser<=1 AND (1=0\n"
.($old>0?"OR (laston < \"".date("Y-m-d H:i:s",strtotime(date("r")."-$old days"))."\")\n":"")
.($new>0?"OR (laston < \"".date("Y-m-d H:i:s",strtotime(date("r")."-$new days"))."\" AND level=1 AND dragonkills=0)\n":"")
.($trash>0?"OR (laston < \"".date("Y-m-d H:i:s",strtotime(date("r")."-".($trash+1)." days"))."\" AND level=1 AND experience < 10 AND dragonkills=0)\n":"")
.")";
//echo "<pre>".HTMLEntities($sql)."</pre>";
db_query($sql) or die(db_error(LINK));
// end cleanup

savesetting("lastdboptimize",date("Y-m-d H:i:s"));
$result = db_query("SHOW TABLES");
for ($i=0;$i<db_num_rows($result);$i++){
list($key,$val)=each(db_fetch_assoc($result));
db_query("OPTIMIZE TABLE $val");
}
?>[/PHP]

_________________
Gruß Wiebke


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fehlermeldung bei neuem Tag
BeitragVerfasst: Sa 23 Okt, 2021 13:14 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 01 Sep, 2008 10:29
Beiträge: 118
Wohnort: Niedersachsen
Geschlecht: Männlich
LoGD: https://www.sotbd.de/about.php?op=source
Nun die viert-letzte Zeile aus deinem Auszug entspricht doch genau dem each() was ich gemeint habe.

Und es wäre natürlich bedeutend einfacher, wenn deine Source zugänglich wäre.
Der Link in deinem Profil fördert nur PHP Fehler zutage.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fehlermeldung bei neuem Tag
BeitragVerfasst: Mo 25 Okt, 2021 14:02 
Offline
Profi
Profi

Registriert: Do 22 Mai, 2008 09:08
Beiträge: 156
Geschlecht: Weiblich
LoGD: https://lotgd.zumhexenkessel.de/
Ich habe meine Source nicht abgestellt. Also nicht wissentlich. Wie mache ich sie denn zugänglich?
War wohl nicht mein Tag neulich dass ich das nicht gefunden hab
Ich schsue nochmal. Dankeschön für die Geduld

_________________
Gruß Wiebke


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fehlermeldung bei neuem Tag
BeitragVerfasst: Mo 25 Okt, 2021 14:07 
Offline
Profi
Profi

Registriert: Do 22 Mai, 2008 09:08
Beiträge: 156
Geschlecht: Weiblich
LoGD: https://lotgd.zumhexenkessel.de/
jetzt ist auch der richtige Link in meinem Profil

_________________
Gruß Wiebke


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fehlermeldung bei neuem Tag
BeitragVerfasst: Do 28 Okt, 2021 06:23 
Offline
Profi
Profi

Registriert: Do 22 Mai, 2008 09:08
Beiträge: 156
Geschlecht: Weiblich
LoGD: https://lotgd.zumhexenkessel.de/
Kleiner Nachtrag: Bekomme jetzt Ab und an immernoch eine fehlermeldung:
Fatal error: Using $this when not in object context in /www/htdocs/w01c469a/logd/setnewday.php on line 154

Zeilen 150 - 161:
$this->bbcode_second_pass_code('', '//echo "<pre>".HTMLEntities($sql)."</pre>";
db_query($sql) or die(db_error(LINK));
// end cleanup

$this->bbcode_second_pass_code('', 'savesetting("lastdboptimize", date("Y-m-d H:i:s"));
$result = db_query("SHOW TABLES");
while ($row = db_fetch_assoc($results)) {
foreach ($row as $key => $value) {
db_query("OPTIMIZE TABLE ".$value);
}
}')
?>')

_________________
Gruß Wiebke


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fehlermeldung bei neuem Tag
BeitragVerfasst: Do 28 Okt, 2021 19:48 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 01 Sep, 2008 10:29
Beiträge: 118
Wohnort: Niedersachsen
Geschlecht: Männlich
LoGD: https://www.sotbd.de/about.php?op=source
Dir ist vielleicht schon aufgefallen, dass der BB-Code hier im Forum zur Formatierung von Codeblöcken leider nicht richtig funktioniert... du hast die Ausgabe des Forums nun 1:1 eingefügt, was natürlich nicht funktioniert, daher hier nochmal der Teil ohne die Formatierung:

savesetting("lastdboptimize", date("Y-m-d H:i:s"));
$result = db_query("SHOW TABLES");
while ($row = db_fetch_assoc($result)) {
foreach ($row as $key => $value) {
db_query("OPTIMIZE TABLE ".$value);
}
}

Und ja, Source geht schonmal ^^


Zuletzt geändert von Shaddar am Mo 15 Nov, 2021 22:20, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fehlermeldung bei neuem Tag
BeitragVerfasst: Sa 13 Nov, 2021 15:37 
Offline
Profi
Profi

Registriert: Do 22 Mai, 2008 09:08
Beiträge: 156
Geschlecht: Weiblich
LoGD: https://lotgd.zumhexenkessel.de/
Ich muss leider nochmal "nerven"...
ich habe hin und wieder einen Fehler bei einem neuen Tag:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, null given in /www/htdocs/w01c469a/logd/dbwrapper.php on line 81

Zeilen 77 - 84:

function db_fetch_assoc($result){
global $dbtimethishit;
$dbtimethishit -= getmicrotime();
$fname = DBTYPE."_fetch_assoc";
$r = $fname($result);
$dbtimethishit += getmicrotime();
return $r;
}

Hat da noch jemand eine Lösung, wie ich die Fehlermeldung abstellen kann?

_________________
Gruß Wiebke


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fehlermeldung bei neuem Tag
BeitragVerfasst: Mo 15 Nov, 2021 22:21 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 01 Sep, 2008 10:29
Beiträge: 118
Wohnort: Niedersachsen
Geschlecht: Männlich
LoGD: https://www.sotbd.de/about.php?op=source
Da hatte sich bei mir ein "s" zuviel eingeschlichen.

Ersetze in
Zitat:
while ($row = db_fetch_assoc($results)) {

das $results einfach durch $result.

Habe meinen Beitrag oben bereits editiert.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fehlermeldung bei neuem Tag
BeitragVerfasst: Di 16 Nov, 2021 08:17 
Offline
Profi
Profi

Registriert: Do 22 Mai, 2008 09:08
Beiträge: 156
Geschlecht: Weiblich
LoGD: https://lotgd.zumhexenkessel.de/
Vielen Lieben Dank :)
Jetzt läuft wieder fehlerfrei *freu*

_________________
Gruß Wiebke


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum