Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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?

  • Antworten 51
  • Ansichten 6k
  • Erstellt
  • Letzte Antwort

Top-Poster in diesem Thema

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?

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.

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

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...

meinst du die php Dateien über das es läuft?

Also über die Teamtake.php wählt man das Team aus und über die Verarbeitung_123.php wird es ausgeführt.

teamtake.rar

verarbeitung_123!.rar

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.

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 von flashpixx

@XXNicoRyckersXX jetzt bräuchte man noch die Liga Klasse, die oben in der Fehlermeldung steht ;-)

Hier nochmal die liga.class.ini

liga.class.rar

@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.

@ins0 kannst du dir es denn mal ansehen? Die db und die php Dateien habe ich ja hier hochgeladen.

Es wäre für mich vom grossen Vorteil wenn ich diese Funktion auf meiner Seite funktionierend hätte.

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?

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.

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.

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.

Wozu brauchst du die denn? Was hast du vor? Ich kann das auf meinem Server nicht finden.

Bearbeitet von XXNicoRyckersXX

/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.

Aber hier bitte sehr, was machst du denn? denn eig gibt es diesen limporter nicht mehr für den LMO.

sis-example.rar

dfb-example.rar

das ist eine Zeile in der ligen.class. ABer wie gesagt die funktion gibt es im LMO nicht mehr.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.