anpera.net
https://anpera.dyndns.org/phpbb3/

elseif reagiert nicht
https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=4869
Seite 1 von 1

Autor:  Liath [ Di 21 Apr, 2009 20:24 ]
Betreff des Beitrags:  elseif reagiert nicht

Hi zusammen

Irgendwie hab ich ein seltsames Problem, ich habe mir die lodge.php erweitert, so dass man dort für DP´s ein bisschen mit Knappen was machen kann, soweit ich alles durchtesten konnte klappt auch alles, allerdings greift eine elseif nicht auf die addnavs die ich ihm gebe... es passiert einfach garnichts.

Ich habe mir schon ein echo eingefügt um zu überprüfen ob die daten alle übermittelt werden, der link steht oben in der Adresszeile richtig drin, nur führt er den Inhalt nicht aus. Ich hab schon gesucht wie nen Irrer, doch fällt mir absolut kein Fehler auf...

mein echo sieht so aus:
$this->bbcode_second_pass_code('', 'echo 'lodge.php?op='.$_GET['op'].'&act='.$_GET['act'].'&level='.$_GET['level'];')
das ergebniss folgendermassen:
$this->bbcode_second_pass_code('', 'lodge.php?op=disc&act=kauf&level=5')

ein Beispiel Link wär dieser:
$this->bbcode_second_pass_code('', 'addnav("Level 5 (".$cost['disc_buy']." DP)","lodge.php?op=disc&act=kauf&level=5");

oder

<tr class='trlight'><td>".create_lnk('Level 5','lodge.php?op=disc&act=kauf&level=5',true,true)."</td><td>".$cost['disc_buy']." DP</td>')

die entsprechende elseif ist diese:
$this->bbcode_second_pass_code('', '
if ($_GET['op']=='disc') {
........
elseif ($_GET['act']=='kauf') {
.....
')

das $_GET['op'] führt er noch aus, nur das $_GET['act'] nicht mehr, langsam zweifel ich echt an meinem Verstand...

der link zum source: http://germany-project.de/ds3/source.ph ... Flodge.php
das elseif auf das er zugreifen soll ist ab Zeile: 377 und die else in der die Links stehen ab Zeile: 502

dabei handelt es sich um die neue DS/3 Version, aber das tut denke ich nichts zur sache. Ich hoffe das mir jemand bei dem kleinen Problem weiterhelfen kann

Autor:  Harthas [ Di 21 Apr, 2009 20:57 ]
Betreff des Beitrags:  Re: elseif reagiert nicht

Du hast da einen Denkfehler.
Wenn das erste if zutrifft, wird das elseif automatisch übersprungen. Erst wenn das erste if nicht true liefert, wird das elseif kontrolliert, u.s.w.

Autor:  Salator [ Di 21 Apr, 2009 21:01 ]
Betreff des Beitrags:  Re: elseif reagiert nicht

Deine Flodge.php ist nicht einsehbar, mit der DS3 musst du die Datei in der source.php explizit freigeben.

Vermutung: Du hast die Abfrage auf GET[act] in der falschen Ebene.
Korrekt wäre diese Struktur:
PHP:
if($_GET['op']==1)
{
if($_GET['act']=='a')
{
....
}
elseif($_GET['act']=='b')
{
....
}
else
{
....
}
}
elseif($_GET['op']==2)
...


Nicht funktionieren würde das folgende Konstrukt, wenn in einem Link op=1 und act=a übergeben werden. Zwei voneinander unabhängige Sachen können allerdings technisch so geschrieben werden, auch wenn das unsauber aussieht.
PHP:
if($_GET['op']==1)
{
....
}
elseif($_GET['act']=='a')
{
...
}

Autor:  Liath [ Di 21 Apr, 2009 21:12 ]
Betreff des Beitrags:  Re: elseif reagiert nicht

Harthas hat geschrieben:
Du hast da einen Denkfehler.
Wenn das erste if zutrifft, wird das elseif automatisch übersprungen. Erst wenn das erste if nicht true liefert, wird das elseif kontrolliert, u.s.w.

das weiss ich ja... es trifft definitiv kein if vorher zu... dazu ein kleiner zusatz...

wenn man eine ebene so aufbaut das man if, elseif und else hat, wird natürlich erst das if geprüft, trifft dieses nicht zu werden die elseif geprüft.... sobald eins davon zutrifft, wird das script angehalten und nichts weiter mehr gecheckt... erst wenn nichts von alledem zutrifft wird die else ausgeführt


Salator hat geschrieben:
Deine Flodge.php ist nicht einsehbar, mit der DS3 musst du die Datei in der source.php explizit freigeben.

Vermutung: Du hast die Abfrage auf GET[act] in der falschen Ebene.

die richtige ebene ist es auch 100% da die ganzen abfragen vorher funktionieren, ich habe alle elseif´s mal in if´s verwandelt, selbst da greift er dort nicht

wegen dem source... bei mir hat er den link aufgerufen und in der Übersicht seh ich die Datei auch Oo
http://germany-project.de/ds3/source.php vielleicht geht dieser link

Autor:  Harthas [ Di 21 Apr, 2009 21:22 ]
Betreff des Beitrags:  Re: elseif reagiert nicht

Ich seh die Datei auch nicht. ;-)
Bist du ev. eingeloggt, wenn du die Datei anschaust?

Autor:  Liath [ Di 21 Apr, 2009 21:37 ]
Betreff des Beitrags:  Re: elseif reagiert nicht

japp bin ich, aber kevz sieht sie doch auch Oo

ich weiss nichtmal wie ich die datei bei dem sourceeditor freigebe Oo irgendwie fehlt mir da was unter Aktionen

Autor:  Liath [ Di 21 Apr, 2009 21:51 ]
Betreff des Beitrags:  Re: elseif reagiert nicht

ok... ich hab mal nen anderen sourceeditor installiert... die datei sollte nun einsehbar sein

http://germany-project.de/ds3/source.php

Autor:  Salator [ Mi 22 Apr, 2009 02:04 ]
Betreff des Beitrags:  Re: elseif reagiert nicht

Die Code-Menge ist verdammt unübersichtlich, wenn man keine Blöcke ausblenden kann, aber ich tät mal sagen du hast die kauf-act innerhalb von dem Block, der in Zeile 171 beginnt mit
if(db_num_rows($sql)>0)
Da kommt der User ohne Knappe natürlich nie hin.

Autor:  Liath [ Mi 22 Apr, 2009 02:54 ]
Betreff des Beitrags:  Re: elseif reagiert nicht

omg >.<
wie doof muss man sein, ich glaub ich hätte da noch tage gesucht... ohne es jetzt versucht zu haben ist jetzt schon klar das du recht hast...

danke dir... ich glaub ich brauch demnächst mal ne dicke brille -.-

€dith:
klappt jetzt, vielen Dank nochmal Salator, dann wars wohl doch die falsche Ebene wie Du angemerkt hast... im gewissen Sinne

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/