Ankündigung

Einklappen
Keine Ankündigung bisher.

Meta problem beim Includen von Datei

Einklappen

Neue Werbung 2019

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

  • Meta problem beim Includen von Datei

    Hallo, ich habe meine Seite folgendermaßen aufgebaut:

    Die index.php Datei sieht so aus:

    Code:
    <html>
    <head>
    <META NAME="Robots" CONTENT="INDEX,FOLLOW">
    <META NAME="Content-language" CONTENT="DE">
    <meta http-equiv="expires" content="80000">
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link rel="shortcut icon" href="favicon.ico" >
    <meta http-equiv="imagetoolbar" content="no">
    <link href="style.css" rel="stylesheet" type="text/css">
    </head>
    
    <body>
    <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
      <tr> 
        <td height="100" colspan="2">Hier ist der Kopfbereich</td>
      </tr>
      <tr> 
        <td width="200">Hier ist die Navigation</td>
        <td align="center" valign="top">
                      <?php
    if (!isset($_GET['site'])) { $_GET['site'] = "startseite"; }
    if (file_exists($_GET['site'].".php")) { include($_GET['site'].".php"); } else { echo " 
    <center>Diese Seite existiert leider nicht</center>
     "; }
    ?>
                       </td>
      </tr>
    </table>
    </body>
    </html>
    und die Seite die per include eingefügt wird so:

    Code:
    <title>...:::Der Titel der Seite</title>
    <META NAME="Description" CONTENT="Hier sollte sie beschreibung stehen">
    <META NAME="Keywords" CONTENT="Hier sollten meine Schlüsselwörter stehen">
    <table width="552" border="0" cellspacing="0" cellpadding="0">
      <tr> 
        <td align="center" valign="top">Dieser Text steht nun auf der startseite...</td>
      </tr>
    </table>
    Jetzt habe ich das Problem das der Seitentitel angezeigt wird, nur leider wird die Beschreibung und die schlüsselwörter nicht übernommen, desweiteren sollten diese Angaben ja in der HEAD Bereich, was sie somit auch nicht sind.
    Weiß jemand eine lösung für mein Problem?
    Bitte nehmt Rücksicht, bin einfach nur ein Blutiger Anfänger in PHP.


  • #2
    Weiß jemand eine lösung für mein Problem?
    Dein ganzen TITLE und META Zeugs aus den Dateien raus nehmen, die per include() eingefügt werden.

    Kommentar


    • #3
      Zitat von CIX88
      Dein ganzen TITLE und META Zeugs aus den Dateien raus nehmen, die per include() eingefügt werden.
      Ich will ja für alle seiten die per include eingefügt werden einen eigenen Seitentitel, Suchwörter und Beschreibungen erstellen, also müsste ich das glaube in den Seiten lassen.
      Denn wenn ich es nur in der index.php Datei schreiben habe ich z.B. bei allen seiten den gleichen Seitentitel.
      Bitte nehmt Rücksicht, bin einfach nur ein Blutiger Anfänger in PHP.

      Kommentar


      • #4
        Moin,

        wie CIX88 schon sagt, raus damit und per inqlude in den Haedbereich einfügen, brauchst dann aber für jede Seite eine eigene Tabelle in der Datenbank, oder mal so:
        PHP-Code:
        <?php

        <title>...::: <? php echo '$title'?> </title> 
        <META NAME="Description" CONTENT="<? php echo '$description'?> "> 
        <META NAME="Keywords" CONTENT="<? php echo '$keywords'?> "> 
        ?>
        Natürlich vor her die Verbindung zur Datenbank etc herstellen.

        Uwe

        Kommentar


        • #5
          Ich will ja für alle seiten die per include eingefügt werden einen eigenen Seitentitel, Suchwörter und Beschreibungen erstellen, also müsste ich das glaube in den Seiten lassen.
          Jo dann musste den ganzen Kram aus der index.php rausnehmen.
          Aber dann muss du auch dein Konzept komplett ändern.
          Jedenfalls darauf achten, dass nicht gleiche META-Elemente benutzt werden.

          Kommentar


          • #6
            Ich habe es mal so probiert:

            Erste Seite:

            Code:
            <html>
            <head>
            <title><?php echo $title ?> </title>  
            <META NAME="Description" CONTENT="<?php echo $description?> ">  
            <META NAME="Keywords" CONTENT="<?php echo $keywords?> "> 
            </head>
            Und die Seite die includet wird:

            PHP-Code:
            <?php $title 'hallo';
                
            $description 'das ist eine Testeite';
                
            $keywords 'teste, tester, testseite, seite';
                
            ?>
            Aber es geht nicht, da der Code von der includeten Seite ja erst weiter unten kommt und damit die Strings nicht in den Headbereich kommen.
            Wie kann ich das machen?
            Also das vielleicht erst geschaut wird ob in den Strings was steht und wenn nicht soll es weiter unten ausgelesen werden.
            Mit der Datenbank, ist mir das zu viel Arbeit, wenn ich ca. 300 Seiten habe.
            Bitte nehmt Rücksicht, bin einfach nur ein Blutiger Anfänger in PHP.

            Kommentar


            • #7
              Hier wäre die Überlegung ob es sich lohnt mit Templates zu arbeiten.

              Ansonsten wäre die einfachste Möglichkeit höchstens den Seiteninhalt auch in eine Variable zu schreiben. Also:

              in der Include:
              $titel = 'der titel';
              $meta = 'alle metatags';
              $inhalt = 'der seiteninhalt, text, usw';

              und die index dann zuerst includen, dann Titel und Meta ausgeben und dann den Inhalt.

              Kommentar


              • #8
                Zitat von webbi
                Hier wäre die Überlegung ob es sich lohnt mit Templates zu arbeiten.
                Mit Templates zu Arbeiten lohnt sich in meinen Augen schon.
                Für eine Datenbank habe ich leider nicht die Zeit mich dort einzuarbeiten.
                Ich finde dazu auch zu wenig beispiele.


                Wie meinst du das:
                Zitat von webbi
                Ansonsten wäre die einfachste Möglichkeit höchstens den Seiteninhalt auch in eine Variable zu schreiben. Also:

                in der Include:
                $titel = 'der titel';
                $meta = 'alle metatags';
                $inhalt = 'der seiteninhalt, text, usw';

                und die index dann zuerst includen, dann Titel und Meta ausgeben und dann den Inhalt.
                könntest du bitte mal ein kleines beispiel posten?
                Ich lerne besser an Beispielen.
                Bitte nehmt Rücksicht, bin einfach nur ein Blutiger Anfänger in PHP.

                Kommentar


                • #9
                  Ich habe jetzt versucht die Metatags aus einer .txt Datei auszulesen.
                  Habe im Head der index.php folgendes probiert:

                  Code:
                  <?php 
                      $keyword = $site . ".txt"; 
                      include('$keyword'); 
                  ?>
                  dann:

                  Code:
                  <meta name="keywords" content="Irgendeine, Keyword, wasauchimmer, <?php echo $words;?>">
                  und in der txt Datei steht folgendes:

                  Code:
                  $words = "keyword1, keyword2, ....";
                  jetzt bekomme ich folgende Fehlermeldung:

                  Code:
                  Warning: main() [function.main]: Unable to access $keyword in /home/www/htdocs/meinedomain.de/index.php on line 5 
                  
                  Warning: main($keyword) [function.main]: failed to create stream: No such file or directory in /home/www/htdocs/meinedomain.de/index.php on line 5 
                  
                  Warning: main() [function.main]: Failed opening '$keyword' for inclusion (include_path='') in /home/www/htdocs/meinedomain.de/index.php on line 5
                  Wo ist da der Fehler?
                  Bitte nehmt Rücksicht, bin einfach nur ein Blutiger Anfänger in PHP.

                  Kommentar


                  • #10
                    Zitat von scheibo
                    Code:
                    <?php 
                        include('$keyword'); 
                    ?>
                    Hier sind die Hochkommata fehl am Platz, da so die Variable $keyword nicht interpretiert wird.

                    Kommentar


                    • #11
                      Fehler von mir

                      Jetzt geht das einlesen, aber die Wörter werden nicht hier:

                      Code:
                      <META NAME="Keywords" CONTENT="<?php echo $keyword; ?>">
                      ausgegeben sondern werden an den Anfrang der Seite angezeigt.
                      Wieso das, sie sollten doch eigentlich in dem Meta ausgegeben werden.
                      Bitte nehmt Rücksicht, bin einfach nur ein Blutiger Anfänger in PHP.

                      Kommentar


                      • #12
                        Weil du deine Keywords wahrscheinlich includest oder eben schon oben rausprintest.

                        Probier doch wenigstens mal 10-15 Minuten selbst ein Problem zu lösen.

                        Kommentar


                        • #13
                          Zitat von Zergling
                          Probier doch wenigstens mal 10-15 Minuten selbst ein Problem zu lösen.
                          Wer sagt das ich das nicht mache?
                          Ist das hier ein Anfängerforum oder nicht?
                          Da wird man doch fragen dürfen wenn man nicht weiter weiß, oder?
                          Bitte nehmt Rücksicht, bin einfach nur ein Blutiger Anfänger in PHP.

                          Kommentar


                          • #14
                            Trotzdem sollte auch ein Anfänger langsam bemerkt haben, dass man mit einer Zeile nicht ohne weiteres das Problem lokalisieren kann. Und ich nehme an, dass du keinen blassen Schimmer hast, wie man ein Problem löst. Hättest du die betreffende Zeile nähmlich einfach mal auskommentiert, wäre dir aufgefallen, dass der Text trotzdem ausgegeben wird. Und spätestens das hätte dir zeigen müssen, dass man mit dieser Zeile alleine nicht auf dein Problem schließen kann.

                            (Na ok, man kann mit 99% Sicherheit vermuten, woran es liegt. Lies doch einfach mal Zerglings post und dann die Doku zu include. Danach schaust du dir die Funktion file_get_contents() an. Danach sollte sich das Problem gelöst haben.

                            [EDIT]

                            Sorry, hab gerade erst gesehen, dass der Thread noch ne 1. Seite hat

                            Kommentar

                            Lädt...
                            X