Ankündigung

Einklappen
Keine Ankündigung bisher.

Zeitabhängige und Benutzerabhängige Variable

Einklappen

Neue Werbung 2019

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

  • Zeitabhängige und Benutzerabhängige Variable

    Hey liebe Community,

    ich bin gerade dabei eine Seite in PHP zu schreiben auf der die Besucher für Musik voten können. Die Idee dahinter ist, dass auf Parties ein Musicplayer das Lied mit den meisten Votes abspielt.
    Bevor ihr mir vorhandene Lösungen vorschlagt: Es geht dabei darum, dass es auch Offline funktioniert. D.h. es gibt einen W-LAN Zugriffspunkt der aber kein Internet hat. Geht dabei um Parties in der Natur ^^ Wenn ihr so etwas kennt freue ich mich natürlich auch über diese Vorschläge ^^

    Mein Status bisher ist, dass die Dateien aus den Ordnern ausgelesen werden und in eine SQL Datenbank eingetragen werden.
    Eine simple Einsteigerlösung für das Anzeigen der Songs und das Voten an sich habe ich denke ich auch.

    Mein Problem ist, dass nicht jeder Besucher endlos oft voten können soll. Jeder Besucher soll für jedes Lied nur einmal abstimmen können und auch eine maximale Anzahl Stimmen pro Zeiteinheit zur Verfügung haben.

    Idee#1: MAC-Adresse verwenden? Google sagte mir, dass es wohl nicht so ohne Weiteres möglich ist die MAC-Adresse für die Identifikation zu verwenden. Wobei ich mich mir auch da nicht sicher bin. Bei den Themen ging es immer darum, dass Leute über das Internet zugreifen. In meinem Fall wäre zwischen dem Smartphone und dem WLAN-Zugangspunkt der gleichzeitig der localhost ist (Raspberry Pi) ja nichts dazwischen geschaltet. Also könnte eine MAC-Adressen-Abfrage vllt funktionieren?
    Idee#2: Nutzung von Cookies? Da mache ich mir nur Sorgen bei ein paar meiner Kumpels, dass sie einfach ihre Cookies löschen um weiter zu Voten...
    Idee#3: PHP Session? Aber soweit ich weiß wird eine Session geschlossen sobald der Browser geschlossen wird. D.h. es wäre noch einfacher als die Cookies zu löschen?!

  • #2
    Idee #1 geht nicht. Der Browser kann nicht die Mac Adresse schicken

    Idee #2 möglich, aber du hast Recht, man kann Cookies löschen und weiter Voten
    Idee #3 das stimmt, ist auch blöd

    du kannst das halt wirklich nur umsetzen mit einem Login/Registrierung, oder als alternative bietest du ein QR Code pro person an. Das gilt dann quasi als Login.

    Deine Votes kannst du ja zum Beispiel über ein Bildschrim anzeigen, dort hast du ein Ajax Script der im Sekunden Takt abfragt was gevotet wurde und drunter machst du ein QR Code, sobald einer es gescannt hat, wird ein neuer generiert und dann stellst du ein dass jeder QR Code nur ein mal voten darf oder so. Zeigst meinetwegen 5 QR Codes an und die ändern sich halt sobald einer es gescannt hat. Du speicherst den QR Code als Cookie ab . Dann musst du quasi als voter erst den Cookie löschen, dann QR Code scannen, eventuell das mehrfach machen weil jemand dir zuvor gekommen ist, dann deinen Vote abgeben, danach noch mal Cookie löschen und wieder warten bis du scannen darfst. Du hast hast halt so viel zu tun um zu cheaten dass man dann kein Bock mehr aufs cheaten hat

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

    Kommentar


    • #3
      Idee #1: Wenn ich bei einem Router reingucke, kann ich ja auch z.B. feste IP-Adressen vergeben für bestimmte MAC-Adressen, die der Router ausgelesen hat aus den Geräten die sich verbunden haben.
      Kann man das nicht auch machen, wenn man sozusagen der Router ist?

      Idee #4: QR-Code und ein dazugehöriger Bildschirm um sie auszugeben klingt eher nach viel Aufwand für mich Da würde ich eher auf Idee#2 (Cookies) zurückgreifen ^^

      Edith sagt:
      Idee#1: Habe hier etwas gefunden was mir etwas Kopfschmerzen bereitet aber mir Hoffnung gibt:
      https://blog.php-dev.info/2014/04/ph...sen-ermitteln/

      Kommentar


      • #4
        MAC-Adresse kann man auch ändern. Prinzipiell bekommt man wenn man im WLAN neu verbindet auch eine neue IP. Aber mal davon ausgehend, dass keiner seine MAC ändert und du die IP statisch bekommst, erhälst du die IP-Adresse auch über $_SERVER['REMOTE_ADDR'], musst halt mal prüfen ob das die richtige ist.

        Idee #4: gibt jedem einen Zettel mit einem Zahlencode den du vorher in der Datenbank gespeichert hast und benutz den als Token, dann kannst du jeden (der das Spiel mitspielt) eindeutig identifizieren.

        Aber wenn es bei dir am Aufwand scheitert, nimm halt Cookies. Kommt drauf an wie viel "kriminelle" Energie du von deinen Gästen erwartest.
        [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

        Kommentar


        • #5
          Zitat von chorn Beitrag anzeigen
          MAC-Adresse kann man auch ändern. Prinzipiell bekommt man wenn man im WLAN neu verbindet auch eine neue IP. Aber mal davon ausgehend, dass keiner seine MAC ändert und du die IP statisch bekommst, erhälst du die IP-Adresse auch über $_SERVER['REMOTE_ADDR'], musst halt mal prüfen ob das die richtige ist.
          Ja, deshalb dachte ich ja an die MAC-Adresse und nicht an die IP-Adresse. Da muss man nur einmal aus der Reichweite des WLANs rauslaufen und wieder rein und hat eine neue IP-Adresse. Mir ist klar, dass man MAC-Adressen auch ändern kann. Aber ist auf jeden Fall das umständlichste im Vergleich zu Cookies und IP-Adresse.^^

          Zitat von chorn Beitrag anzeigen
          Idee #4: gibt jedem einen Zettel mit einem Zahlencode den du vorher in der Datenbank gespeichert hast und benutz den als Token, dann kannst du jeden (der das Spiel mitspielt) eindeutig identifizieren.

          Aber wenn es bei dir am Aufwand scheitert, nimm halt Cookies. Kommt drauf an wie viel "kriminelle" Energie du von deinen Gästen erwartest.
          Klingt interessanter als die QR-Variante. Allerdings erwähnst du ja selbst das "Mitspielen" und den Aufwand :P
          Cookies werden es wohl werden, wenn es keine MAC-Adressen-Lösung gibt.

          Kommentar


          • #6
            Zitat von chorn Beitrag anzeigen
            $_SERVER['REMOTE_ADDR']
            Wenn es diese Möglichkeit gibt die IP-Adresse auszulesen, könnte ich dann mit diesem Code die MAC-Adresse auslesen?
            https://raidrush.net/threads/php-mac...slesen.666958/
            Diese Variante wird hier unterstützt: https://www.fachinformatiker.de/topi...n-per-browser/

            Wie so oft, wenn man einen Post erstellt hat, findet man bei Google plötzlich haufenweise interessanter Seiten. Aber leider bin ich ein Anfänger in PHP und habe wenig Ahnung ob das so funktionieren kann.

            Kommentar


            • #7
              Probier es doch mal aus, der Code ist ja schon fertig.

              Allerdings erwähnst du ja selbst das "Mitspielen" und den Aufwand
              Generelles Problem: Dein Aufwand steigt irgendwo zwischen linear und exponentiell mit der kriminellen Energie deiner Mitspieler.
              [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

              Kommentar


              • #8
                Zitat von chorn Beitrag anzeigen
                Probier es doch mal aus, der Code ist ja schon fertig.
                Mach ich, sobald Zeit da ist Finde es nur seltsam, wenn es gehen sollte. Dann könnte PHP auch direkt eine Funktion anbieten finde ich ^^ Auch wenn es natürlich für die meisten Anwendungen (Internet) relativ uninteressant ist.

                Kommentar


                • #9
                  Kann mit PHP nicht gehen. Erklärung dazu hier https://whatismyipaddress.com/mac-address

                  Kommentar


                  • #10
                    Zitat von protestix Beitrag anzeigen
                    Kann mit PHP nicht gehen. Erklärung dazu hier https://whatismyipaddress.com/mac-address
                    Kann sein, dass ich zu wenig Ahnung von PHP habe, aber warum ist das die Begründung dafür, dass es nicht mit PHP funktionieren kann?

                    Kommentar


                    • #11
                      MAC-Adresse kann man auch ändern. Prinzipiell bekommt man wenn man im WLAN neu verbindet auch eine neue IP.
                      eher nicht, jedenfalls nicht solange der IP pool nicht erschöft ist.
                      Cookies sind keine lösung, nutze ich einfach eine den inkognito modus des browsers, ein curl script whatever.

                      die mac am smartphone zu ändern geht sicher, aber ist bdaas so trivilal (bitte um link)?

                      Kommentar


                      • #12
                        Ambron
                        Welchen Teil des Artikels hast du denn nicht verstanden?

                        Kommentar


                        • #13
                          Zitat von tomBuilder Beitrag anzeigen
                          eher nicht, jedenfalls nicht solange der IP pool nicht erschöft ist.
                          Cookies sind keine lösung, nutze ich einfach eine den inkognito modus des browsers, ein curl script whatever.
                          Du denkst also eine IP-Identifizierung würde ausreichen? Meinst du, dass die IPs immer an die gleiche MAC vergeben werden? Wäre mir neu.
                          Zitat von tomBuilder Beitrag anzeigen
                          die mac am smartphone zu ändern geht sicher, aber ist bdaas so trivilal (bitte um link)?
                          Soweit ich das sehe wird dafür ein gerootetes Smartphone benötigt. Damit man eben auf die tieferen Einstellungen zugreifen kann. Dann gibt es dafür einige Apps im PlayStore.
                          Zitat von protestix Beitrag anzeigen
                          Ambron
                          Welchen Teil des Artikels hast du denn nicht verstanden?
                          Ich denke den Artikel habe ich schon verstanden, aber sehe nicht das große "Das geht nicht!"-Schild. Mir ist klar, dass so etwas nicht über Internet geht. Aber in meinem Projekt ist zwischen der Homepage und dem Smartphone ja kein Gerät zwischengeschaltet. Die Homepage liegt sozusagen auf dem Router.

                          Kommentar


                          • #14
                            Zitat von Ambron Beitrag anzeigen
                            Die Homepage liegt sozusagen auf dem Router.
                            Setze einfach die DHCP Lease Time hoch genug, dann ändert sich die IP auch nicht so einfach. Die PHP Scripte, die du verlinkt hast, machen doch nichts anderes, als anhand der Client-IP aus dem Arp-Cache des Servers die MAC zu ermitteln. Dann kannst du auch gleich die IP verwenden.

                            Zitat von Ambron Beitrag anzeigen
                            Ich denke den Artikel habe ich schon verstanden, aber sehe nicht das große "Das geht nicht!"-Schild.
                            Schau dir bitte mal das OSI-Schichten-Modell an: MAC arbeitet auf OSI-Layer 2; HTTP auf 7 (und du auf 8 )
                            sorry, shift-taste kaputt

                            Kommentar


                            • #15
                              Zitat von Meister1900 Beitrag anzeigen
                              Setze einfach die DHCP Lease Time hoch genug, dann ändert sich die IP auch nicht so einfach. Die PHP Scripte machen doch nichts anderes, als anhand der Client-IP aus dem Arp-Cache des Servers die MAC zu ermitteln. Dann kannst du auch gleich die IP verwenden.
                              Naja die Idee wäre ja, jedes mal wenn jemand ein Voting abgibt zu kontrollieren welche MAC-Adresse er hat und zu gucken ob diese MAC-Adresse noch Votings übrig hat.
                              PHP-Code:
                              /* Wenn Voting abgegeben wird, dann...*/
                                  /* Wenn MAC-Adresse noch nicht bekannt */
                                      /* Erstelle Eintrag in SQL Datenbank */
                                      /* Gebe Voting ab */
                                      /* Zähle verfügbare Votings eins runter */
                                  /* Wenn MAC-Adresse bereits bekannt */
                                      /* Wenn noch Votings verfügbar für MAC-Adresse */
                                          /* Gebe Voting ab */
                                          /* Zähle verfügbare Votings eins runter */
                                      /* Wenn keine Voting verfügbar für MAC-Adresse */
                                          /* Ausgabe der Zeit bis wieder Votings verfügbar sind */ 

                              Kommentar

                              Lädt...
                              X