Dateiaufruf mit Anker in include

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

  • Dateiaufruf mit Anker in include

    Hallo,

    ich möchte aus einer so formulierten include Anweisung:

    include $dateien[$_GET['section']];

    section enthält den Verweis zu einer HTML Seite, einen Anker mitgeben, wenn das möglich ist? Bekomme aber die Fehlermeldung:

    Warning: main(_praxis.htm#5) [function.main]: failed to open stream: No such file or directory in /home/kiefer/diekieferorthopaeden.at/_inhalt.php on line 8

    Die Seite mit diesem Namen existiert natürlich nicht, wie kann ich trotzdem zu dem Anker in der HTML Datei springen?

    mfg Marco

  • #2
    Mit nem include schon einmal gar nicht. Sowas löst du per JavaScript.
    Sunshine CMS
    BannerAdManagement
    Borlabs - because we make IT easier
    Formulargenerator [color=red]Neu![/color]
    Herkunftsstatistik [color=red]Neu![/color]

    Kommentar


    • #3
      Hallo Benny,

      danke für deine Antwort!
      Die include Anweisung steuert den Main Bereich der Seite. Das ganze funktioniert recht gut - bis eben auf die Sprungmarken.

      Hast du vielleicht einen Anhaltspunkt wo ich da mit JavaScript ansetzen kann?

      mfg Marco

      Kommentar


      • #4
        Du solltest unbedingt prüfen, was du da includierst. Ansonsten ist das ein sehr offensichtliches Scheunentor.

        Den Anker bekommst du weg mit stringfunktionen,
        z.B. so
        PHP-Code:
        $section = (substr($_GET['section'], 0strrpos($_GET['section'], "#"))); 
        ich glaube

        Kommentar


        • #5
          Hirn einschalten.

          Klar dass der Include funzt, aber du willst ja zu dem Anker springen und das klappt mit nem include nicht.
          Sunshine CMS
          BannerAdManagement
          Borlabs - because we make IT easier
          Formulargenerator [color=red]Neu![/color]
          Herkunftsstatistik [color=red]Neu![/color]

          Kommentar


          • #6
            Ich dachte er will seinen neuen Inhalt includieren und gleichzeitig darin zu einem Anker springen.
            ich glaube

            Kommentar


            • #7
              Original geschrieben von ministry
              Ich dachte er will seinen neuen Inhalt includieren und gleichzeitig darin zu einem Anker springen.
              ja aber das klappt ja nicht. der anker wird nicht beachtet, also das springen klappt nicht.
              Sunshine CMS
              BannerAdManagement
              Borlabs - because we make IT easier
              Formulargenerator [color=red]Neu![/color]
              Herkunftsstatistik [color=red]Neu![/color]

              Kommentar


              • #8
                ... also ich ruf die Seite nach wie vor ohne Anker auf mit include, verstehe, aber wie spring ich dann? Den Anker müsst ich dann mit einer eigenen Variable mitgeben oder so wie ministry gemeint hat vor dem Aufruf wegschneiden und in eine andere Variable einlesen, soweit schnall ich es.

                Marco

                Kommentar


                • #9
                  Original geschrieben von Benny-one
                  ja aber das klappt ja nicht. der anker wird nicht beachtet, also das springen klappt nicht.
                  Warum nicht?

                  file1.php:
                  PHP-Code:
                  <?php
                  echo("Parameter: ");
                  echo isset(
                  $_GET['test']) ? $_GET['test'] : 'keiner';
                  include(
                  "file2.php");
                  ?>
                  file2.php:
                  PHP-Code:
                  <?php
                  echo("<p>viel Text<br />
                  viel Text<br />
                  viel Text<br />
                  [...]

                  <a href=\"#\" name=\"blub\">Link mit Anker</a>
                  </p>"
                  );
                  ?>
                  Aufruf:

                  http://localhost/file1.php?test=bla#blub
                  Zuletzt geändert von ministry; 11.12.2007, 12:23.
                  ich glaube

                  Kommentar


                  • #10


                    argh, gut, wenn das vorher angeklickt wurde schon. ich dachte er wollte einen include basteln und beliebig an Anker innerhalb der Seite springen, ohne dass der User das vorher ausgewählt hat.
                    Sunshine CMS
                    BannerAdManagement
                    Borlabs - because we make IT easier
                    Formulargenerator [color=red]Neu![/color]
                    Herkunftsstatistik [color=red]Neu![/color]

                    Kommentar


                    • #11
                      hallo ministry, hallo benny,

                      danke für euere Hilfe, funktioniert.

                      Was ich aber einfach von der Logik her nicht verstehe ist, wieso "test=bla#blub" überhaupt dann als Aufforderung zum Springen umgesetzt wird nach dem include des file2.php - ich kann ja sogar das "bla" weglassen, also so: "test=#blub" und es funktioniert ebenso.

                      Grüße - Marco

                      Kommentar


                      • #12
                        test=bla kannst du natürlich weglassen - du brauchst stattdessen section=[dein bereich zum includieren] .

                        Prüfst du denn mittlerweile, was includiert wird oder übernimmst du es noch immer einfach so?
                        ich glaube

                        Kommentar


                        • #13
                          stimmt, test=bla kann ich auch weglassen, sagenhaft

                          nein, ich das Durchdenken dieser Problestellung hat meine Zeit bis jetzt in Anspruch genommen. aber jetzt hab ich Zeit über Sicherheit nachzudenken, klar!

                          Der Inhalt von section wird in einem Array gesucht, bei Übereinstimmung der im Array hinterlegte Seitenaufruf im include angegeben - soweit alles klar.
                          Wo ist da ein Scheunentor? ist jedes include ein Scheunentor?

                          ich find deine Hinsweise irre hilfreich, weil sie mir einfach ein wenig die Augen öffnen, Hinweise genügen bei mir eh, bin ja am Lernen interessiert, diesbezüglich nochmals vielen Dank.

                          Marco

                          Kommentar


                          • #14
                            Das ist prinzipiell schon richtig, am Anfang hast du das aber nicht so gemacht (sonst hättest du die Fehlermeldung nicht bekommen, dass die Datei nicht existiert).

                            Entweder schreibst du deine Dateien in so ein Array und prüfst auf Existenz
                            PHP-Code:
                            $includes = array('praxis' => 'praxis.htm''wartezimmer' => 'dings.htm' ...);
                            if (isset(
                            $includes[$_GET['section'])) include($includes['section']); 
                            oder du machst es mit einem switch ... case über $_GET['section'] oder ähnlich. Includes sind nur Scheunentore, wenn fremdbestimmt werden kann, was bei dir eingebunden wird.
                            Zuletzt geändert von ministry; 12.12.2007, 16:33.
                            ich glaube

                            Kommentar


                            • #15
                              ... öööh - doch, hab ich schon anfänglich so gemacht gehabt

                              Schuld an der Fehlermeldung war einzig und alleine dieser Versuch gleich im Array den Anker mitzugeben - dadurch entstand die von mir gepostete Fehlermeldung.

                              der schuldige Eintrag im Array:

                              $dateien['impressum'] = "_praxis.htm#5";

                              liebe Grüße - Marco

                              Kommentar

                              Lädt...
                              X