MySQLI oder PDO

  • Guten Tag.


    Und zwar bin ich neu in Sachen PHP,, MySQLI oder PDO.
    Meine Frage ist es was ist als Speicherung die sicherste Variante ?


    Ich möchte aufjedenfall die SQL-Injection verhindern das keiner meine Daten abgreift oder in die Datenbank Zugriff hat.


    Mein Code sieht derzeit so aus.


    Code: https://pastebin.com/KnkuhGfW


    Vielleicht hat der ein oder andere Zeit mir ein bisschen zu helfen oder über den Code zu gucken oder zu verbessern.


    Grüße

  • Danke erstmal dafür.


    Wie mach ich sowas wie " Angemeldet bleiben für 30 Tage" mit COOKIES aber wie ?


    Mfg

  • Wenn er das Feld angekreuzt hat, setz du einen Cookie mit der Dauer von 30 Tagen. Wenn er nun die Login seite betritt, fragst du vorher ab ob der cookie gesetzt wurde, gleichst diesen in der db ab (Musst ihn vorher natürlich speichern, verschlüsselt am besten, quaso dessen Inhalt wie ein pw handhaben) und wenn diese übereinstimmen, lässt du die login funktion o.ä. aufrufen.


    Grob zusammen gefasst und mit Handy geschrieben. Sollte ich was vergessen haben, steinigt mich.

  • Dann lädt bei mir die Seite nicht mehr steht das ich zu oft weitergeleitet wurde.


    Grüße

  • Meine Persönliche Meinung! Würde auf PDO tendieren.
    z.B die meisten Frameworks verwenden PDO.

  • Danke erstmal dafür.


    Wie mach ich sowas wie " Angemeldet bleiben für 30 Tage" mit COOKIES aber wie ?


    Mfg

    Das mit dem "Angemeldet bleiben" hat nichts mit MySQL zu tun. Kurz und bündig gesagt, eine Session hat eine automatische expire (Ablaufzeit), diese kann man in der php.ini einstellen. Jedoch bei den meisten liegt die bei 10 Minuten (In php.ini in Sekunden anzugeben).


    Deswegen verwendet man dazu Cookies. Man macht eine Abfrage ob der User auf den Haken geklickt hat, sollte das der Fall sein, dann wird eine Cookie-Session mit setcookie gestartet. Der Unterschied hierbei liegt darin dass du zu den Cookies besseren Einfluss nehmen kannst und die Expire flexible einstellen kannst.


    Aber Achtung: In den Browsern ist es möglich Cookies zu verweigern , sollte der User das so eingestellt haben, dann wird das mit den Cookies auch nicht funktionieren.


    Und ich stimme SoftpathDev zu, PDO ist besser, aber nicht weil die meisten Frameworks PDO verwenden, sondern weil es einfacher zu bedienen ist. Aber gegen SQL-Injection helfen beide WENN man es nicht fehlerhaft verwendet (z.B, Wenn du bei den Querys die Abfragen Blank reinschreibst ohne es zu bind'en, dann hilft das beste Script nichts^^

    Wer PALWAL-Sternchen vergibt, bekommt aus Prinzip ein Like 😏


    @palwal Donald Trump ist einer der besten Präsidenten welche die USA je hatte, meine Meinung.

  • Das mit dem "Angemeldet bleiben" hat nichts mit MySQL zu tun. Kurz und bündig gesagt, eine Session hat eine automatische expire (Ablaufzeit), diese kann man in der php.ini einstellen. Jedoch bei den meisten liegt die bei 10 Minuten (In php.ini in Sekunden anzugeben).
    Deswegen verwendet man dazu Cookies. Man macht eine Abfrage ob der User auf den Haken geklickt hat, sollte das der Fall sein, dann wird eine Cookie-Session mit setcookie gestartet. Der Unterschied hierbei liegt darin dass du zu den Cookies besseren Einfluss nehmen kannst und die Expire flexible einstellen kannst.


    Aber Achtung: In den Browsern ist es möglich Cookies zu verweigern , sollte der User das so eingestellt haben, dann wird das mit den Cookies auch nicht funktionieren.


    Und ich stimme SoftpathDev zu, PDO ist besser, aber nicht weil die meisten Frameworks PDO verwenden, sondern weil es einfacher zu bedienen ist. Aber gegen SQL-Injection helfen beide WENN man es nicht fehlerhaft verwendet (z.B, Wenn du bei den Querys die Abfragen Blank reinschreibst ohne es zu bind'en, dann hilft das beste Script nichts^^

    Danke für deine Antwort.


    Hast du vielleicht ein Beispiel mit dem Setcookie ? wenn ich das mache wird mir die Seite nicht mehr geladen, dann steht da das ich zu oft weitergeleitet werde.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Also Du stellst Dich schon ganz schön dämlich an.


    Beispiel zu Setcookie findest Du hier: https://www.w3schools.com/php/func_http_setcookie.asp


    Deine Fragen lassen sich alle relativ schnell mit Google beantworten. Wir sind nicht dafür da, Dir diese Aufgabe zu abzunehmen.

    Chief Technology Officer (CTO)


    Interesse an folgenden Domains?

    fivemp.de - planet-zoo.de

    Jetzt anschreiben :)

    Einmal editiert, zuletzt von Jony ()

  • Also Du stellst Dich schon ganz schön dämlich an.


    Beispiel zu Setcookie findest Du hier: https://www.w3schools.com/php/func_http_setcookie.asp


    Deine Fragen lassen sich alle relativ schnell mit Google beantworten. Wir sind nicht dafür da, Dir diese Aufgabe zu übernehmen.

    Ey pass mal auf genau das habe ich so, musst nicht direkt patzig werden, sorry wenn ich ein Anfänger noch darin bin.
    Meine Frage war auch warum ich soviel weitergeleitet werde ?!
    Ich weiß schon warum ich nur noch hier inaktiv bin,...

  • setcookie("stay", 1, 31536000);
    Damit hat der User nun eine Cookie, mit dem namen stay, die 1 Jahr gültig ist; zugreifen kann man mit $_COOKIE['stay']. Gegebenfalls statt den Value 1, lässt sich die User-ID besser anbieten.


    Beim Logout bspw. lässt sich die Cookie mit setcookie("stay", 1, time()-1700); löschen, in dem man PHP vorgaukelt, das die Cookie bereits abgelaufen sei.

    Wer PALWAL-Sternchen vergibt, bekommt aus Prinzip ein Like 😏


    @palwal Donald Trump ist einer der besten Präsidenten welche die USA je hatte, meine Meinung.

  • getuser();">$this->getuser(); schrieb:warum ich soviel weitergeleitet werde

    Zeig uns doch mal den Code, ohne den, können wir dir schlecht helfen.
    [/quote]Das ist oben im Script

    PHP
    if(isset($_COOKIE["Stay"])) {
         setcookie("Stay",$username,time()+2592000);
         echo header('Location: dashboard.php');
         exit();
    }


    Und das wo ich mich Einloggen möchte.



    PHP
    if(isset($_POST["angemeldet"])) {
          setcookie("Stay",$username,time()+2592000);
    }
  • Und was steht in der dashboard.php was ist denn welches Skript..


    Bitte immer die Namen angeben, das ist sehr wichtig ^^

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Und was steht in der dashboard.php was ist denn welches Skript..


    Bitte immer die Namen angeben, das ist sehr wichtig ^^

    Den Code den ich gepostet habe ist die index.php und auf dem Dashboard steht nichts außer das ist ein Test.

  • Vermutlich weil du in der dashboard eine Abfrage hast ob der Nutzer eingeloggt ist. Wie sieht diese aus? Du musst natürlich trotzdem die nötigen Session Informationen setzen, auch mit Cookie.

    So sieht mein Code aus in der Dashboard.php

  • So sieht mein Code aus in der Dashboard.php

    Du setzt aber in der index Datei keine session, sondern einen cookie.


    Deshalb springt er von da..wieder nach da usw.


    Prüfe ob da der Cookie existiert oder setze noch eine Session...

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S