Beiträge von Stef

    das hashen der passwörter usw wollte ich alles später machen. der erste schritt war überhaupt erstmal daten aus der db zu bekommen also per php.

    das ist alles nur grundgerüst das ausbauen der ganzen sache kommt später.

    aber danke für den hinweis

    Am besten alles von Anfang an richtig machen als zu aller Erst es falsch zu machen und dann doch wieder richtig zu machen. Das ist ein hohes Sicherheitsrisiko. Das sollte dir bewusst sein.

    Moin,

    Bei reinen HTML-Dateien würde ich readfile nutzen.

    Okay. Von dieser Funktion habe ich noch nichts gehört. Ich habe mir gerade mal die Doku angesehen, sehe aber keine Vorteile.

    Charmin :

    Diesen PHP-Kurs kann ich dir auch nur empfehlen. Ich habe auch anhand diesen PHP gelernt. Dieser ist sehr gut aufgebaut und alles ist verständlich erklärt. Darüber hinaus wird auch sofort dies gelernte praktisch umgesetzt. Besser gehts nicht. :thumbup:

    Hey,

    werte dies doch nicht als Angriff.

    Mit dieser Aussage von dir:

    Zitat


    Kann ich zum Beispiel den Hintergrund in PHP ändern?

    drückst du dies aber aus.

    Wähle am besten für die nächsten Male bessere Fragestellungen und eine vernünftige Problembeschreibung, sodass wir dir hier zügig helfen können und keine Missverständnisse entstehen.

    Grüße und einen schönen Tag,

    Stef

    Hey Charmin,

    du kannst z.b. gleich bleibende Elemente einer Webseite wie die Navigation oder den Fußbereich in je eine extra HTML-Datei auslagern (navigation.html, footer.html). Diese Datei musst du dann einfach in die benötigten Dateien einbinden. Damit hast du den Vorteil, dass du nur 1 Datei bearbeiten musst um auf allen Seiten die Änderung zu haben.

    Das Einbinden der ausgelagerten Elemente erfolgt in PHP mit den Funktionen include() oder require(). Ich würde include() nutzen.

    Grüße,

    Stef

    Hey,

    dieser Codeteil bei admincheck.php:

    macht keinen Sinn. Darüberhinaus wird dieser Code auch nicht ausgeführt. Du leitest nach dem Klicken des Submitbuttons auf die checkuser.php weiter. Dort musst du überprüfen ob $_POST["smtrng"] vorhanden ist.


    So wie es aussieht hast du nicht richtig gedebugt. Bitte wiederholen!

    Grüße,

    Stef

    Hey Arne,

    vielen Dank! :)

    Ich habe versucht selbst eine Lösung zu finden aber kam nicht darauf wie ich den Schlüssel der Start- und Endstation bestimmen kann. Habe dann deinen recht einfachen Code dafür verwendet.

    Zum Verständnis:

    $iStartIndex = array_keys( array_filter($jData->stations, function($j) use ($iStart) { return $j->id == $iStart; }) )[0];:

    Die Funktion array_keys() erfasst alle vorhandenen Schlüssel des Arrays. In dieser rufst du die Funktion array_filter() auf. Dieser gibst du das Array Stations mit. Über dieses wird dann in der Callback-Funktion iteriert. Nun legst du eine anonyme Funktion fest in der der erste mitgegebene Parameter ($j) das Array Stations repräsentiert und $iStart die Startstation. Und mit [0] sagte du dass von diesem Ergebnis das 1ste Element des return Arrays genommen werden soll. In diesem Array steht an erster Stelle dann der passende Schlüssel.

    $bIsForward = $iStartIndex < $iEndIndex;

    Hier legst du die Fahrtrichtung fest. In diesem Fall bei TRUE die Primärrichtung und bei FALSE die Sekundärrichtung.

    $iOffset = abs( $iEndIndex - $iStartIndex );

    Frage: Warum verwendest du denn dort die Funktion abs() ?

    $aStations = array_slice( $jData->stations, ($bIsForward ? $iStartIndex : $iEndIndex), $iOffset );

    Hier rufst du die Funktion array_slice auf und übergibst ihr das Array Stations welches extrahiert werden muss, die jeweilige Richtung und die Anzahl der Elemente welche im Array bleiben müssen.

    Habe ich dies so richtig verstanden?

    Grüße,

    Stef

    Hey Arne,

    danke für deine Antwort.

    Auf die gleichen Ergebnisse und Feststellungen kam ich auch. Ich kann dir nicht sagen woher die anderen Werte kommen sollen. Dies ist für mich auch unklar.

    Zitat

    Gibt es dazu auch eine Erklärung?

    Nein. Gibt es keine. Mir wurden nur die Tipps mitgegeben, dass ich auf die Fahrtrichtung achten soll und mir nochmal die Aufgabenstellung sowie die Json Dateien anschauen soll.

    Nochmal zurückkommend auf die Fahrtrichtung. Es gibt bei dieser Aufgabe die Primärrichtung und Sekundärrichtung.

    Diese sind wie folgt definiert:

    #1 → #2 → #3 → Primärrichtung (geht von unten nach oben)

    #3 → #2 → #1 → Sekundärrichtung (geht von oben nach unten)

    Dann gehe ich davon aus, dass bei den Json-Dateien in denen die Id heruntergezählt wird die Sekundärrichtung und nicht die Primärrichtung vorliegt. Nach dieser Sekundärrichtung habe ich mein Script auch verändert. Ich überprüfe ja jetzt ob die Id hoch oder runtergezählt wird und lege anhand diesem Faktor die Berechnung der Fahrtzeit fest. Nur da kommt das gleiche raus wie vor der Berücksichtigung der jeweiligen Richtungen. Ist auch verständlich weil es da nicht mehr Werten gibt.

    Stef

    Hey,

    was ist denn deine Bedingung für das ? und : ? Du stellst keine auf. Desweiteren gibt es für dies eine neue Version.

    Hast du schon gedebugt? Siehe dazu hier.

    Mit der neuen Version geht es so:

    Code
    $user_name = filter_input(INPUT_GET, 'username') ?? $uname;


    Außerdem was willst du denn mit den Verkettungspunkten in dem String ' . $uname . ' anfangen?

    Grüße,

    Stef

    input22.json kommt mir fragwürdig vor: Ich verstehe das so, dass die Fahrzeit immer von der aktuellen Station (die in id steht) bis zur nächsten gerechnet wird. Dann würde man in der Endstation keine brauchen, wohl aber in der Startstation. In input22.json ist es jedoch genau umgekehrt.

    Außerdem sehe ich noch ein anderes Problem, das durchdacht werden müsste: Normaler Weise können die Züge in beiden Richtung fahren, d. h. die Stationen sowohl in aufsteigender als auch in absteigender Reihenfolge durchfahren. Allerdings für die aktuelle Aufgabenstellung wohl nicht relevant, den die ID der Startstation ist jeweils kleiner als die der Zielstation.

    Hey,

    ja. Mir zu aller erst auch. Jetzt habe ich es etwas besser verstanden.

    In der input22.json fährt der Zug in die Sekundärrichtung. Das heißt von oben nach unten. 1553 ist dann die Startstation und 1551 die Endstation sogesehen. Darum kommt da 120 raus.

    Doch die Fahrtrichtung ist sehr relevant bei dieser Aufgabe, siehe meinen vorigen Beitrag dazu.

    Ich habe gerade eine Rückmeldung erhalten.

    Die falschen Ergebnisse liegen an der falschen Vorgehensweise des Berechnens. Man muss bei der Berechnung auf die Primär- und Sekundärrichtung der Fahrtrichtung (Ids) achten.

    Ich habe jetzt mein Script dahingehend angepasst. Ich überprüfe ob die Ids hoch- oder heruntergezählt werden und lege daran die Berechnung in der for-Schleife fest. Aber da kommen immernoch fehlerhafte Ergebnisse raus.

    Folgende 3 richtige Ergebnisse wurden mir auch mitgegeben:

    Json 21: 1140 Sekunden

    Json 22: 120 Sekunden

    Json 23: 840 Sekunden

    Bei mir kommt dies raus:

    json21: 1080 Sekunden

    json22: 120 Sekunden

    json23: 780 Sekunden

    json24: 480 Sekunden

    json25: 1380 Sekunden

    Also was ganz falsches.

    Ich füge nochmals alle notwendigen Dateien als Zip als Anhang hinzu (die Aufgabenstellung ist dabei).

    Würde mich echt freuen wenn wir den Fehler beheben könnten. Ich weiß nicht wie ich auf diese richtige Ergebnisse kommen soll und was an dem Script falsch ist.

    Mein jetztges Script sieht so aus:

    Grüße,

    Stef

    Aso okay.

    Ich habe mir nochmals alles genauer angeschaut aufgrund den fehlerhaften Werten. Ich habe glaube ich den Grund herausgefunden warum mir falsche Werte ausgegeben werden. Der Grund ist, dass in den Json Files die Ids mal hochgezählt und mal runtergezählt werden.

    Kann dies denn sein? Sonst fällt mir keiner mehr ein.

    Beispiel:

    Was meint ihr?

    Stef