Ankündigung

Einklappen
Keine Ankündigung bisher.

Login System

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Login System

    Hallo ich habe ein Login System sodass man auf einen datei nicht zugreifen kann mann muss sich erst einloggen jetzt habe ich aber im meinem webpanel eine datenbank abfrage was zu löschen aber wenn man jetzt per link und der id dahinter eingibt löscht er es trozdem raus und dan get er auf die login datei da man nicht eingeloggt ist wie genau kann ich das machen

    Der Code das man sich einloggen

    PHP-Code:
    <?php
    include("dbconfig.php");
    session_start();
    if(!isset(
    $_SESSION['login_user']))
        {
        
    header("Location: /MODCP/login.php");
        }
    ?>


  • #2
    Ich gehe mal davon aus das der Link auf eine Extra Datei führt, demnach müsstest du in der Datei mit der Datenbank Abfrage prüfen ob die Session gesetzt ist dann kannst du Löschen wenn du eingeloggt bist.
    Berichtige mich wenn ich dein Problem Falsch verstanden habe

    Kommentar


    • #3
      Mann kann wenn man auf die del.php/id=2 geht löscht man es also die zeile und wird auf die login datei weitergeleitet er soll aber keine sachen löschen nur wen man eingeloggt ist

      Kommentar


      • #4
        Löschen per Link ist Blödsinn. Ich dachte, das hätt ich dir jetzt schon zweimal erklärt? Nimm stattdessen ein Formular.

        Kommentar


        • #5
          Oke werde ich machen

          Kommentar


          • #6
            Zitat von hellbringer Beitrag anzeigen
            Löschen per Link ist Blödsinn. Ich dachte, das hätt ich dir jetzt schon zweimal erklärt? Nimm stattdessen ein Formular.
            Ich sehe kein Unterschied, ich kann genausogut mit guzzle o.ä. einfach ein POST Request. Man kann ja auch beim klicken des Links $_SESSION['deleteRequested'] = true; setzen und dann wenn die variable auf true steht, abfragen nach einer bestätigung. Und somit kann man kein Delete Link verschicken. Bei kritischen Aktionen gehört eh eine Bestätigung mit erklärung dazu.
            apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

            Kommentar


            • #7
              Ob man ein Delete-Befehl nun als POST oder GET verschicken möchte ist eigtl. Wumpe.

              Klar, da muss ich hellbringer rechtgeben, normalerweise sollte das per POST passieren, denn ein POST suggeriert ja schon eine Aktion, die du an den Server sendest. Ein GET hingegen sollte vom Verständnis her ein reiner "Holen"-Befehl sein und nur z.B. über die URL steuern wohin die Reise hingeht bzw. von wo man seine Daten beziehen möchte.

              Für die ganz harten Entwickler-Cracks ist das aber alles sowieso nichts, denn ein Delete sollte auch mit entsprechendem HTTP-Header DELETE durchgeführt werden, aber das begegnet einem dann doch wohl eher nur in der Welt von Services statt in der von Webseiten

              Kommentar


              • #8
                Es geht primär darum, POST statt GET (wie bei einem "normalen" Link den ein Anfänger so benutzt) zu nutzen.

                Zitat von dlite
                Ob man ein Delete-Befehl nun als POST oder GET verschicken möchte ist eigtl. Wumpe.
                Nein ist es eben nicht.

                Zitat von dlite
                normalerweise sollte das per POST
                .. sollte immer ... oder willst du sowas alles bei einem "Löschlink": ?

                Some other notes on GET requests:
                • GET requests can be cached
                • GET requests remain in the browser history
                • GET requests can be bookmarked
                • GET requests should never be used when dealing with sensitive data
                • GET requests have length restrictions
                • GET requests should be used only to retrieve data
                https://www.w3schools.com/tags/ref_httpmethods.asp


                Und:

                9.3 GET

                The GET method means retrieve whatever information
                http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #9
                  Zitat von hausl Beitrag anzeigen

                  .. sollte immer ... oder willst du sowas alles bei einem "Löschlink": ?
                  und man sollte immer Tests vor dem Code schreiben Löschen von Daten in einer Liste, kann auch als GET benutzt werden und blame dafür HTML Standart, für sowas wie lösch links, sind formulare overkill.

                  apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

                  Kommentar


                  • #10
                    Der einzig kritische Punkt sehe ich gerade nur darin, dass die Seiten gecached werden können. Wenn man keine Validierung vor dem Löschvorgang durchführt, um so etwas wie nicht vorhandene IDs oder anderes etwaiges auszuschließen, dann hat man die Problematik, die da unter Punkt 4 stehen, mit GET aber auch mit POST. Zumal ich bei History.back() Vorgängen nach Absenden eines Formulares auch jedes mal gefragt werde, ob ich die Daten erneut absenden möchte, was ja auch in gewisser Weise ein Caching darstellt

                    Aber dennoch, wer das wirklich sauber machen will, verwendet bitte auch den entsprechenden DELETE-Header.

                    Sicher ist jedoch, dass zumindest mein Verständnis von GET als "Holende" Komponente und POST als "Sendende" oder "Aktions" Komponente ja dennoch richtig erscheint.


                    @BlackScorp
                    Der Overkill zeichnet sich lediglich durch ein Form-Tag und einem Submit aus, ich wüsste jetzt nicht, was daran ein so starker Overkill wäre. Zumindest wer eine gescheite Engine verwendet, kann sich diese Problematik doch schnell mit Makros/Plugins/Funktionen, wie auch immer die überall heißen mögen, aus der Welt schaffen. Hat sogar den Vorteil, dass man bei Architekturänderungen nicht mehr so tief in den HTML-Code rein muss, sondern an zentraler Stelle alles zusammen hat und man vllt für 20 Buttons mit einem Schlag die Methodik geändert hat.

                    Kommentar


                    • #11
                      Zitat von BlackScorp Beitrag anzeigen
                      Löschen von Daten in einer Liste, kann auch als GET benutzt werden und blame dafür HTML Standart, für sowas wie lösch links, sind formulare overkill.
                      Dir ist bewusst, dass es Browser, Browser-Addons, Proxy-Server und Virenscanner gibt, die automatisch im Hintergrund alle Links einer Seite aufrufen um zu sehen, was sich dahinter verbirgt?

                      Es bleibt wie es ist: GET dient dazu um Daten abzufragen und nicht um Daten zu löschen. Ich sehe da kein Diskussionsspielraum. Das ist so und Punkt. Warum will man zwanghaft GET für etwas missbrauchen, für das es nicht gedacht ist? Es bringt keinen Vorteil und ein Haufen Nachteile.

                      Kommentar


                      • #12

                        Zitat von dlite Beitrag anzeigen
                        Der einzig kritische Punkt sehe ich gerade nur darin, dass die Seiten gecached werden können
                        Es seidenn man hat ein Validierungs token. Ala site.com/delete/2/absyz2314 und man macht damit nur eine Anfrage auf Löschung, die eigentliche löschung passiert dann untner site.com/delete und dort wird dann der Anfrage Token gelöscht.

                        Zitat von dlite Beitrag anzeigen
                        Aber dennoch, wer das wirklich sauber machen will, verwendet bitte auch den entsprechenden DELETE-Header.
                        Das Blöde ist, dass bei DELETE in PHP sich nichts nichts ändert. es gibt keine Variable die DELETE Daten hat. Man muss dann gucken wie die request methode ist usw.

                        Zitat von dlite Beitrag anzeigen
                        Der Overkill zeichnet sich lediglich durch ein Form-Tag und einem Submit aus
                        Genau das meine ich. Außerdem muss ein Formular ein XSRF Token haben. Dann hast du noch das Problem dass ein Formular getrennt stehen soll, du kannst in einem Formular kein Formular haben. Wenn du also um deine Liste ein Formular anbaust mit checkboxen, klappt das schon nicht mehr. Dann muss man auf formactions zurückgreifen etwa so

                        PHP-Code:
                        <form method="POST">
                            <
                        table>
                                <
                        tr>
                                    <
                        th>Select</th>
                                    <
                        th>Name</th>
                                    <
                        th>Action</th>
                                </
                        tr>
                                <
                        tbody>
                                <
                        tr>
                                    <
                        td><input type="checkbox" name="ids[]" value="1"></td>
                                    <
                        td>Foo</td>
                                    <
                        td>
                                        <
                        button formaction="/delete/1">Delete</button>
                                    </
                        td>
                                </
                        tr>
                                <
                        tr>
                                    <
                        td colspan="3">
                                        <
                        button formaction="/deleteSelected">Delete selected</button>
                                        <
                        button formaction="/exportSelected">Export selected</button>
                                    </
                        td>
                                </
                        tr>
                                </
                        tbody>
                            </
                        table>
                        </
                        form
                        schaut man aber hier http://caniuse.com/#search=formaction wird IE10 nicht mal unterstützt.

                        Folglich sind DAUS schuld an dem was wir fabrizieren müssen

                        Zitat von dlite Beitrag anzeigen
                        Sicher ist jedoch, dass zumindest mein Verständnis von GET als "Holende" Komponente und POST als "Sendende" oder "Aktions" Komponente ja dennoch richtig erscheint.
                        Ja in der Theorie klingt alles logisch, in der Praxis muss man aber gucken.
                        apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

                        Kommentar


                        • #13
                          Zitat von hellbringer Beitrag anzeigen

                          Warum will man zwanghaft GET für etwas missbrauchen, für das es nicht gedacht ist? Es bringt keinen Vorteil und ein Haufen Nachteile.
                          Weil man keine Verschachtelten Formulare haben darf und formaction nicht im ie 9 läuft und komm mir nicht mit 2017 und so

                          EDIT:

                          ich würde sagen, die beste Lösung wäre statt delete.php?id=123 einfach auf requestDeletion.php?id=123 zu verlinken. somit hat man keine direkte Aktion aus dem Formular und auf der Bestätigungsseite hat man dann ein Formular mit submit und cancel.
                          apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

                          Kommentar


                          • #14
                            Zitat von BlackScorp Beitrag anzeigen

                            Weil [...] und formaction nicht im ie 9 läuft und komm mir nicht mit 2017 und so
                            Was? Erklär mal... Wenn ein Browser das action Attribut von form nicht kann, na dann gute Nacht!

                            Ja man kanns einfach über id's lösen. Außerdem: Fertige Login Systeme gibt es doch tonnenweise im Internet. Warum ständig das Rad neu erfinden? Erweitere einfach solch eine Lösung um Deine Löschen Funktionalität und Ende aus.


                            MFG

                            derwunner


                            PS: Warum ist das in Scriptbörse?

                            Kommentar


                            • #15
                              Zitat von derwunner Beitrag anzeigen
                              Was? Erklär mal... Wenn ein Browser das action Attribut von form nicht kann, na dann gute Nacht!
                              Er meint das formaction-Attribut, nicht das form-Attribut.

                              PHP-Code:
                                   <td colspan="3">
                                        <
                              button formaction="/deleteSelected">Delete selected</button>
                                        <
                              button formaction="/exportSelected">Export selected</button>
                                    </
                              td

                              Zitat von derwunner Beitrag anzeigen
                              PS: Warum ist das in Scriptbörse?
                              MOD: Verschoben von Scriptbörse
                              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                              PHP.de Wissenssammlung | Kein Support per PN

                              Kommentar

                              Lädt...
                              X