PHP: Geht das noch besser?

  • Hallo zusammen!

    Nur ne kurze Frage. Hab eine Seite erstellt auf der man Internetradio hören kann - nichts Aufregendes eigentlich.

    Da soll halt auch angezeigt werden welchen Sender man zuletzt gehört hat - das funzt auch.
    Wollte jetzt nur wissen ob man das noch ein bissl besser/kompakter schreiben kann.

    Hier gehts zur Testseite: http://kendo-bunker.de/donkey/demo/music.php

    und das is der php-Code:



    Gruß, Donkey

  • Ich würds spontan mit switch machen.
    break; nicht vergessen, da er ansonsten alle weiteren Cases abklappern geht wenn er schon eine Lösung gefunden hat.

    Code
    $path = $pfad[COLOR=#000000][COLOR=#006600].[/COLOR][COLOR=#0000cc]$_SERVER[/COLOR][COLOR=#006600][[/COLOR][COLOR=#cc0000]'PHP_SELF'[/COLOR][COLOR=#006600]][/COLOR][/COLOR];
    switch($_SERVER['HTTP_REFERER']) {
      case $path.'?trance':
        $sender = 'Trance',
        break;
      case $path.'?eurotrance':
         [usw....]
      default:
         $sender = 'Kein Radio';
    }

    So oder so muss er auch bei Cookies usw einen Check machen, wenn er Defacements ausschliessen will. Nur $_SESSION-Variablen könnten diese Kontrolle abschaffen, allerdings funzt das nur wenn der RadioSender respektiv die Lade-Seite bei ihm auf dem Server liegt.

  • Was soll der ganze Quatsch mit $path und Referer????

    PHP
    <?php
       switch($_SERVER['QUERY_STRING'])
       {
          case 'trance'      : $sender = "Trance"; break;
          case 'eurotrance': $sender = "Eurotrance"; break;
          default: $sender =""; break;
       }
    ?>
  • Vielen Dank für die Antworten.
    Das hat mir alles sehr geholfen ;)

    Ich bin den Tipp von d4f gefolgt



    Kann die "zuletzt gehört" Zeile ja ausblenden lassen wenn kein Referrer ermittelt werden kann oder wenns einer is der nichts mit der Seite zu tun hat...

    So in der Art vielleicht

    PHP
    $last = 'Du hast zuletzt gehört: <b>'.$sender.'</b><a href="'.$referrer.'" class="navi">Wieder anhören</a><br>';
    if ($referrer == NULL){
    echo '&nbsp;';
    }
    else{
    echo $last;
    }



    oder so ähnlich....

    Mit der Materie der Cookies hab ich mich noch garnicht beschäfftigt und hab dem zufolge kein Plan wie man das macht :D

    Danke nochmal
    Gruß, Donkey


    EDIT:

    So habs jetzt endgültig gelösst - manchmal wirkt logisches Denken Wunder :D

    Da ja ohne den entsprechenden Referrer kein Sendername angezeigt wird
    Hab ich einfach

    PHP
    default:
    $sender = 'Kein Sender';


    entfernt und dann $sender als Bedingung für die Anzeige genommen

    PHP
    if ($sender == NULL){
    echo '&nbsp;';
    }
    else{
    echo 'Du hast zuletzt gehört: <b>'.$sender.'</b><a href="'.$referrer.'" class="navi">Wieder anhören</a><br>';
    }
  • Ich bin den Tipp von d4f gefolgt


    Gratulation! Damit hast du wesentliche Verbesserungsvorschläge in den Wind geschrieben und hast weiterhin ein Script, das nicht unbedingt richtig funktionieren muss. Aber was soll's, wenn du dir Mühe gibst, wirst du dein Script bestimmt noch schlechter hinbekommen.

  • Zitat

    Damit hast du wesentliche Verbesserungsvorschläge in den Wind geschrieben und hast weiterhin ein Script, das nicht unbedingt richtig funktionieren muss.

    *Troll* Und das kommt von jemandem der in seinem Beispiel Referer mit Query-String verwechselt.

    Ich habe ihm lediglich die Frage beantwortet, wie er das Script, das Referer übeprüft optimieren kann.
    Auf die obenstehende Vorschläge (die übrigens nicht von dir kommen) bez. Cookies und Session bin ich nicht eingegangen, da dies ein völlig weiteres Thema ist.

    Wie man es mit Sessions löst:

    a) auf jeder RadioSeite folgenden Code unterbringen

    PHP
    <?php 
    session_start();
    $_SESSION['radio'] = 'DIESE_SEITE';
    ?>


    Dann auf der Hauptseite folgenden Code:

    PHP
    <?php
    session_start();
    if(isset($_SESSION['radio'])) {
      echo "Sie haben als letzes ".$_SESSION['radio']." gehört.";
    }
    else {
     echo "Sie haben kein Radio gehört.";
    }

    Jetzt zufrieden? *grummel*

  • *Troll* Und das kommt von jemandem der in seinem Beispiel Referer mit Query-String verwechselt.


    Genau, ich bin der Obertroll, dem allerdings klar ist, dass man mit dem Referer nicht verlässlich arbeiten kann!

    Ich habe ihm lediglich die Frage beantwortet, wie er das Script, das Referer übeprüft optimieren kann.


    Falls es dir nicht aufgefallen ist: ich habe nicht dich kritisiert, sondern nur auf die Problematik bzgl. Referer hingewiesen!!!


    Auf die obenstehende Vorschläge (die übrigens nicht von dir kommen) bez. Cookies und Session bin ich nicht eingegangen, da dies ein völlig weiteres Thema ist.


    Korrekt, ich bin ebenfalls nicht auf Cookies und Sessions eingegangen. Warum auch?

    Jetzt zufrieden?


    War ich immer! Wie schon erwähnt, ich habe nur darauf hingewiesen, dass mit dem Referer zu arbeiten einfach Mist ist!! Also erst die Antworten richtig lesen und dann (falls nötig) meckern!

  • Und ein konkreter Vorschlag is von Dir ja wirklich nicht gekommen - warum also der Wirbel jetzt?


    Ohh, anscheinend hat mein Versuch geklappt, ein Script ins vBulletin zu schmuggeln:

    PHP
    <?php
       if ($nickName != 'bandit600')
          hidePosting('#6');
    ?>

    :( DINGDONG. jemand zu Hause??? :(

    3 Mal editiert, zuletzt von bandit600 (17. Dezember 2008 um 15:22)