j4nk3y: Update einer Chatfunktion

Beitrag lesen

Lieber Felix,

Aber ich habe erst mysql gelernt und habe damit angefangen, dann hat Jemand gesagt warum machst du das nicht mit mysqli? Daraufhin hab ich mich in mysqli eingelesen und alles was ich hatte umgeschrieben.

ich verstehe, dass das für Dich eine wesentliche Menge an Einarbeitung und Lernstoff war - nur reicht das leider noch nicht.

Verzeih mir aber ich habe keine Lust wieder von vorne Anzufangen. Den das mache ich ständig egal mit was.

Das nennt man Lernen. Früher war auch gängige Meinung die Welt sei eine Scheibe. Da hatten es die Navi-Geräte noch relativ leicht... ;-)

Ne, im Ernst. Du macht da sehr gefährliche Sachen. Das sollte man überhaupt nicht erst anfangen. Egal ob mysqli oder PDO, Du darfst keine SQL-Injection-Lücken aufreissen. Es lohnt sich also, die Handhabung mit SQL-Code und Parametern irgendwie zu abstrahieren. Dann hast Du zum einen weniger Geschäft beim Schreiben Deines Codes (immer von Vorteil) und zum anderen mehr Sicherheit.

Dann wäre es schön wenn man gleich auf dem richtigen Level Anfangen könnte und nicht "alte" Tutorials findet wo einem was altes/falsches beigebracht wird. Zum Beispiel: warum gibt es noch position oder display wenn alles mit flexbox viel einfacher geht. Warum mysql oder mysqli wenn PDO das maß der dinge ist.

Wäre das ein Deal?

Für PDO könnte ich Dir eine klitzekleine Klasse anbieten, die Dir im Hintergrund etwas vereinfacht, sodass Du nur noch folgendes schreiben brauchst (falls Du ansonsten noch nicht objektorientiert PHP schreibst und noch weiter abstrahieren kannst):

Das wär äußerst großzügig. aber auch da müsste ich jetzt jeden der mittlerweile sicher 250 querys umschreiben. Und eine wirkliche Vereinfachung seh ich da auf anhieb nicht. Mit mysqli sehe ich auch direkt was wie wo rein oder aus der DB geht/kommt.

// Hole aus DB
$query = array(
    'select' => 'SELECT `login`, `pass` FROM `users` WHERE `login`=:login',
    'params' => array(
        ':login' => $_POST['login']
    )
);

$array = $db->get($query['select'], $query['params']);

// Schreibe in DB
$query = array(
    'update' => 'UPDATE `users` SET `pass`=:pass WHERE `login`=:login',
    'params' => array(
        ':login' => $_POST['login'],
        ':pass' => password_hash($_POST['pass'], PASSWORD_DEFAULT)
    )
);

$db->send($query['update'], $query['params']);

Und jetzt habt ihr mir so in den Kopf geprügelt das ich die $_POST Variablen für mysql escapen muss aber bei dir seh ich da nichts von.

Mir hilft das beim Schreiben, weil ich sehe, ob ich etwas von der DB haben will (und auf welche Weise), oder ob ich etwas in die DB füttere (und auf welche Weise).

Na, wäre das eine vernachlässigbare Menge des Umlernens? In Deine Scripte müsstest Du nur ein PHP-Script einbinden, welches Dir diese $db->send() oder $db->get() zur Verfügung stellt. Das könntest Du haben. Wir könnten auch die Klasse so anpassen, dass Du nur noch das Array $query an $db->send() oder $db->get() übermitteln bräuchtest.

Wie gesagt geht es nicht vorrangig um die Menge des umlernens, ich hab jetzt den Code 3 mal gelesen und verstehe was passiert bzw wie was zusammen hängt. Es ist nur der Aufwand ~30.000 zeilen Code in ~40 Dateien durchzugehen und jeden der ~250 querys umzuschreiben.

Gruß Jo

P.S. Ich seh mich ja schon fast wieder von vorne Anfangen...-.- Und ich will nicht :(

0 151

Update einer Chatfunktion

j4nk3y
  • html
  • javascript
  • php
  1. 2
    Felix Riesterer
    • datenbank
    • php
    • sicherheit
    1. 0
      j4nk3y
      1. 0
        Gunnar Bittersmann
    2. 0
      Gunnar Bittersmann
      1. 0
        Matthias Apsel
        1. 0
          Gunnar Bittersmann
      2. 0
        j4nk3y
        1. 0
          Gunnar Bittersmann
          1. 0
            j4nk3y
      3. 0
        Felix Riesterer
        1. 0
          j4nk3y
          • zur info
          1. 1
            Felix Riesterer
            • php
            • programmiertechnik
            • zur info
            1. 0
              j4nk3y
        2. 0
          Gunnar Bittersmann
    3. 0
      j4nk3y
      1. 0
        Felix Riesterer
        • php
        • programmiertechnik
        • sicherheit
        1. 0
          j4nk3y
          1. 0
            Der Martin
            1. 0
              j4nk3y
              1. 0
                Der Martin
                1. 0
                  j4nk3y
          2. 0
            Felix Riesterer
            1. 0
              j4nk3y
              1. 0
                Der Martin
                1. 0
                  j4nk3y
              2. 1
                dedlfix
                1. 0
                  Gunnar Bittersmann
                  • typografie
                2. 0
                  j4nk3y
                  1. 0
                    dedlfix
                    1. 0
                      j4nk3y
                      1. 0
                        dedlfix
                        1. 0
                          j4nk3y
                          1. 0
                            dedlfix
                            1. 0
                              j4nk3y
                              1. 0
                                Der Martin
                                1. 0
                                  j4nk3y
                                  1. 0
                                    Der Martin
                              2. 1
                                dedlfix
                                1. 0
                                  Der Martin
                              3. 0
                                Gunnar Bittersmann
                                • datenbank
                                • programmiertechnik
                                1. 0
                                  j4nk3y
        2. 0
          Der Martin
        3. 0
          Gunnar Bittersmann
          • internationalisierung
          • php
          1. 0
            Felix Riesterer
            1. 0
              Tabellenkalk
              • zitat
              • zu diesem forum
              1. 1
                Matthias Apsel
    4. 0
      1unitedpower
      1. 1
        dedlfix
        1. 1
          1unitedpower
          1. 0
            Christian Kruse
          2. 0
            dedlfix
            1. 0
              1unitedpower
              1. 0
                dedlfix
                1. 0
                  Christian Kruse
                  1. 0
                    dedlfix
                  2. 0
                    1unitedpower
                    1. 0
                      Christian Kruse
                      1. 0
                        1unitedpower
                    2. 0
                      dedlfix
                      1. 0
                        1unitedpower
                        1. 0
                          dedlfix
  2. 0
    j4nk3y
    1. 0
      Gunnar Bittersmann
      • html
      1. 0
        j4nk3y
        1. 0
          Gunnar Bittersmann
          1. 0
            j4nk3y
            1. 0
              Matthias Apsel
              1. 0
                j4nk3y
  3. 0
    j4nk3y
  4. 0
    pl
    1. 0
      j4nk3y
      1. 0
        dedlfix
        1. 0
          j4nk3y
          1. 0
            dedlfix
            1. 0
              j4nk3y
              1. 0
                pl
                1. 0
                  j4nk3y
                  1. 0
                    pl
                    1. 0
                      dedlfix
                      1. -2
                        pl
                        1. 0
                          Matthias Apsel
                  2. 0
                    pl
              2. 0
                dedlfix
                1. 0
                  j4nk3y
                  1. 0
                    dedlfix
            2. 0
              j4nk3y
              1. 0
                dedlfix
      2. 0
        pl
  5. 0
    j4nk3y
    1. 0
      dedlfix
    2. 0
      j4nk3y
      1. 0
        j4nk3y
        1. 0
          pl
        2. 0
          dedlfix
          1. 0
            j4nk3y
            1. 0
              dedlfix
              1. 0
                j4nk3y
          2. 0
            j4nk3y
            1. 0
              j4nk3y
  6. 0
    j4nk3y
    1. 0
      Der Martin
      1. 0
        j4nk3y
        1. 0
          dedlfix
          1. 0
            j4nk3y
            1. 0
              Der Martin
              1. 0
                j4nk3y
        2. 0
          Der Martin
          1. 0
            j4nk3y
            1. 1
              Felix Riesterer
              1. 0
                j4nk3y
                1. 0
                  Matthias Apsel
                  1. 0
                    j4nk3y
                    • menschelei
                2. 0
                  Felix Riesterer
                  • php
                  • programmiertechnik
                  • sql
                  1. 0
                    j4nk3y
                    1. 0
                      Der Martin
                      1. 0
                        j4nk3y
                        1. 0
                          Der Martin
                          1. 0
                            j4nk3y
                            • menschelei
                    2. 0
                      Felix Riesterer
                      1. 0
                        pl
                      2. 0
                        j4nk3y
                        1. 2
                          dedlfix
                          1. 0
                            j4nk3y
                            1. 0
                              dedlfix
                              1. 0
                                Christian Kruse
                                1. 1
                                  dedlfix
                  2. 0
                    j4nk3y
                  3. 0
                    j4nk3y
                    1. 0
                      Felix Riesterer
                      1. 0
                        dedlfix
                        1. 0
                          j4nk3y
                          1. 0
                            pl
                            1. 0
                              j4nk3y
                          2. 0
                            dedlfix
                      2. 0
                        j4nk3y
                        1. 0
                          Der Martin
                        2. 0
                          Felix Riesterer
                          1. 0
                            Der Martin
                            1. 0
                              dedlfix
                          2. 0
                            j4nk3y
                            1. 1
                              Der Martin
                              1. 0
                                j4nk3y
    2. 0
      j4nk3y
      1. 0
        dedlfix
        1. 0
          j4nk3y
          1. 0
            Christian Kruse
            1. 0
              j4nk3y
              1. 0
                Christian Kruse
              2. 0
                Matthias Apsel
                • zu diesem forum
                1. 0
                  j4nk3y