Beiträge von Stef

    Hey,

    Sempervivum : Ich habe 1 ne Frage und es kann zu dieser Frage auch mehrere richtige Antworten geben. Die Anwortmöglichkeit zu jeder Frage ist dynamisch.

    Arne Drews : Verstehe nicht wie du es meinst.

    ________________________________________________________________________

    Mein Ziel ist es, wenn das Spiel zu Ende ist die Falschen Antworten zu den Fragen aufzulisten und dazu dann die richtigen Antworten die gefehlt haben aufzulisten.

    Beispiel (Frage vom anderen Thema):

    Frage: Welche Vorbereitungen muss man bei einer Webanwendung treffen?

    Richtige Antworten von mir:

    • Konzept festlegen
    • Design festlegen
    • Zielgruppe festlegen

    Nun antwortet der User:

    • Design festlegen
    • Informationen holen
    • Konzept festlegen


    Dabei passt Antwort 2 des Users nicht. Dann soll aus dem Array wo die richtigen Antworten drin sind die dazu richtige Antwort dynamisch herausgesucht werden.

    In diesem Beispiel wäre dann diese richtige Antwort "Zielgruppe festlegen".

    ____

    Die Ausgabe nach dem Spiel wäre dann:

    Frage: Welche Vorbereitungen muss man bei einer Webanwendung treffen?

    Falsche Antwort: Informationen holen

    Richtige Antwort wäre gewesen: Zielgruppe festlegen

    ____

    Ich gehe ja mit $getRighAnswer[$questionNumber] bereits in die richtigen Antworten der jeweiligen Frage rein.

    Somit habe ich, wenn die Fragenummer 0 ist, bei dieser Frage folgende Value von $getRighAnswer[$questionNumber]array([0] => Konzept festlegen , [1] => Design festlegen , [2] => Zielgruppe festlegen) 

    $userAnswers hat dann folgende Value:

    array([0] => Design festlegen , [1] => Informationen holen , [2] => Konzept festlegen)


    Nur mein Code bringt eben nicht das richtige Ergebnis. Mit unset funktioniert es ja auch nicht.

    Der Grund ist der, dasss der Array Key die Variable ist welche nach jedem Schleifendurchgang hochgezählt wird. Somit kommt bei dem oben genannten Beispiel als Ergebnis dies raus: array(1) { [0]=> string(16) "Design festlegen" }.

    Grüße,

    Stef

    Hey zusammen,

    ich programmiere gerade ja ein Frage-Antwort Spiel. Ich möchte, das wenn der User eine fehlerhafte Antwort zu der Frage angibt, zu dieser dann die richtige Antwort aus dem Array richtigeAntworten entnommen wird. Da im Array die Keys fest zugeordnet sind und der User ja die Antwort in unterschiedlicher Reihenfolge angeben kann ist dies garnicht so einfach.

    Diese Suche ist bei mir statisch (nach dem Array Key) und nicht dynamisch wie es eigentlich sein sollte. Ich habe trotz viel ausprobieren mit vielen Funktionen und anderen Schleifen es nicht hinbekommen, dass dies dynamisch ist.

    Mein statisches Beispiel sieht so aus:

    Ich bin gerade überfragt und weiß nicht mehr weiter.

    Habt ihr denn dazu hilfreiche Vorschläge wie ich dies dynamisch programmieren kann?

    Grüße,

    Stef

    Hey,

    danke für die vielen Ratschläge. Es ist wirklich sehr komplex und zu viel Aufwand für das was ich erstellen will.

    Mit Regex Pattern die Eingabe des Users zu durchsuchen ist eine gute Idee. Eine der einfachsten für mein Vorhaben. Die Funktion similar_text ist keine zuverlässige Funktion für mein Vorhaben aber danke für den Vorschlag Sempervivum.

    basti1012 : Danke für den Vorschag. Ist eine gute Idee. Leider nicht so 100% bei meinem Fall anwendbar.

    Grüße,

    Stef

    Hey,

    Schreibe mal ein Beispiel, wie eine kürzere Antwort trotzdem richtig sein kann.

    Beispiel:

    Frage: Welche Vorbereitungen muss man bei einer Webanwendung treffen?

    Richtige Antworten von mir:

    • Konzept festlegen
    • Design festlegen
    • Zielgruppe festlegen
    • usw..

    Nun antwortet der User:

    • Festlegen des Konzeptes oder Konzeptfestlegung
    • usw..

    Dies ist dann ein Fehler weil es nicht gleich meiner Antwort ist. Aber es ist das gleiche gemeint. Das kommt meiner Meinung nach dumm rüber und so als würde mich die Anwendung verarschen.

    Und alle möglichen Antworten in ein Array zu legen ist auch nicht Sinn der Sache.

    KI

    Künstliche Intelligenz ?

    Wie erstelle ich denn mit PHP eine Künstliche Intelligenz?

    Habe bereits gegoogelt finde aber nicht so viel bis auf Chatbots was mir dies näher erklärt.

    Grüße,

    Stef

    Hey zusammen,

    ich bin dabei grad ein Frage-Antworten Spiel zu erstellen.

    Ich habe nun eine Frage und es gibt dazu 4 Antworten. Nun muss der User in 4 Inputfelder die Antworten eintragen. Nachdem wird er das Formular absenden und dann wird ihm eine Rückmeldung gegeben.

    Nun ist es so, dass die Frage sowie die richtigen Antworten in einem Array liegen, geordnert nach dem Schlüssel. Ich führe die Überprüfung ob die Antwort richtig ist mit einer for-schleife und den Arrays userAnswers und possibleAnswers durch. Wenn man die Antworten in der Reihenfolge einträgt wie diese im Array angeordnet sind dann kommt kein Fehler.

    Fallbeispiele:

    1. Nun kann es sein, dass der User die richtigen Antworten, aber in einer anderen Reihenfolge, eingibt. Somit entstehen trotz richtiger Antworten aufgrund der falschen Reihenfolge der Antworten Fehler.    

    Wie schaffe ich es denn, dass egal in welcher Reihenfolge der User die Frage beantwortet, dass die richtigen Antworten als richtig angesehen werden ?

    2. Auch kann es sein, das die Antwort des Users kürzer ist als meine vorgegebene richtige Antwort aber das gleiche damit ausgedrückt wird.

    Wie bekomme ich es hin, dass genau in solch einer Situation die Antwort des Users als richtig angesehen wird?

    EDIT:

    Frage 1 hat sich erledigt. Ich prüfe mit der Function in_array() ob die Userantwort im richtigeAntworten Array ist. Dort ist die Reihenfolge egal.

    Frage 2 ist nurnoch offen.

    Das ist mein bisheriger Code:

    Grüße,

    Stef

    Hey,

    Die Server sind durch die Hoster aufjedenfall sehr geschützt und ein Angreifer hat Schwierigkeiten in den Server aufgrund der Sicherheitsmechanismen einfach so einzudringen. Dies erfordert dann aufjedenfall vom Angreifer sehr viel Erfahrung.

    Ganz ehrlich, wenn ein guter bis sehr guter Hacker einen Server hacken will dann schafft der das auch.

    Wenn es soweit kommt, bekommt es der Hoster mit und wird dir bestimmt eine Nachricht zukommen lassen. Dann musst du den Pepper ändern und eben alle User auffordern das Passwort zu ändern.

    Bei einer reinen PHP-Anwendung, wenn du das Passwort nirgends abspeicherst, kann es in Klarform da stehen. Das hashen ergibt keinen Sinn in diesem Fall, meiner Meinung nach. Erst wenn du das Passwort irgendwo speicherst muss ein Pepper angehongen werden und dies dann gehast werden.

    Grüße,

    Stef

    Hey,

    Du erstellst ein Select mit den Sprachen die du haben willst. Danach initialisierst du die Select Box in JavaScript. Danach fügst du diesem einen Event Listener hinzu. Z.b change. In der Funktion welche dann ausgeführt wird, wird die Value mittels Ajax an ein PHP Script gesendet.

    Nun hast du im PHP Script den Wert der ausgewählten Sprache und führst Bedingungen aus welche dann je nach Wert die entsprechenden Dateien hinzufügen.

    Grüße,

    Stef

    Hey,

    Es gibt viele Angriffmöglichkeiten wie XSS, CSRF, Session Hijacking, SQL-Injections, Gefährlichen Code über ein Formular einschleusen und Spam-Mails. Mehr fällt mir jetzt auch nicht mehr ein. Gegen diese Angriffmethoden kann man sich aber in der Regel aufjedenfall gut schützen. Nur eine 100% Sicherheit gibt es nie.

    Ich habe hier im Forum bereits eine Thema erstellt übere sichere Programmierung in PHP, welches hier im PHP-Abteil angeheftet ist, mit Links. In diesen Links wirst du soweit die meisten Schutzmaßnahmen gegen Angriffe kennen lernen.

    Nun zu deinen Punkten:

    1.) Das ist im Prinzip das selbe wie ein Login über PHP zu erstellen. Beim Login erstellst du dann eine Session. Diese ist die Grundvorraussetzung, das der User auf die weiteren Seiten Zugriff hat. Um zu prüfen ob er Zugriff bekommt musst du bei jeder Seite als erstes überprüfen ob die Session vorhanden ist. Wenn nein wird der weitere Programmcode mit einer Mitteilung abgebrochen.

    2.) Das ist dies was ich in Punkt 1 wohl angesprochen habe.

    3.) Dort meinst du wohl ein Login, realisiert über eine Datenbank? Dort erstellst du ja auch Sessions/Cookies. Somit überprüfst du auch dort ob der User auf die Seiten Zugriff hat oder nicht. Zusätzlich kommt dort die Verwendung von Prepared Statements dazu.

    Bei Logins realisiert über die Datenbank musst du das Passwort vor dem einfügen in die Datenbank hashen. Dazu gibt es auch entsprechende Funktionen von PHP. Vor dem hashen des Passwortes kannst du diesem noch eine Zeichenkette anhängen. Warum eigentlich? Aus dem Grund weil dann eine andere Zeichenkette erstellt wird als gewöhnlich und diese nicht in sogenannten Rainbow Tabellen zu finden ist. Dazu kannst du bei jedem Login überprüfen ob der Password-Hash einen Rehash (neu Hashen) benötigt. Wenn ja dann kannst du es erneut hashen nach der Anbindung der Zeichenkette und in die Datenbank einfügen.

    Mit der htaccess Variante habe ich bisher noch keine Erfahrung. Aber ich habe sowas bereits gesehen. Dort kommt beim Seitenaufruf ein Popup wo man den Usernamen und das Passwort eintragen muss. Das sieht bei modernen Seiten meiner Meinung nach hässlich aus. Da würde ich einen anderen Weg gehen.

    Grüße,

    Stef

    Hey,

    schön, dass es funktioniert.


    Ich würde aber gerne was hinterfragen, wieso sollte man JS nicht mit PHP in Verbindung bringen?

    Ich habe nie gesagt, dass man Javascript nicht mit PHP in Verbindung bringen soll. Manchmal gibt es die Situatuion, dass die Id oder Klasse dynamisch erstellt wird und somit muss man dann via PHP dem Javascript diese dynamisch erstellte Id, bzw. Klasse geben wenn man auf diese Javascriptaktionen ausführen möchte.

    Nur Javascript mittels PHP zu erstellen finde ich persönlich unnötig und überflüssig. Du kannst das meiner Meinung nach auch selbst sehen, indem du mein Code mit deinem vergleichst. Auch wenn man z.b. Debuggen muss, falls Fehler auftreten ist es wenn man Javascript und PHP bestmöglich trennt am einfachsten und schnellsten. Denn stell dir vor, du hast alles vermischt und musst jetzt aufgrund eines Fehlers debuggen und blickst da nicht mehr durch oder nur schwer.

    Das sind Gründe genug meiner Meinung nach.

    Grüße,

    Stef

    Hey,

    du musst in $dbv = new PDO("mysql:host=IP database;dbname=Name;charset=utf8", "root", ""); auch deine Daten eingeben.

    In host kommt localhost oder deine locale IP 127.0.0.1 rein.

    In dbname der Name deiner Datenbank in welcher die Tabelle liegt.

    root ist der Username.

    Und in der letzte Zeichenkette kommt das Passwort rein.

    Dies musst du dann noch anpassen.

    Code
    $selectData = $dbv->prepare("SELECT $x FROM 'Messwerte' ORDER BY 'DateTime' DESC LIMIT 1");

    Die einfachen Gänsefüßchen musst du entfernen die Tabellenspalten kannst du in diese Zeichen schreiben `Tabellenspalte`. Was steht denn in $x drin?

    Code
    echo "<p>Spannung: " . htmlspecialchars($x) . "</p>";

    Warum gibst du da $x aus? $x ist doch garnicht vorhanden. Der Wert aus der Datenbank liegt doch in der Variable $spannung.

    Mir kommt es so vor, dass du nichtmal die Grundlagen kennst und auch nicht recherchierst wie eine korrekte SELECT Query aufgebaut ist. Und kopierst einfach und hoffst das es funktioniert.

    Hey,

    Das Thema wurde in das PHP-Abteil verschoben, da es nichts mit HTML zu tun hat.

    Du benutzt die veralteten Mysql Funktionen. Verwende entweder Mysqli oder PDO. Desweiteren frage ich mich für was du den aktuellen Timestamp erstellst.

    Du kannst wenn du in die Datenbank die Spannung einfügst gleich es so einstellen, dass die Uhrzeit sowie das Datum mit erstellt werden. Dann musst du dich darum nicht mehr kümmern. Den letzten Datenbankeintrag erhälst du mit der Umkehrung des Sortierens sowie der Limitierung der selektierten Datensätze.

    Ich verwende für dieses Beispiel PDO:

    Grüße,

    Stef

    Hey,

    Javascript soll nie mit PHP gemischt werden. Auch hast du ein paar Fehler drin, sodass es nicht funktioniert. Debuggen kannst du bei Javascript am besten mit der Webkonsole.

    Hier ist ein Beispiel:

    Grüße,

    Stef