BoutiqueAnnette.com

  

Beste Artikel:

  
Main / Wie man Update-Button in PHP macht

Wie mache ich Update-Schaltfläche in PHP

Ich arbeite derzeit an einem Administrationsmodul, das alle Benutzer aus der Datenbank mit Stufe 0 anzeigt, damit die Administratoren mit Stufe 2 die Stufen anderer Benutzer im laufenden Betrieb ändern können. So sieht das Modul aus: Ich habe versucht, mein Problem zu untersuchen, kann aber keine Lösung finden. Ich möchte es so machen, dass wenn ein Administrator auf die Schaltfläche Auf Ebene 1 wechseln klickt, automatisch nur die UPDATE-Abfrage für den Benutzer ausgeführt wird, der sich in derselben Spalte befindet.

So sieht mein Code derzeit für dieses Modul aus. Ich sehe kein Formular in Ihrem Code. Machen Sie jede Schaltfläche zu einem Formular, geben Sie die Benutzer-ID und die Ebene über ausgeblendete Eingabefelder an. Führen Sie Ihre SQL mit den Werten aus dem Formular aus. Tut mir leid, ich hatte vorher Formulare, aber aus irgendeinem Grund waren sie nicht da, als ich Code im Pastebin bereitstellte. Ich habe meinen Code hier aktualisiert, wo ich die Formulare um die Schaltflächen hinzugefügt und auch zwei Abfragen für jede Schaltfläche erstellt habe.

Das Problem, das ich derzeit habe, ist das Klicken auf "Auf Ebene 1 ändern" oder "Auf Ebene 2 ändern". Es aktualisiert lediglich die zuletzt vom Benutzer registrierte Ebene anstelle des Benutzernamens in der Zeile, auf die ich auf die Schaltfläche geklickt habe.

Um ein bisschen mehr zu verdeutlichen, möchte ich es. Wenn ich also auf die Schaltfläche Wechseln zu Stufe 1 drücke, die gelb hervorgehoben ist, sollte sich der Benutzername ändern: In Ordnung, nachdem ich einen Blick darauf geworfen habe: Es zeigt mir Folgendes: Es scheint, dass es mir keine gegeben hat Array mit Button-Name, wie Sie es gesagt haben.

Ihre beiden Eingabefelder heißen "Ebene", sie müssen unterschiedliche Namen haben. Ja, gemäß Ihrem Update. Ich würde nur die Ebene, auf die Sie den Benutzer aktualisieren möchten, als versteckte Variable in Ihr Formular aufnehmen. Auf diese Weise können Sie denselben Übermittlungscode verwenden, unabhängig davon, ob Sie sie auf Ebene 2 oder Ebene 1 erhöhen. Sie müssen nicht durchlaufen die aktuelle Berechtigungsstufe - Sie können diese im Aktualisierungscode basierend auf der Benutzer-ID abrufen, wenn Sie sie benötigen. Sie haben sich die Mühe gemacht, eine vorbereitete Anweisung zu verwenden, aber dann nicht die Leistung und Sicherheit gebundener Parameter verwendet.

Etwas wie. Und eine andere Frage wäre, woher der Benutzername kommt. Sie übergeben den ID-Wert in Ihrem Formular, sodass Sie diesen verwenden müssen, um zu bestimmen, welchen Benutzer Sie aktualisieren, nicht den Benutzernamen.

Okay, danke für all die Eingaben zuerst! Als erstes sagen Sie also, dass ich: Wenn ich dies versuche, habe ich immer noch zwei Formulare, eines für jede Ebene und jedes sieht wie folgt aus: Ich habe auch das bindParam unter meiner Abfrage verwendet, da ich mit dieser Methode besser vertraut bin, wie Sie vorgeschlagen haben.

Ich bin mir nicht ganz sicher, ob ich sie richtig gebunden habe oder nicht, aber hier sind sie zusammen mit der vorbereiteten Abfrage: Ich kann jedoch nicht sehen, woher diese erste Codezeile kommt. Die beiden Formulare sind in Ordnung, zeigen jedoch auf denselben Verarbeitungscode.

Da die Abfrage den neuen Ebenenwert enthält, muss kein anderer Verarbeitungscode vorhanden sein. Übergeben Sie einfach die neue Ebene aus dem Formular. Natürlich müssen Sie sich irgendwann verschiedene Sicherheitsaspekte ansehen, um sicherzustellen, dass der Code überprüft, ob ein autorisierter Benutzer die Änderung vornimmt, und nicht nur die Formularvariablen ohne Überprüfungen verwenden.

Sehr guter Punkt, nicht wirklich sicher, warum ich den Benutzernamen verwendet habe, anstatt einfach die ID des Kontos zu verwenden. Ab sofort habe ich alle Änderungen vorgenommen und den Code auf Pastebin hier aktualisiert. Anstelle von zwei Abfragen kann ich jetzt eine Abfrage ausführen, um die Ebene eines Benutzers zu aktualisieren. Ich dachte, das wäre schon erledigt und sicher mit der Aussage: Ich weiß es nicht ehrlich - es gibt Leute hier mit weitaus mehr Wissen in solchen Angelegenheiten. Wenn Sie ein bisschen weiter unten im Internet stöbern, erinnere ich mich, dass ich Beispiele und Links zu Artikeln gesehen habe.

Ich denke, das Problem besteht darin, dass Sie davon ausgehen, dass die einzigen Personen, die versuchen, Ihren Update-Code aufzurufen, autorisierte Benutzer sein müssen, diejenigen, die auf Ihr Formular geklickt haben, und sie sind nicht immer das Problem. Das Problem sind diejenigen, die versuchen, sich als autorisierte Benutzer auszugeben. Aus Sicherheitsgründen müssen Sie alle Dinge berücksichtigen, die passieren können, wenn Sie sie nicht verhindern.

Eine Möglichkeit, Schutz hinzuzufügen, besteht darin, ein eindeutiges Feld basierend auf den Details zu generieren, die Sie aus der Datenbank abrufen, es als eine weitere versteckte Formularvariable zu speichern und es dann im Rahmen der Aktualisierungsroutine neu zu generieren und mit dem Inhalt des zu vergleichen verstecktes Feld, und sehen Sie, dass sie gleich sind.

Sie können also einen Hash-Wert generieren, der auf dem Benutzernamen, dem Beitrittsdatum und einigen anderen Feldern basiert, die für einen Eindringling fast unmöglich zu "knacken" wären. Das klingt vielleicht etwas übertrieben, insbesondere wenn dieser bestimmte Code intern von einem kleinen Unternehmen verwendet wird, nie im Netz ist usw. Aber es lohnt sich möglicherweise, nach zukünftigen Anwendungen zu suchen oder zu prüfen, ob dies der Fall ist Bestimmte Benutzer sollten größer werden, auf mehrere Websites expandieren und von zu Hause aus auf ihren Administrator zugreifen müssen, was auch immer.

Die Sicherheit im Auge zu behalten, ist eine gute Angewohnheit - und es kann sein, dass Sie unter Berücksichtigung der Sicherheit die potenziellen Bedrohungen bewerten und feststellen können, dass Sie keine weitere Sicherheit hinzufügen müssen.

Das ist auch in Ordnung, solange es in Betracht gezogen wird. Wenn ich bereits Level 1 bin, brauche ich keine Schaltfläche, um zu Level 1 zu wechseln. Sie könnten dann tatsächlich nur 1 Spalte haben und schnell sehen können, auf welchen Levels die Leute eingestellt sind. Wieder einfacher schnell in einer Liste zu sehen. Sie können auch ganz einfach eine Schaltfläche oben hinzufügen, indem Sie eine GET-Variable verwenden, um die Benutzer nach Ebene oder anderen Elementen in Ihrer Tabelle zu ordnen. Dies ist sicher, da die GET-Variable nicht direkt in der Abfrage verwendet wird, nur um sie ein- oder auszuschalten.

Dieses Thema wurde 91 Tage nach der letzten Antwort automatisch geschlossen. Neue Antworten sind nicht mehr zulässig. Datenbank aktualisieren durch Klicken auf die Schaltfläche? So sieht mein Code derzeit für dieses Modul aus Mit freundlichen Grüßen Codi. Auch wenn Sie sagen: Auch dieses Bit: Als erstes sagen Sie also, dass ich Folgendes tun muss: Ich dachte, dies wäre bereits geschehen und sicher mit der Aussage: Noppy 15. November 2016, 12: Hoffe, dass alles Sinn macht .

(с) 2019 BoutiqueAnnette.com