Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP-Funktion (IF) im Link

Einklappen

Neue Werbung 2019

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

  • PHP-Funktion (IF) im Link

    Hallo,

    ich habe folgende PHP-Funktion in einen Link eingebaut:

    <a <?php if($id=="start"){echo "class=bold";} else{echo "class=normal";} ?> href="index.php?id=start" >Start</a>

    Das komische ist, dass es bei der PHP-Version 4.3.4 funktioniert, aber bei der Version 4.3.6 nicht.
    Ist es so, wie ich es gemacht habe überhaupt zulässig, oder macht man es anders?

    Kann mir jemand sagen, was daran falsch ist?

    Danke im Voraus
    Erri

  • #2
    WHAT THE HELL...!!

    Ich würd das so machen wenn ich du wäre:

    Code:
    <?php
    
    if($id=="start")
    {
        echo "<a class=\"bold\" href=\"index.php?id=start\">Start</a>";
    }
    else
    {
        echo "<a class=\"normal\" href=\"index.php?id=start\">Start</a>";
    }
    
    ?>
    Mach es dir nicht so UMSTÄNDLICH!! :wink:

    MFG Broadcast

    Kommentar


    • #3
      ich würde das so machen
      Code:
      <?php
      if($id=="start"){
      $class="bold";
      } else {
      $class="normal";
      }
      ?>
      <a class="<?php echo $class ?>" href="index.php?id=start">Start</a>

      Kommentar


      • #4
        evtl einmal register_globals=on das andere mal =off ?

        Kommentar


        • #5
          Zitat von Broadcast
          Mach es dir nicht so UMSTÄNDLICH!! :wink:
          naja die einfachste und schnellste version is deins au nedd :wink:

          Kommentar


          • #6
            Re: PHP-Funktion (IF) im Link

            <a <?php if($_REQUEST['id']=="start"){echo "class=bold";} else{echo "class=normal";} ?> href="index.php?id=start" >Start</a>

            Kommentar


            • #7
              Vielen Dank für eure schnelle Hilfe.

              Das eigentliche Problem lag bei register globals...

              Aber auch danke für die Hinweise der Schreibweisen.
              Ich bin noch ziemlicher PHP-Neuling und mach mir`s halt
              doch schwerer als es ist.

              Eine Frage hab ich noch: Für was sind die "\" (Backslash`s) gut, die
              Broadcast in seinem Code hat?

              Danke und Gruß
              Erri

              Kommentar


              • #8
                Da man beim ECHO-Befehl schon Anführungsstriche verwendet, muss man die Anführungsstriche im ECHO-Befehl "Ausklammern".

                Beispiel:

                Code:
                echo "Dein name ist "Noob" sag ich dir!";
                Man hat hier 4 Anführungsstriche, der ECHO-Befehl denkt nun das der Befehl beim 2. Anführungsstrich schon zuende ist, er soll aber bis Anführungsstrich 4 gehen und nicht bis 2. Also müssen wir Anführungsstrich 2 und 3 Ausklammern. So also:

                Code:
                echo "Dein name ist \"Noob\" sag ich dir!";
                Musste mal ausprobieren dann siehst du es!

                MFG Broadcast

                Kommentar


                • #9
                  Zitat von Erri
                  Das eigentliche Problem lag bei register globals...
                  Und die solltest du auch hübsch auf OFF lassen.

                  Zitat von Erri
                  Eine Frage hab ich noch: Für was sind die "\" (Backslash`s) gut, die
                  Broadcast in seinem Code hat?
                  a: Seine Code-Variante ist die mit abstand übelste hier
                  b: besonders wegen dieser Backslahs ..
                  c: Diese leite eine "Escape-Sequenz" ein. Damit wird es möglich Sonderzeichen einzufügen. Da die String im " umschlossen waren, ist " innerhalb des Strings ein Sonderzeichen und muss escaped werden.

                  Kommentar


                  • #10
                    @Guradia

                    Du darfst dat net so umständlich erklären! Es gibt auch leute im Forum die mit PHP gerade erst anfangen (ich zwar nich aber egal)!

                    zu a.) Musst mal meine Quellcodes sehen da sieht alles so aus! meiner meinung nach übersichtlich und kein haufen von string aneinanderreihungen.

                    Ich find es so übersichtlich und es funzt, man merkt vielleicht das ich zuviel mit C++ Programmiere!!

                    MFG Broadcast

                    Kommentar


                    • #11
                      Zitat von Guradia
                      Zitat von Erri
                      Das eigentliche Problem lag bei register globals...
                      Und die solltest du auch hübsch auf OFF lassen.
                      Wieso das denn? Was hat das für Gründe?

                      Erri

                      Kommentar


                      • #12
                        Zitat von Broadcast
                        zu a.) Musst mal meine Quellcodes sehen da sieht alles so aus! meiner meinung nach übersichtlich und kein haufen von string aneinanderreihungen.
                        Nö .. verzichte auf diese Anblick und widme mich lieber deinem Avatar ...


                        Aber mach es doch wenigstens so:
                        Code:
                        print 'Start';
                        Immerhin ist ja keine Variable eingebunden ...

                        Kommentar


                        • #13
                          Zitat von Erri
                          Wieso das denn? Was hat das für Gründe?
                          ?id=

                          aus $_GET, $_REQUEST abzugreifen ist schlicht logischer. Weil du so immer weist, wo es her kommt.

                          Das Ding kann dir auch nicht zufällig mit irgendeiner anderen $id ins Gehege kommen.

                          Ein potenzieller Angreifer kann dir auch nicht einfach mal so eine $id unterschieben, wo keine von aussen hin soll

                          Je nach Hosters ist es nunmal OFF ...^^

                          Kommentar


                          • #14
                            Guten Morgen,

                            gestern habe ich mein Problem mit $_REQUEST gelöst.
                            Hier funktioniert es leider nicht.

                            if (!isset($id)) {
                            $id="index";
                            }

                            --> dies funktioniert nicht (außer register globals on)

                            if (!isset($_REQUEST['id'])) {
                            $id="index";
                            }

                            --> dies funktioniert aber auch nicht

                            Wisst ihr, wie ich es diesmal machen kann?

                            Danke
                            Erri

                            Kommentar


                            • #15
                              $_REQUEST bei if (!isset...)

                              Zitat von Erri
                              Guten Morgen,

                              gestern habe ich mein Problem mit $_REQUEST gelöst.
                              Hier funktioniert es leider nicht.

                              if (!isset($id)) {
                              $id="index";
                              }

                              --> dies funktioniert nicht (außer register globals on)

                              if (!isset($_REQUEST['id'])) {
                              $id="index";
                              }

                              --> dies funktioniert aber auch nicht

                              Wisst ihr, wie ich es diesmal machen kann?

                              Danke
                              Erri
                              Habt ihr vielleicht eine Lösung hierfür?

                              Kommentar

                              Lädt...
                              X