Ankündigung

Einklappen
Keine Ankündigung bisher.

rand/bzw. nacheinander funktion einbauen

Einklappen

Neue Werbung 2019

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

  • rand/bzw. nacheinander funktion einbauen

    Hallo ich hätte da mal wieder eine Frage.....

    und zwar wird man in meinem Script zum Abschluß der Aktion zu einem Shortener weitergeleitet und danach wieder auf die Seite. Da aber viele Shortener die IP nur alle 24h zählen möchte ich dies gerne erweitern um 2 oder 3 Shortener dienste

    also folgendes:

    die admin/index.php

    Wenn ich mich im Admin Bereich einlogge kann ich hier die Shortener Url angeben......

    PHP-Code:
    $content .= '<input type="text" name="redirect_claim" value="'.(($_SESSION['password'] != $demo_pass)?

    $settings['redirect_claim']:'').'" placeholder="ShortLink on Claim Button. Not Required.">'
    hab noch eine neue Zeile in der Mysql Tabelle angelegt
    und den Code so erweitert

    PHP-Code:
    $content .= '<input type="text" name="redirect_claim" value="'.(($_SESSION['password'] != $demo_pass)?
    $settings['redirect_claim']:'').'" placeholder="ShortLink1 on Claim Button. Not Required.">';

    $content .= '<input type="text" name="redirect_claim1" value="'.(($_SESSION['password'] != $demo_pass)?
    $settings['redirect_claim1']:'').'" placeholder="ShortLink2 on Claim Button. Not Required.">'
    Die Urls kann ich nun im Adminbereich eingeben und sie werden auch in der Datenbank abgespeichert. Soweit so gut

    nun hab ich noch in der index.php

    folgenden Code:

    PHP-Code:
     $claim_redirect = (!empty($settings['redirect_claim']))? $settings['redirect_claim'] : $claim_redirect
    den müßte ich nun eigentlich nur so erweitern das er entweder den redirect_claim oder den redirect_claim1 aufruft, bekomme das leider irgendwie nicht hin
    einzeln habe ich es schon getestet es funktioniert Shortlink1 oder Shortlink2...das geht aber wie kann ich das nun realisieren das er Link1 oder link2 verwendet

    ob Random oder nacheinander ist mir eigentlich völlig egal

    Grüße



  • #2
    Ganz einfaches Beispiel wäre:
    PHP-Code:
    $urls = array('example.org/site1''example.org/site2');
    shuffle($urls);
    echo 
    $urls[0]; 

    Kommentar


    • #3
      OK danke das scheint soweit zu funktionieren nur eine Frage noch
      wie bekomme ich das dort rein....

      PHP-Code:
      $settings['redirect_claim'
      statt der Urls

      damit das weiterhin vom Adminbereich aus steuerbar bleibt ?

      Kommentar


      • #4
        PHP-Code:
        // "admin bereich"
        $settings['redirect_claim'] = ['url 1''url 2', ...];


        // ...

        $urls $settings['redirect_claim'];  
        shuffle($urls);
        echo 
        $urls[0]; 


        Kommentar


        • #5
          ok danke aber sie werden ja im Adminbreich auch nur per eingabe eingegeben und dann in der Mysql gespeichert

          siehe hier: Code in admin.php

          PHP-Code:
          $content .= '<input type="text" name="redirect_claim" value="'.(($_SESSION['password'] != $demo_pass)?
          $settings['redirect_claim']:'').'" placeholder="ShortLink1 on Claim Button. Not Required.">';

          $content .= '<input type="text" name="redirect_claim1" value="'.(($_SESSION['password'] != $demo_pass)?
          $settings['redirect_claim1']:'').'" placeholder="ShortLink2 on Claim Button. Not Required.">'
          in Table Settings und in der Zeile redirect_claim und redirect_claim1

          Kommentar


          • #6
            Du willst aber doch mehr. Dann musst du in der DB diese zB mit ; trennen und dann beim Auslesen vorher mit explode() trennen, damit du ein Array zum "shuffeln" bekommst.

            Kommentar


            • #7
              Ok es steht jede url in einer extra Spalte in der DB
              hab es nun so gelöst -->

              PHP-Code:
              $urls = array($settings['redirect_claim'], $settings['redirect_claim1']);
              shuffle($urls);
              $claim_redirect $urls[0]; 
              es funktioniert bisher auch
              hoffe vom Code her ist das auch richtig so ?

              Kommentar


              • #8
                Ok es steht jede url in einer extra Spalte in der DB
                Anmerkung: Das ist aber falsches DB-Design. Sobald man anfängt Spalten oder Variablen zu nummerieren, ist das fast immer der Fall.

                Mach dich mal über "Normalisierung" schlau. zB http://www.peterkropff.de/site/mysql/normalisierung.htm

                Kommentar


                • #9
                  Hallo Hausl ich weiß ja aber ich bin leider nicht der PHP Experte das dies so einfach für mich wäre und es bleibt ja nur die eine URL die dort gespeichert wird somit bleibt die Übersicht ja für mich erhalten, denke ich

                  hab da nur noch ein Problem jetzt es funktioniert soweit super bis auf folgendes,
                  in diesem Code wird der aufruf der Url noch überprüft

                  PHP-Code:
                  elseif
                         (
                         (!empty(
                  $claim_redirect)) &&(!strpos($_SERVER['HTTP_REFERER'], explode('/',$claim_redirect)[2]))
                          ) 
                  Wenn bei Klick auf den Button nun Url1 ausgewählt wird die Überprüfung nun aber gerade Url2 auswählt gibt es einen Fehler

                  "Bitte schliessen sie den Shortlink ab"

                  Kann man die Überprüfung nun irgendwie so gestalten das er alle Urls die in
                  PHP-Code:
                  $claim_redirect 
                  definiert sind in die Prüfung mit einbezieht
                  und wenn eine davon geklickt wurde es als positiv gewertet wird. ???

                  Kommentar


                  • #10
                    Was? Prüf halt auf die selbe Variable. Der Referer ist übrigens nicht zuverlässig, kann man ganz leicht faken, etc..

                    Kommentar


                    • #11
                      Püf auf die selbe Variable ?
                      Wie könnte das denn aussehen - steh gerade völlig aufm schlauch !!!

                      Referrer ! Ja script ist ja nicht von mir - der entwickler hat sich sicher was dabei gedacht...keine ahnung

                      Kommentar


                      • #12
                        Ob ein Wert in einem Array steht, kannst du mit in_array prüfen.
                        http://php.net/manual/de/function.in-array.php

                        PHP-Code:
                        $url 'example.org/site1');
                        $urls = array('example.org/site1''example.org/site2');
                        if (
                        in_array($url$urls)) { 
                        echo 
                        'url ist im array';

                        Kommentar


                        • #13
                          hmmm danke für die antwort aber wie kann man das nun in die Abfrage integrieren

                          PHP-Code:
                          elseif
                                 (
                                 (!empty(
                          $claim_redirect)) &&(!strpos($_SERVER['HTTP_REFERER'], explode('/',$claim_redirect)[2]))
                                  ) 
                          das dieses abfrage weiß er soll alle URL's quasi durchlassen die in $claim_redirect definiert sind....hab kein Plan mehr sry

                          Kommentar


                          • #14
                            Dann erkläre doch erstmal was deine aktuelle Abfrage macht!

                            Was macht strpos()?
                            Was macht explode()?
                            Was macht !empty()

                            Führe alles einzeln aus und schau dir an was bei jeder Funktion raus kommt. Dann sollte es eigentlich offensichtlich sein, wie du die Abfrage anpassen musst.

                            Kommentar


                            • #15
                              na ich habe das original:

                              PHP-Code:
                              $claim_redirect = (!empty($settings['redirect_claim'])) ? $settings['redirect_claim'] : $claim_redirect
                              geändert zu:
                              PHP-Code:
                              $urls = array($settings['redirect_claim'], $settings['redirect_claim1']);
                              shuffle($urls);
                              $claim_redirect $urls[0]; 
                              da ich gerne mehrere Urls statt nur einer Weiterleitung haben wollte (random)
                              in
                              PHP-Code:
                              elseif
                                     (
                                     (!empty(
                              $claim_redirect)) &&(!strpos($_SERVER['HTTP_REFERER'], explode('/',$claim_redirect)[2]))
                                      ) 
                              wird dann eben abgefragt ob es die Url ist die in
                              PHP-Code:
                              $claim_redirect 
                              steht , da nun aber 2 drin stehen funktioniert es manchmal und manchmal nicht, sicherlich je nach dem ob die Überprüfung die selbe url auswählt oder nicht (denke ich)

                              mit empty wird glaube ich nur geregelt ob er über den Shortlink weiterleitet oder ohne (je nach dem ob in DB geschrieben oder nicht, steht nichts drin wird ohne shortlink weitergeleitet)

                              die ist der Originale zusammenhang:

                              PHP-Code:
                              $claim_redirect = (!empty($settings['redirect_claim'])) ? $settings['redirect_claim'] : $claim_redirect
                              PHP-Code:
                              ## IF ANTIBOT SUCESS
                              else {
                                  
                              $_SESSION[$settings[currency].'_antibot'] = 'success';
                                  unset(
                              $_SESSION[$settings[currency].'_antibotlinks']);
                                  
                              header('Location: '.(empty($claim_redirect)? $_SERVER['REQUEST_URI'] : $claim_redirect));
                                  exit;

                              PHP-Code:
                              ## IF CLAIM REDIRECT
                              elseif ( (!empty($claim_redirect))
                                      &&(!
                              strpos($_SERVER['HTTP_REFERER'], explode('/',$claim_redirect)[2]))
                                      ){
                              $data['page'] = 'redirect';
                              $errors['unknown_error'] .= 'Unable to verify Shortener Visit. Please Try Again!';
                              $content .= '<div class="msg">';
                              $content .= '<form class="claim_form" method="POST" action="'.$claim_redirect.'">';
                              $content .= $square_ad;
                              $content .= '<input type="submit" class="login" value="Claim '.$coin[$settings['currency']]['coin'].'!"</div>';
                              $content .= '</form>';
                              $content .= '</div>';            

                              und ich wollte eben statt nur einem Shortlink gerne 2 oder 3 hinzufügen
                              ist halt blöd wenn man sich nicht sehr mit php auskennt

                              Kommentar

                              Lädt...
                              X