anpera.net https://anpera.dyndns.org/phpbb3/ |
|
newday.php - Fatal error: Only variables can be passed https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=3422 |
Seite 1 von 1 |
Autor: | ReaL [ Fr 02 Mär, 2007 16:12 ] |
Betreff des Beitrags: | newday.php - Fatal error: Only variables can be passed |
Hallo, seit gestern haben wir ein Problem in der newday.php. Allerdings haben wir an der Datei nichts geändert. Fehlermeldung: $this->bbcode_second_pass_code('', ' Fatal error: Only variables can be passed by reference in /www/htdocs/w0079527/newday.php on line 2025') Und line 2025 sieht so aus: $this->bbcode_second_pass_code('', 'reset($config['forestfights']);') Ich vermute zwar, dass der Fehler irgendwo in der common.php liegt, aber ich wüsste einfach nicht wo^^ Und die common.php funktioniert ganz normal/fehlerfrei. Source ist verlinkt. Danke für Hilfe im vorraus! ![]() |
Autor: | XxNoahxX [ Di 13 Mär, 2007 17:38 ] |
Betreff des Beitrags: | |
poste doch mal deine newday datei villeicht ist da vor ja nen fehler(vor line 2025)^^ |
Autor: | ReaL [ Di 13 Mär, 2007 17:49 ] |
Betreff des Beitrags: | |
Ist doch im Source. Aber für die faulen: newday.php (Die Zeile mit dem Fehler hat sich um ~10 Zeilen verschoben. Vorrübergehend habe ich den Fehler behoben, indem ich diesen Codeblock auskommentiert hab: [php] // FEHLER!!!!!!! (Die Frage ist wieso...) ![]() // für Anpera.net wieder auskommentiert /* reset($config['forestfights']); while (list($key,$val)=each($config['forestfights'])){ $config['forestfights'][$key]['left']--; output("`@Du bekommst eine Extrarunde für die Punkte auf `^{$val['bought']}`@."); $session['user']['turns']++; if ($val['left']>1){ output(" Du hast `^".($val['left']-1)."`@ Tage von diesem Kauf übrig.`n"); }else{ unset($config['forestfights'][$key]); output(" Dieser Kauf ist damit abgelaufen.`n"); } } // für Anpera.net wieder auskommentiert */[/php] |
Autor: | azraeldemon [ Mi 14 Mär, 2007 10:22 ] |
Betreff des Beitrags: | |
habt ihr an der lodge.php was geändert? weil dort kauft mann sich die forestfights das hier ist der part aus der logde.php der sich um die forestfights dreht [php]}elseif ($_GET['op']=="forestfights"){ if (!is_array($config['forestfights'])) $config['forestfights']=array(); output("1 Extra Waldkampf pro Tag für 30 Tage kostet 100 Punkte. Du bekommst einen extra Waldkampf an jedem Tag, an dem du spielst.`n"); if($pointsavailable<100){ output("`n`n`\$Du hast nicht genug Punkte!`0"); } else { addnav("Bestätige Extra Waldkämpfe"); addnav("JA","lodge.php?op=fightbuy"); } addnav("Zurück zur Jägerhütte","lodge.php"); reset($config['forestfights']); while (list($key,$val)=each($config['forestfights'])){ //output("Du hast noch {$val['left']} Tage, an denen zu einen zusätzlichen Waldkampf für deine am {$val['bought]} bekommst.`n"); output("Du hast noch {$val['left']} Tage, an denen zu einen zusätzlichen Waldkampf für deine am {$val['bought']} bekommst.`n"); } }elseif ($_GET['op']=="fightbuy"){ if (count($config['forestfights'])>=5){ output("Du Kannst maximal 5 extra Waldkämpfe haben pro Tag.`n"); }else{ if ($pointsavailable>0){ array_push($config['forestfights'],array("left"=>30,"bought"=>date("M d"))); output("Du wirst in den nächsten 30 Tagen, an denen du spielst, einen extra Waldkampf haben."); $session['user']['donationspent']+=100; }else{ output("Extra Waldkämpfe zu kaufen kostet 100 Punkte, aber du hast nicht so viele."); } } addnav("Zurück zur Jägerhütte","lodge.php");[/php] |
Autor: | Eliwood [ Mi 14 Mär, 2007 16:48 ] |
Betreff des Beitrags: | |
Machen wir ne Krücke... [php]// FEHLER!!!!!!! (Die Frage ist wieso...) Sad if(!empty($config['forestfights']) AND is_array($config['forestfights'])) reset($config['forestfights']); while (list($key,$val)=each($config['forestfights'])){ $config['forestfights'][$key]['left']--; output("`@Du bekommst eine Extrarunde für die Punkte auf `^{$val['bought']}`@."); $session['user']['turns']++; if ($val['left']>1){ output(" Du hast `^".($val['left']-1)."`@ Tage von diesem Kauf übrig.`n"); }else{ unset($config['forestfights'][$key]); output(" Dieser Kauf ist damit abgelaufen.`n"); } } [/php] ... Obwohl. Die Frage ist wohl berechtigt: Was bitte habt ihr gedreht? O.o 5 Zeilen vorher wird ja bereits der Fall berücksichtigt, falls das array keines sein sollte. Aber irgendwie gehts nicht O.o |
Autor: | ReaL [ Mi 14 Mär, 2007 18:04 ] |
Betreff des Beitrags: | |
Erstmal danke für die Hilfe, Eliwood und azraeldemon! @azraeldemon Der Abschnitt ist in meiner lodge.php genauso, hab ihn trotzdem mal mit dem ersetzt, was du gepostet hast. Ist leider auch keine Lösung... @Eliwood Ich hab den Code mal eingebaut, aber immer noch der gleiche Fehler: $this->bbcode_second_pass_code('', 'Fatal error: Only variables can be passed by reference in /www/htdocs/w0079527/newday.php on line 2038') Line 2038:[php]while (list($key,$val)=each($config['forestfights'])){[/php] :/ |
Autor: | Seto [ Mi 14 Mär, 2007 19:14 ] |
Betreff des Beitrags: | |
öffne newday.php suche [php] reset($config['forestfights']); [/php] füge davor ein [php] $config = unserialize($session['user']['donationconfig']); if (!is_array($config['forestfights'])) $config['forestfights']=array();[/php] dann müsste es eigentlich wieder funktzen Gruß Seto ![]() |
Autor: | Kamui [ Mi 14 Mär, 2007 19:20 ] |
Betreff des Beitrags: | |
@Seto: Der Codeteil den du grade gepostet hast ist schon im Standart enthalten ![]() |
Autor: | Seto [ Mi 14 Mär, 2007 19:21 ] |
Betreff des Beitrags: | |
iw aber wenn ich mich da grad nicht verlesen habe fehlt das bei real. |
Autor: | Kamui [ Mi 14 Mär, 2007 19:25 ] |
Betreff des Beitrags: | |
In der Datei selbst fehlt es nicht sonst wäre der Fehler ja wohl logisch aber hier in dem Teil den er gepostet hat ist es nur nicht vorhanden |
Autor: | Eliwood [ Mi 14 Mär, 2007 20:39 ] |
Betreff des Beitrags: | |
ReaL hat geschrieben: @Eliwood
Ich hab den Code mal eingebaut, aber immer noch der gleiche Fehler: $this->bbcode_second_pass_code('', 'Fatal error: Only variables can be passed by reference in /www/htdocs/w0079527/newday.php on line 2038') Line 2038:[php]while (list($key,$val)=each($config['forestfights'])){[/php] :/ Okay. Zeit fürn' bissel Debugging, am besten testest das selbst mit nem Admincharakter: [php]if($session['user']['superuser']) var_dump($config['forestfights']);[/php] Gib mir dann die Ausgabe. Achja: Solltest du compress_out anhaben (Funktion page_footer()), bitte die Stelle Kommentieren (echo compress_put($output)), dafür die Stelle "echo $output" entkommentieren. |
Autor: | ReaL [ Mi 14 Mär, 2007 21:08 ] |
Betreff des Beitrags: | |
Auch allen andere danke für die Hilfe! @Eliwood: Die Ausgabe ist einfach: $this->bbcode_second_pass_code('', 'NULL') Ich hoffe das hilft, ich weiß nämlich nicht wirklich was damit anzufangen^^ |
Autor: | Eliwood [ Mi 14 Mär, 2007 21:54 ] |
Betreff des Beitrags: | |
ReaL hat geschrieben: Auch allen andere danke für die Hilfe!
@Eliwood: Die Ausgabe ist einfach: $this->bbcode_second_pass_code('', 'NULL') Ich hoffe das hilft, ich weiß nämlich nicht wirklich was damit anzufangen^^ Oh. Ich hätte vielleicht erwähnen sollten dass ich das gerne vor dem hier stehen habe: [php]while (list($key,$val)=each($config['forestfights'])){ [/php] ^^" |
Autor: | ReaL [ Mi 14 Mär, 2007 22:00 ] |
Betreff des Beitrags: | |
Okay, dann kommt das hier: $this->bbcode_second_pass_code('', 'string(1) "A"') |
Autor: | Eliwood [ Mi 14 Mär, 2007 22:16 ] |
Betreff des Beitrags: | |
ReaL hat geschrieben: Okay, dann kommt das hier:
$this->bbcode_second_pass_code('', 'string(1) "A"') Jetzt ersetzt du mal: [php]$config = unserialize($session['user']['donationconfig']); if (!is_array($config['forestfights'])) $config['forestfights']=array(); // FEHLER!!!!!!! (Die Frage ist wieso...) ![]() if(!empty($config['forestfights']) AND is_array($config['forestfights'])) reset($config['forestfights']); if($session['user']['superuser']) var_dump($config['forestfights']); while (list($key,$val)=each($config['forestfights'])){ $config['forestfights'][$key]['left']--; output("`@Du bekommst eine Extrarunde für die Punkte auf `^{$val['bought']}`@."); $session['user']['turns']++; if ($val['left']>1){ output(" Du hast `^".($val['left']-1)."`@ Tage von diesem Kauf übrig.`n"); }else{ unset($config['forestfights'][$key]); output(" Dieser Kauf ist damit abgelaufen.`n"); } }[/php] Mit [php]$config = unserialize($session['user']['donationconfig']); if (!is_array($config['forestfights'])) $config['forestfights']=array(); // FEHLER!!!!!!! (Die Frage ist wieso...) ![]() if(!empty($config['forestfights']) AND is_array($config['forestfights'])) { if($session['user']['superuser']) var_dump($config['forestfights']); reset($config['forestfights']); while (list($key,$val)=each($config['forestfights'])){ $config['forestfights'][$key]['left']--; output("`@Du bekommst eine Extrarunde für die Punkte auf `^{$val['bought']}`@."); $session['user']['turns']++; if ($val['left']>1){ output(" Du hast `^".($val['left']-1)."`@ Tage von diesem Kauf übrig.`n"); }else{ unset($config['forestfights'][$key]); output(" Dieser Kauf ist damit abgelaufen.`n"); } } }[/php] Und gibst mir erneut die Ausgabe. |
Autor: | ReaL [ Do 15 Mär, 2007 07:15 ] |
Betreff des Beitrags: | |
Damit funktionierts! Danke! Und was hast du jetzt genau geändert?^^ Danke nochmal an alle, die mir geholfen haben/es versucht haben, und besonders auch an Seto! |
Autor: | Eliwood [ Do 15 Mär, 2007 17:23 ] |
Betreff des Beitrags: | |
ReaL hat geschrieben: Damit funktionierts! Danke!
Und was hast du jetzt genau geändert?^^ Danke nochmal an alle, die mir geholfen haben/es versucht haben, und besonders auch an Seto! Hab die Klammern um den Block vergessen zu schreiben, das hab ich nun nachgeholt *hust* Die Zeile mit dem var_dump() kannst du weglöschen. Jetzt bleibt nur noch die Frage ob es wirklich funktioniert. Ich meine, wenn man Bonuswaldkämpfe hat... ^^ |
Autor: | ReaL [ Do 15 Mär, 2007 21:41 ] |
Betreff des Beitrags: | |
Das kann ich leider gerade nicht testen, da bei der lodge.php der gleiche Fehler kommt, wie er in der newday.php war, wenn man Waldkämpfe kaufen will... [php]}elseif ($_GET['op']=="forestfights"){ if (!is_array($config['forestfights'])) $config['forestfights']=array(); output("1 Extra Waldkampf pro Tag für 30 Tage kostet 100 Punkte. Du bekommst einen extra Waldkampf an jedem Tag, an dem du spielst.`n"); if($pointsavailable<100){ output("`n`n`\$Du hast nicht genug Punkte!`0"); } else { addnav("Bestätige Extra Waldkämpfe"); addnav("JA","lodge.php?op=fightbuy"); } addnav("Zurück zur Jägerhütte","lodge.php"); reset($config['forestfights']); while (list($key,$val)=each($config['forestfights'])){ //output("Du hast noch {$val['left']} Tage, an denen zu einen zusätzlichen Waldkampf für deine am {$val['bought]} bekommst.`n"); output("Du hast noch {$val['left']} Tage, an denen zu einen zusätzlichen Waldkampf für deine am {$val['bought']} bekommst.`n"); } }elseif ($_GET['op']=="fightbuy"){ if (count($config['forestfights'])>=5){ output("Du Kannst maximal 5 extra Waldkämpfe haben pro Tag.`n"); }else{ if ($pointsavailable>0){ array_push($config['forestfights'],array("left"=>30,"bought"=>date("M d"))); output("Du wirst in den nächsten 30 Tagen, an denen du spielst, einen extra Waldkampf haben."); $session['user']['donationspent']+=100; }else{ output("Extra Waldkämpfe zu kaufen kostet 100 Punkte, aber du hast nicht so viele."); } } addnav("Zurück zur Jägerhütte","lodge.php");[/php] Falls es hilft:[php] if($session['user']['superuser']) var_dump($config['forestfights']);[/php] gibt wieder $this->bbcode_second_pass_code('', 'string(1) "A" ') aus. |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |