XXNicoRyckersXX Geschrieben 13. Februar 2012 Teilen Geschrieben 13. Februar 2012 Hallo ich habe seit einiger Zeit ein Script bei mir auf der Hompage D.F.F.L Deutsche-Fun-Fifaliga laufen, was soweit auch Funktioniert. Ich erkläre mal das Script. Wir sind eine Fifa Online Liga und haben eine Automatische Teamauswahl der freien Teams, sprich eine Liste wo die Freien Teams aufgelistet sind, dort makiert man ein Team und gibt seine ICQ Nr. an das Script überträgt dann den User Namen und die ICQ Nr automatisch in die Trainerliste ein. Desweiteren arbeiten wir mit dem LMO=Liga Manager Online und dem Script ergpost. Um im Ergpost ein ergebniss einzutragen was dann automatisch in die Tabelle eingetragen wird muss der Name im LMO in der Notiz zur Manschaft eingetragen sein. Genau da liegt das Problem, der User Name wird nicht in den LMO(Tabelle) eingetragen, ich bekomme dort folgende Fehlermeldung: Warning: Invalid argument supplied for foreach() in /var/www/clients/client623/web4009/web/usr_web/pkinc/public/lmo/addon/classlib/classes/liga.class.php on line 388 Warning: Invalid argument supplied for foreach() in /var/www/clients/client623/web4009/web/usr_web/pkinc/public/lmo/addon/classlib/classes/liga.class.php on line 486 Ich weiss einfach nicht mehr weiter, da ich mich mit dieser Foreach Funktion nicht auskenne. Wer kann mir helfen dieses Script ordentlich zum laufen zu bekommen? Ich habe schon soviel versucht und mehrere Foren durchstöbert aber niemand war bereit mir zu Helfen. Ich hoffe hier ist jemand der mir helfen kann. Ich kann euch dann die entsprechenden Dateien gerne zu kommen lassen. Also das steht in meiner Zeile 388: foreach($iniData["Teams"] as $key=>$value) { Und das in Zeile 486: foreach ($optionDetails as $detailsKey=>$detailsValue) { Das ganze läuft über zwei Dateien einmal die Verarbeitung_123.php, Teamtake.php und eine Datenbank Tabelle. Dazu gehören dann noch ein paar andere php Dateien die aber soweit funktionieren. Wer würde sich die mal ansehen? Ich kann sie euch gerne hier Posten? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 13. Februar 2012 Teilen Geschrieben 13. Februar 2012 Was steht in $iniData["Teams"] bzw $optionDetails für ein Datentyp drin? Nach Deiner Programmierung wird ein assoziatives Array erwartet. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
XXNicoRyckersXX Geschrieben 13. Februar 2012 Autor Teilen Geschrieben 13. Februar 2012 Danke für die schnelle Antwort, wo muss ich denn nachsehen was da drinne steht? kannst du mir da bitte einen Hinweis geben wo ich suchen muss? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MLX Geschrieben 13. Februar 2012 Teilen Geschrieben 13. Februar 2012 Schau wo die Variablen deklariert werden, in deinem Fall müssten die Daten wohl aus der Datenbank kommen, das könnte dann z.B. so aussehen: $optionDetails = mysql_fetch_array($query); [/php] $iniData["Team"] wird wohl aus einer Konfigurationsdatei ausgelesen (zumindest lässt der Name darauf schließen), vll mit parse_ini_file(). Du könntest auch mal vor dem foreach() ein print_r($variablenName) setzen, dann siehst du den Inhalt der Variablen und erkennst wenn es kein Assoziativer Array ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
XXNicoRyckersXX Geschrieben 13. Februar 2012 Autor Teilen Geschrieben 13. Februar 2012 Hier einmal die DB, vll kannst du dir das mal ansehen, da ich mich db's nicht auskenne. Ich habe es so von jemanden bekommen und der weiss aber leider auch nicht was los ist.team_info.rar Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MLX Geschrieben 13. Februar 2012 Teilen Geschrieben 13. Februar 2012 Mit der Datenbank an sich kann ich nichts anfangen, wenn dann brauche ich schon den Source Code (die .php Datei). Allerdings solltest du dich, wenn du so etwas betreiben willst schon selbst damit auskennen, denn das ist sicherlich nicht der letzte Bug und es werden bestimmt noch einige Sicheheitslücken aufkommen... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
XXNicoRyckersXX Geschrieben 13. Februar 2012 Autor Teilen Geschrieben 13. Februar 2012 meinst du die php Dateien über das es läuft? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
XXNicoRyckersXX Geschrieben 13. Februar 2012 Autor Teilen Geschrieben 13. Februar 2012 Also über die Teamtake.php wählt man das Team aus und über die Verarbeitung_123.php wird es ausgeführt.teamtake.rarverarbeitung_123!.rar Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ins0 Geschrieben 13. Februar 2012 Teilen Geschrieben 13. Februar 2012 Ich lege mich mal ganz weit aus dem Fenster, ich habe vor zig Jahren mal so ein Liga Script für einen Kunden angepasst und ich bin der Meinung, das dieser Fehler durch die Text Datenbank ausgelößt worden ist. Das Script speicherte die Daten für Trainer etc in einer Textdatei die anschließend mit parse_ini ausgelesen worden ist, ich hatte damals die Functions für das schreiben der Werte und das auslesen neu geschrieben und damit war der Fehler behoben. Wie gesagt ich lehne mich hier ausem Fenster aber ich bin mir sicher das es das gleiche Script war. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 13. Februar 2012 Teilen Geschrieben 13. Februar 2012 (bearbeitet) mach vor der foreach Schleife ein print_r($deinevariable); die("stop"); Dann siehst Du was in der Variablen steht. Aber, wenn Du an solchen grundlegenden Dingen scheiterst, dann solltest Du kein Produktivsystem betreuen, denn damit ist Wahrscheinlichkeit sehr hoch, dass auch wirklich schwere Fehler in den Scripte sind, die man missbrauchen kann. Wenn ich solche Konstrukte sehe if ($team_nr == '1') {$change = 'Team1'; $changeicq = 'Team1';} else if ($team_nr == '2') {$change = 'Team2'; $changeicq = 'Team2';} dann wird mir Angst und Bange, noch nie was von switch-case gehört? Außerdem kann man das ganze mit OOP oder wenigstens Funktionen strukturieren! Ebenso sollte man Ausgabe und Verarbeitung trennen. Mein Tipp wirf das alte Zeug weg und baue es strukturiert auf Bearbeitet 13. Februar 2012 von flashpixx Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MLX Geschrieben 13. Februar 2012 Teilen Geschrieben 13. Februar 2012 @XXNicoRyckersXX jetzt bräuchte man noch die Liga Klasse, die oben in der Fehlermeldung steht ;-) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
XXNicoRyckersXX Geschrieben 13. Februar 2012 Autor Teilen Geschrieben 13. Februar 2012 Hier nochmal die liga.class.iniliga.class.rar Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
XXNicoRyckersXX Geschrieben 13. Februar 2012 Autor Teilen Geschrieben 13. Februar 2012 @flashpixx ich habe dieses Script von jemanden bekommen, wenn ich es selber schreiben könnte wäre ich sehr froh darüber. Ich suche ja jemanden der es mir repariert bzw vernünftig erstellt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
XXNicoRyckersXX Geschrieben 13. Februar 2012 Autor Teilen Geschrieben 13. Februar 2012 @ins0 kannst du dir es denn mal ansehen? Die db und die php Dateien habe ich ja hier hochgeladen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
XXNicoRyckersXX Geschrieben 13. Februar 2012 Autor Teilen Geschrieben 13. Februar 2012 Es wäre für mich vom grossen Vorteil wenn ich diese Funktion auf meiner Seite funktionierend hätte. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
XXNicoRyckersXX Geschrieben 13. Februar 2012 Autor Teilen Geschrieben 13. Februar 2012 mach vor der foreach Schleife ein print_r($deinevariable); die("stop"); Dann siehst Du was in der Variablen steht. Aber, wenn Du an solchen grundlegenden Dingen scheiterst, dann solltest Du kein Produktivsystem betreuen, denn damit ist Wahrscheinlichkeit sehr hoch, dass auch wirklich schwere Fehler in den Scripte sind, die man missbrauchen kann. Wenn ich solche Konstrukte sehe if ($team_nr == '1') {$change = 'Team1'; $changeicq = 'Team1';} else if ($team_nr == '2') {$change = 'Team2'; $changeicq = 'Team2';} dann wird mir Angst und Bange, noch nie was von switch-case gehört? Außerdem kann man das ganze mit OOP oder wenigstens Funktionen strukturieren! Ebenso sollte man Ausgabe und Verarbeitung trennen. Mein Tipp wirf das alte Zeug weg und baue es strukturiert auf Ich habe auf meiner Seite alles normale Scripte laufen, das Script ist mal von irg jemanden geschrieben worden den ich persönlich nicht kenne. Kannst du mir das nicht vll umschreiben auf eine sichere Art, eine Funktionierende? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
XXNicoRyckersXX Geschrieben 14. Februar 2012 Autor Teilen Geschrieben 14. Februar 2012 So dann werde ich jetzt mal anfangen das alles umzuschreiben, vll kann mir ja jemand helfen. Wie schreibe ich den diesen Code in Case um? if ($team_nr == '1') {$change = 'Team1'; $changeicq = 'Team1';} else if ($team_nr == '2') {$change = 'Team2'; $changeicq = 'Team2';} in diesen PHP Code also die switch-Case <?php if ($i == 0) { echo "i equals 0"; } elseif ($i == 1) { echo "i equals 1"; } elseif ($i == 2) { echo "i equals 2"; } switch ($i) { case 0: echo "i equals 0"; break; case 1: echo "i equals 1"; break; case 2: echo "i equals 2"; break; } ?> [/PHP] Ich bräuchte halt die erste Zeile im Switch-Case Format. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ins0 Geschrieben 14. Februar 2012 Teilen Geschrieben 14. Februar 2012 Du meinst, jetzt fängst du an nicht gleich davon zu Sprechen, das wir deine Arbeit machen sollen, sondern du jetzt erst nur kleine Dinge nach und nach haben möchtest? Wir sind hier alle gerne bereit dir zu Helfen aber du scheinst anscheinend nicht die Lust/Zeit zu haben mit dem Problem selbst fertig zu werden. In diesem Fall gebe ich als Rat mit einen Freelancer, oder dergleichen, zu beauftragen der macht dir das in 1 Std. Möchtest du gerne es selbst lösen dann hast du schon selbst ein super Beispiel geschrieben wo du dich selbst versuchen kannst und anschließend deine Lösung posten sofern nach ausgiebiger Selbstprüfung es immernoch nicht klappen sollte. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
XXNicoRyckersXX Geschrieben 14. Februar 2012 Autor Teilen Geschrieben 14. Februar 2012 Also ich würde gerne lernen wie ich zu einem ordentlichen Ziel komme. Und natürlich bin ich da auf Hilfe angewiesen. Ich wäre natürlich froh wenn ich jemanden finden kann der mir dabei unter die Arme greift sprich ein wenig erklärung anfangs Hilfe usw. ich habe ja die Dateien, nur so wie hier einige sagen sind sie nicht auf einem aktuellem Stand und mit veralteten Codes geschrieben. Ich wäre froh wenn ich wenigstens die Abfrage der DB(verarbeitung_123.php schonmal vernünftig habe. Für mich ist sowas ein Monats Projekt. Wenn es Leute gibt die das in einer Std fertig machen, wäre ich natürlich Froh so jemanden zu finden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Servior Geschrieben 14. Februar 2012 Teilen Geschrieben 14. Februar 2012 $limFile = PATH_TO_ADDONDIR.'/limporter/imports/'.$name.'.lim'; Kannst du die Datei(en) auch noch hochladen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
XXNicoRyckersXX Geschrieben 14. Februar 2012 Autor Teilen Geschrieben 14. Februar 2012 (bearbeitet) Wozu brauchst du die denn? Was hast du vor? Ich kann das auf meinem Server nicht finden. Bearbeitet 14. Februar 2012 von XXNicoRyckersXX Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
XXNicoRyckersXX Geschrieben 14. Februar 2012 Autor Teilen Geschrieben 14. Februar 2012 /pkinc/public/lmo/addon/limporter/imports ich habe das noch auf den server geladen, ist aber die Version für PHPKIT 1.6.4 für 1.6.5 gibt es das nicht mehr. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
XXNicoRyckersXX Geschrieben 14. Februar 2012 Autor Teilen Geschrieben 14. Februar 2012 Aber hier bitte sehr, was machst du denn? denn eig gibt es diesen limporter nicht mehr für den LMO.sis-example.rardfb-example.rar Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
XXNicoRyckersXX Geschrieben 14. Februar 2012 Autor Teilen Geschrieben 14. Februar 2012 das ist eine Zeile in der ligen.class. ABer wie gesagt die funktion gibt es im LMO nicht mehr. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 14. Februar 2012 Teilen Geschrieben 14. Februar 2012 Das rumfrickeln an diesen Skripten wird wohl nicht zum Ziel führen. Baue ein neues System. Nutze dafür Model View Controller in PHP gibt es dafür fertige Tools z.B. CakePHP Setze ein DBMS ein, wie z.B. mySQL. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.