Ankündigung

Einklappen
Keine Ankündigung bisher.

Seite nicht ohne design aufrufen

Einklappen

Neue Werbung 2019

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

  • Seite nicht ohne design aufrufen

    Hi!

    ich hab mal wieder ein kleines Problem...

    Ich habe eine index.php in der ich das menu und alle anderen seiten wie z.B. News, Kontakt include. Nun ist mein Problem.. Wenn ich die Seite Kontakt mit dem richitgen Dateinamen anspreche... öffnest sich nur diese ohne das design was auf der index.php liegt)

    Code:
    switch($page)
    {
        case Kontakt:        include("kontakt.php");
                          break;
    
        case News:        include("news.php");
                          break;
        default:       include("news.php");
                          break;                 
    }?>

    index.php?page=Kontakt

    hat jemand eine idee wenn ich die seite kontakt (kontakt.php) öffne, sie mit der index.php geöffnet wird. (index.php?page=Kontakt)

    Danke![/code]

  • #2
    Wann haben hier endlich alle gelernt, error_reporting(E_ALL); an den Anfang eines Scriptes zu schreiben. PHP möchte dir garantiert etwas sagen, aber du hörst nicht hin!

    switch($_GET['page'])
    case "Kontakt":
    case "News":

    Auch nicht zu verachten:

    Richtig debuggen
    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
    4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

    Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.


    Gruß
    phpfan

    Kommentar


    • #3
      Zitat von phpfan
      $_GET['page']
      hierzu noch 'n Link : http://faq.kwm-web.info/doku.php?id=...gister_globals

      Kommentar


      • #4
        sorry hab den code nur unvollständig gepostet..

        Code:
        <?php $page=$_GET['page'];
        switch($_GET['page']) 
        {
        
            case Referenzen:        include("referenzen.php");
                              break;
            case Bestellrichtlinien:       include("bestellrichtlinien.php");
                              break;
             case Bestellung:       include("bestellung.php");
                              break;
             case Kontakt:       include("kontaktformular.php");
                              break;
        	 case Kontakt_auswerten:       include("kontaktformular-auswerten.php");
                              break;
             case Impressum:       include("impressum.php");
                              break;
        	 case Toplist:       include("toplist/index.php");
                              break;
             case Links:       include("links.php");
                              break;
             case Sonstiges:       include("sonstiges.php");
                              break;
             case admin:       include("newsletter-admin.php");
                              break;
        	case news_archiv:       include("news_archiv.php");
                              break;
            default:       include("news.php");
                              break;                 
        }?>

        Kommentar


        • #5
          Zitat von Buschdieb
          sorry hab den code nur unvollständig gepostet..
          Kopschüttel

          Ändert aber nichts an meiner ersten Antwort.

          Gruß
          phpfan

          Kommentar


          • #6
            Wo definierst du die Konstanten, die du in den case's benutzt?

            error_reporting(E_ALL) hast du immernoch nicht eingebaut...

            Kommentar


            • #7
              Hab jetzt error_reporting(E_ALL) eingebaut udn jetzt kommen ganz viele fehlermeldungen..
              was meint ihr denn mit den Konstanten? Das sagt mir gar nix!

              Danke

              Notice: Use of undefined constant Referenzen - assumed 'Referenzen' in /www/htdocs/XXX/web/index.php on line 101

              Notice: Use of undefined constant Bestellrichtlinien - assumed 'Bestellrichtlinien' in /www/htdocs/XXX/web/index.php on line 103

              Notice: Use of undefined constant Bestellung - assumed 'Bestellung' in /www/XXX/buschd/web/index.php on line 105

              Notice: Use of undefined constant Kontakt - assumed 'Kontakt' in /www/htdocs/XXX/web/index.php on line 107

              Notice: Use of undefined constant Kontakt_auswerten - assumed 'Kontakt_auswerten' in /www/htdocs/XXX/web/index.php on line 109

              Notice: Use of undefined constant Impressum - assumed 'Impressum' in /www/htdocs/XXX/web/index.php on line 111

              Notice: Use of undefined constant Toplist - assumed 'Toplist' in /www/htdocs/XXX/web/index.php on line 113

              Notice: Use of undefined constant Links - assumed 'Links' in /www/htdocs/XXX/web/index.php on line 115

              Notice: Use of undefined constant Sonstiges - assumed 'Sonstiges' in /www/htdocs/XXX/web/index.php on line 117

              Notice: Use of undefined constant admin - assumed 'admin' in /www/htdocs/XXX/web/index.php on line 119

              Notice: Use of undefined constant news_archiv - assumed 'news_archiv' in /www/htdocs/XXX/web/index.php on line 121

              Notice: Undefined variable: mysqlserver in /www/htdocs/XXX/web/config.php on line 8

              Kommentar


              • #8
                Wieso sollte man überhaupt kontakt.php direkt aufrufen? Ich hab das ähnlich gemacht, also das ich nur die Index-Datei habe und von dort aus die anderen Aufrufe. Da hab ich dann allerdings den Zugriff auf alle anderen php-Dateien gesperrt (.htaccess). Falls du nun wirklich die kontakt.php direkt so aufrufen willst, kannste das gute mod_rewrite (Apache-Modul) verwenden

                Code:
                RewriteEngine on
                RewriteRule ^(index|kontakt|zweite|dritte|undnocheine){1}\.php(\?{1}(.*))?$ $index.php?page=$1&$2 [L]
                Kurze Erläuterung: 1. Zeile aktiviert das Ding (logisch). Die zweite Zeile such vom Beginn (^) der URL (ab dem Teil nach "domain.tld/") nach genau eins der Wörter in der Klammer, danach nach ".php" und falls noch Argumente übergeben werden, werdense eben auch mit übernommen.

                Ich habe grad kein Plan, obs klappt, es war aus dem Kopf ma so hingeschrieben. Infos findet man auch (ua) hier

                Kommentar


                • #9
                  Konstante
                  "keine Konstante"

                  Kommentar


                  • #10
                    Ich würd es nicht unbedingt über mod_rewrite lösen.
                    1. Hat man nich überall mod_rewrite.
                    2. Muss jedes mal die .htaccess Datei geändert werden wenn eine neue Seite hinzukommt.

                    Du solltest in der Index.php am Anfang eine Konstante definieren

                    PHP-Code:
                    <?php
                    define
                    ('meine_konst',1);
                    ?>
                    Und in der Kontakt.php fragst du dann ab ob die Konstante gesetzt ist. Wenn ja dann weißt du das die Kontakt.php in die Index.php included wurde wenn nicht ist die Kontakt.php seperat aufgerufen worden.

                    PHP-Code:
                    <?php
                    if(!defined('meine_konst'))
                    {
                        
                    // Tu was du willst z.b.
                        
                    exit;
                        
                    // ODER auf die Index.php weiterleiten
                        
                    header('Location: Index.php');
                    }

                    // Ansonsten geht dann der normale Code weiter. 
                    ?>

                    Das definieren der Konstante solltest du GANZ am Anfang der Index.php machen bevor irgendeine Seite includet wird auch soetwas wie Config.php.

                    Die Abfrage ob die Konstante definiert ist kannst du in JEDE Datei schreiben die NICHT seperat aufgerufen werden soll.

                    Das phpBB Forum macht es z.B. genauso.

                    Kommentar


                    • #11
                      Zitat von Zergling
                      Konstante
                      "keine Konstante"
                      ??????

                      Was meinst du denn damit? Was soll ich damit machen.. ich versteh das nicht!

                      Kommentar


                      • #12
                        PHP-Code:
                        <?php
                        define 
                        ('Hallo''Tschüss');
                        $hallo "Hallo";
                        switch (
                        $hallo)
                        {
                            case 
                        Hallo:
                                echo 
                        "Hallo, PHP!";
                                break;
                            default:
                                echo 
                        "Tschüss, PHP!";
                                break;
                        }
                        ?>
                        Ausprobieren und wundern....

                        Kommentar


                        • #13
                          Kurze knackige Ergänzung
                          Code:
                          <?php
                          if(!defined('meine_konst'))
                          {
                              // Tu was du willst z.b.
                              exit;
                              // ODER auf die Index.php weiterleiten
                              header('Location: index.php?page=kontakt');
                          }
                          
                          // Ansonsten geht dann der normale Code weiter. 
                          ?>
                          Ich würd es nicht unbedingt über mod_rewrite lösen.
                          1. Hat man nich überall mod_rewrite.
                          2. Muss jedes mal die .htaccess Datei geändert werden wenn eine neue Seite hinzukommt.
                          1. OK, haste Recht, kommt aber auf einen Test an. Bisher is mir aber noch net unter gekommen, wo es sich nicht zumindest aktivieren ließ, wenn es nicht schon der Fall war.
                          2. Man kann einfach alles auf die Index weiter leiten lassen und dann in der index auf Existenz der Seite prüfen
                          Code:
                          RewriteRule ^(.*){1}\.php(\?{1}(.+))?$ index.php?page=$1&$3 [L]
                          Hat dann allerdings den Witz, dass man auch links a la "index.php?page=index" hat.
                          3. Is sauberer Ich halt net viel von solchen Patchwork-Lösungen, bei denen jede Seite quasi den identischen Code enthalten und sich selbst prüfen muss... Wobei die natürliche eine einfache Lösung darstellen, die durchaus ihre Berechtigung haben (zB bei 1.)

                          ----

                          Was hattn das Forum aus meinem PHP-Block gemacht? Hier im Text stehts richtig...

                          ----

                          Grad in ner Signatur gelesen, dass er mir den PHP-Block verhunzt hat, weil ich gleichzeitig Code- und PHP-Blöcke verwendet habe. Kann mir ma jemand erklären, warum er dann sowas macht?

                          Kommentar


                          • #14
                            Zitat von Buschdieb
                            was meint ihr denn mit den Konstanten? Das sagt mir gar nix!
                            Schlimm genug!!! http://www.php.net/manual/de/language.constants.php

                            Gruß
                            phpfan

                            Kommentar


                            • #15
                              haaaa... ich verstehe so langsam... bisher kannte ich das noch nicht!

                              ist der code so oki? Also Fehlermeldungen diesbezüglich kommen nicht mehr... also auf keinen Fall was mit constant

                              Code:
                              <?php 
                              define ("Referenzen", "Referenzen");
                              define ("Kontakt", "Kontakt");
                              define ("Kontakt_auswerten", "Kontakt_auswerten");
                              define ("Impressum", "Impressum");
                              define ("Links", "Links");
                              define ("Sonstiges", "Sonstiges");
                              define ("news_archiv", "news_archiv");
                              
                              $page=$_GET['page'];
                              switch($_GET['page']) 
                              {
                                  case Referenzen		:       include("referenzen.php");
                                  case Kontakt		:       include("kontaktformular.php");
                                  case Kontakt_auswerten      :       include("kontaktformular-auswerten.php");
                                  case Impressum		:       include("impressum.php");
                                  case Toplist                :       include("toplist/index.php");
                                  case Links                  :       include("links.php");
                                  case Sonstiges              :       include("sonstiges.php");
                                  case news_archiv		:       include("news_archiv.php");
                                  default:       			include("news.php");               
                              }?

                              Kommentar

                              Lädt...
                              X