gb-script - springt aus dem System

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

  • gb-script - springt aus dem System

    Hallo Community!

    Folgendes Problem habe ich:

    /index.php <- ist meine Startseite
    /book/index.php <- ist die Startseite meines Gästebuchs


    /book.php sieht folgendermaßen aus:

    include templates/header
    include book/index.php
    include templates/footer

    zu sehen ist das hier:
    http://mulack.biz/book.php

    Bei jeder Aktion im gb script springt es aber aus diesem
    header
    content
    footer system heraus

    zu sehen ist das hier
    http://mulack.biz/book/index.php?action=sign

    Wie kann ich dieses Problem lösen?

    Viele Grüße und Dank an Euch!
    Fabian

  • #2
    Indem du die include-Anweisungen auch in der index.php und nicht nur in der book.php unterbringst?

    Kommentar


    • #3
      also ist die seite nun

      Code:
      book.php
      oder

      Code:
      book/index.php
      da liegt glaub ich das prob....
      EDIT:
      mist. pekka war schneller. ;-))
      2 meiner pages:

      Kommentar


      • #4
        book.php ist die seite im root, die book/index.php included und header und footer
        ____
        Danke aber dann entsteht ja das selbe:

        /book/index.php

        wird versehen mit
        include header.html
        include footer.html

        header und footer haben aber viele links und grafiken

        beispielgrafik.gif im header liegt im ordner
        /grafiken

        wird dann aber aufgerufen als
        book/grafiken/beispielgrafik.gif

        Oder mache ich etwas falsch?

        Gruß
        Zuletzt geändert von littlefu; 03.01.2006, 00:06.

        Kommentar


        • #5
          wie wärs mit absoluten statt relativen pfaden?
          2 meiner pages:

          Kommentar


          • #6
            ja, wenn es keine andere möglichkeit gibt, aber dann muss jeder link im header und im footer absolut geändert werden. sollte sich die domain mal ändern, wäre das schlecht.

            aber danke

            Kommentar


            • #7
              dafür gibts zB "suchen und ersetzen" in den meisten editoren....

              und ne domain ändert sich ja nicht jede woche, stimmts??

              ja, wenn es keine andere möglichkeit gibt,
              gibt es bestimmt. nur das ich immernoch nicht ganz durch deine ordnerstruktur steige ;-)
              2 meiner pages:

              Kommentar


              • #8
                Ich kann Dir nicht sagen, wieso, aber bei absoluten Pfaden habe ich immer das Gefühl, eine "noob-lösung" zu nutzen

                Ich versuche noch einmal, meine Struktur zu erklären (ist aber nicht so schlimm, sollte das nicht anders zu lösen sein:

                Ordner

                / <- alle eigenen phps
                /templates <- alle eigenen htmls, die in die phps included werden
                /grafiken <- meine grafiken, navigation, dekoration...

                /book <- das gästebuch script

                data

                /book/index.php <- gelieferte Startseite des Gbs
                /index.php <- eigene startseite meiner seite
                /book.php <- eigene Seite, die
                /templates/header,
                /book/index.php
                /templates/footer
                enthält.

                All Pfade im header und Footer zu Bilder sehe so aus
                /grafiken/bild.gif
                Alle Pfade zu Seiten sehen so aus
                /....php


                Daher die Geschichte mit der eigenen book.php -> in der sind header und footer und sie liegt so, dass die Pfade von header und footer stimmen

                bei jeder action in book.php (eigentlich in der includeden book/index.php
                springt das script aber aus header und footer.

                Problem: binde ich footer und header ein in:
                /book/index.php
                löst sich dieses Problem, ich erhalte aber:

                dass alle relativen Pfade von Bildern und Links in /templates/header
                und templates/footer nun falsch sind, da included
                und nu beispielsweise auf:

                /book/grafiken/bild.gif verweisen...


                Danke und viele Grüße

                Kommentar


                • #9
                  book.php ist die seite im root, die book/index.php included und header und footer
                  Aber warum schickst du dann die Daten an
                  http://mulack.biz/book/index.php?action=sign
                  Schick die Daten doch an book.php, die im Root liegt und book/index.php inkludiert.

                  Gruss

                  tobi
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    Ja, genau das ist es!!!!!!!!!!!!!!
                    Ich kann Dir sagen, warum ich das nicht tue - weil ich kein Php kann =)

                    das ist die book/index.php die inkludiert wird - wäre nett, wenn du mir sagen könntest, was dort zu ändern ist

                    Code:
                    <?php
                    require_once("config.php");
                    
                    if ( !file_exists($config["signguestbook"]) )
                    {
                       die( "The file ".$config["signguestbookl"]." does not exists." );
                    }
                    
                    if ( !file_exists($config["guestbook"]) )
                    {
                       die( "The file ".$config["guestbook"]." does not exists." );
                    }
                    
                    if ( !file_exists($config["guestbooksignerror"]) )
                    {
                       die( "The file ".$config["guestbooksignerror"]." does not exists." );
                    }
                    
                    if ( !file_exists($config["guestbookthankyou"]) )
                    {
                       die( "The file ".$config["guestbookthanksyou"]." does not exists." );
                    }
                    
                    if ( !file_exists($config["guestbookpost"]) )
                    {
                       die( "The file ".$config["guestbookpost"]." does not exists." );
                    }
                    
                    $signlink = $_SERVER['PHP_SELF']."?action=sign";
                    
                    if ( (!isset( $_GET['action'] )) || (empty( $_GET['action'] )) 
                    || ($_GET['action'] === "veiw" ))
                    {
                       $posttoreplace = array(
                       "/{emailorurl}/",
                       "/{name}/",
                       "/{comments}/",
                       "/{date}/",
                       );
                       $fp = fopen( $config["guestbookpost"], "r" );
                       $posttpl = fread( $fp, filesize( $config["guestbook"] ) );
                       fclose( $fp );
                       if( !isset($_GET['num']) || !is_numeric($_GET['num']) )
                       {
                           $start = 0;
                           $end = $config["numpostsperpage"];
                       }
                       else
                       {
                          $start = $_GET['num'] * $config["numpostsperpage"];
                          $end = $start + $config["numpostsperpage"];
                       }
                       $title = "Guestbook";
                       if( $config["newestfirst"] === "yes" )
                       {
                          $order = " ORDER BY `ID` DESC ";
                       }
                       else
                       {
                          $order = " ORDER BY `ID` ASC ";
                       }
                       $query = mysql_query( "SELECT * FROM ".
                    $config["mysqlguestbooktable"]."".$order."LIMIT "
                    .$start.",".$end."" );
                       $isresults = FALSE;
                       $i = 0;
                       $posts = "";
                       while( $post = mysql_fetch_array( $query, MYSQL_ASSOC ) )
                       {
                          if( strstr ( $post["EMAILORURL"], "@" ) )
                          {
                              $emailorurl = "mailto:".stripslashes( $post["EMAILORURL"] );
                          }
                          else
                          {
                             if( preg_match( "/http:\/\//i", $post["EMAILORURL"] ) )
                             {
                                 $emailorurl = stripslashes( $post["EMAILORURL"] );
                             }
                             else
                             {
                                 $emailorurl = "http://".stripslashes( $post["EMAILORURL"] );
                             }
                          }
                          $comments = preg_replace($smiles, $rsmiles, stripslashes( $post["COMMENTS"] ));
                          $name = stripslashes( $post["NAME"] );
                          $postreplace = array(
                          $emailorurl,
                          $name,
                          $comments,
                          $post["DATE"]
                          );
                          $posts .= preg_replace($posttoreplace, $postreplace, $posttpl);
                          $i++;
                       }
                       $text .= "<br /><br />";
                       if( $i >= $config["numpostsperpage"] )
                       {
                          $isresults = TRUE;
                       }
                       if( $start >= $config["numpostsperpage"] )
                       {
                          $prev = ($start / $config["numpostsperpage"]) - 1;
                          $posts .= "<a href=\"".$_SERVER['PHP_SELF']."?num=".$prev."\">Prev.</a> ";
                       }
                       if( $isresults )
                       {
                          $next = ($start / $config["numpostsperpage"]) + 1;
                          $posts .= " <a href=\"".$_SERVER['PHP_SELF']."?num=".$next."\">Next</a>\n";
                       }
                       $fp = fopen( $config["guestbook"], "r" );
                       $tpl = fread( $fp, filesize( $config["guestbook"] ) );
                       fclose( $fp );
                       $toreplace = array(
                       "/{title}/",
                       "/{signlink}/",
                       "/{posts}/",
                       );
                       $replace = array(
                       $title,
                       $signlink,
                       $posts,
                       );
                       $tpl = preg_replace($toreplace, $replace, $tpl);
                       echo "".$tpl."";
                    }
                    elseif( $_GET['action'] === "sign" )
                    {
                       $fp = fopen( $config["signguestbook"], "r" );
                       $tpl = fread( $fp, filesize( $config["signguestbook"] ) );
                       fclose( $fp );
                       $toreplace = array(
                       "/{wheresend}/",
                       "/{title}/"
                       );
                       $replace = array(
                       $_SERVER['PHP_SELF']."?action=dosign",
                       "Sign our guestbook"
                       );
                       $tpl = preg_replace($toreplace, $replace, $tpl);
                       echo "".$tpl."";
                    }
                    elseif( $_GET['action'] === "dosign" )
                    {
                       if( (!isset($_POST['name'])) || (rtrim($_POST['name']) == "") )
                       {
                          $error = " Sorry you need to enter a name.";
                          $fp = fopen( $config["guestbooksignerror"], "r" );
                          $tpl = fread( $fp, filesize( $config["guestbooksignerror"] ) );
                          fclose( $fp );
                       }
                       elseif( (!isset($_POST['comments'])) || (rtrim($_POST['comments']) == "") )
                       {
                          $error = " Sorry you need to enter some comments.";
                          $fp = fopen( $config["guestbooksignerror"], "r" );
                          $tpl = fread( $fp, filesize( $config["guestbooksignerror"] ) );
                          fclose( $fp );
                       }
                       else
                       {
                          $checkforban = mysql_query( "SELECT * FROM `".$config["mysqlbantable"]."`
                    WHERE `ip` = '".make_query_safe
                    ( getenv('REMOTE_ADDR') )."'" ) or die 
                    ( "ERROR: Cannot query database" );
                          if ( mysql_num_rows ( $checkforban ) > 0 )
                          {
                             $error = " Sorry your IP has been baned
                     from posting in this guestbook.";
                             $fp = fopen( $config["guestbooksignerror"], "r" );
                             $tpl = fread( $fp, filesize( $config["guestbooksignerror"] ) );
                             fclose( $fp );
                          }
                          else
                          {
                             $word = array();
                             $wordreplacement = array();
                             $banedwords = mysql_query( "SELECT `
                    WORD`, `REPLACEMENT` 
                    FROM `".$config["mysqlbantable"]."` WHERE `WORD` != ''" ) or die ( "ERROR: 
                    
                    Cannot query database" );
                             while ( $banned = mysql_fetch_assoc( $banedwords ) )
                             {
                                $word[] = "/".preg_quote($banned['WORD'], '/')."/i";
                                $wordreplacement[] = $banned['
                    REPLACEMENT'];
                             }
                             $comments = nl2br(htmlspecialchars(preg_replac
                    e($word, $wordreplacement, $_POST['comments'])));
                             $emailorurl = htmlspecialchars(preg_replace
                    ($word, $wordreplacement, $_POST['emailorurl']));
                             $name = htmlspecialchars
                    (preg_replace($word, $wordreplacement, 
                    $_POST['name']));
                             $error = "";
                    
                             mysql_query( "INSERT 
                    INTO `".$config["
                    mysqlguestbooktable"]."` ( `ID` , `NAME` , `
                    EMAILORURL` , `IP` , `COMMENTS` , `DATE` ) 
                    VALUES ( '', '".make_query_safe( $name )."', '"
                    .make_query_safe( $emailorurl )."', '".
                    make_query_safe( getenv
                    
                    
                    ('REMOTE_ADDR') )."', '".make_query_safe
                    ( $comments )."', NOW( ) )" ) or die ( "ERROR: c
                    annot insert into database." );
                    
                             $fp = fopen( $config[
                    "guestbookthankyou"], "r" );
                    
                             $tpl = fread( $fp, filesize( $config
                    ["guestbookthankyou"] ) );
                             fclose( $fp );
                          }
                       }
                       $toreplace = array(
                       "/{backlink}/",
                       "/{message}/"
                       );
                       $replace = array(
                       $_SERVER['PHP_SELF']."?action=veiw",
                       $error
                       );
                       $tpl = preg_replace($toreplace,
                     $replace, $tpl);
                       echo "".$tpl."";
                    }
                    ?>
                    gruß
                    Zuletzt geändert von littlefu; 03.01.2006, 16:37.

                    Kommentar


                    • #11
                      Zur Breite deines Codes verkneife ich mir jeglichen Kommentar.
                      Dein Problem dürfte aber im Formular zu finden sein. Dort gibst du doch mit action= die Adresse an, wohin das Form soll.
                      Ändere diesen Wert mal auf action="book.php"
                      Damit sollte das Form an die Seite gesendet werden, welche auch deine fraglichen Dateien inkludiert.

                      Just try

                      tobi
                      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                      Kommentar


                      • #12
                        Original geschrieben von littlefu
                        [...]

                        header und footer haben aber viele links und grafiken

                        beispielgrafik.gif im header liegt im ordner
                        /grafiken

                        wird dann aber aufgerufen als
                        book/grafiken/beispielgrafik.gif

                        Oder mache ich etwas falsch?

                        Gruß [/B]
                        Hallo,

                        das ist auch kein Wunder, denn die index.php liegt in einem Unterverzeichnis (/book) und von da aus wird dann nach /grafiken/beispielgrafik.gif gesucht.
                        Also musst du in den entsprechenden Dateien, die nicht direkt im Wurzelverzeichnis liegen, die Verweise entsprechend anpassen.

                        Also entweder du schreibst etwas wie "../grafiken/beispiel.gif" statt "grafiken/beispiel.gif" (die 2 Punkte bewirken ein Springen in die nächsthöhere Verzeichnisebene) oder du nimmst relative Pfadangaben vom root aus, also "/grafiken/beispiel.gif" statt "grafiken/beispiel.gif" (wichtig ist der Schrägstrich am Anfang der Pfadangabe).

                        Und bitte bearbeite deinen eingefügten Code und füge Umbrüche ein. Der Text ist doppelt so breit wie mein Bildschirm.

                        Kommentar


                        • #13
                          ja, das ist mir klar, aber der header und der footer werden natürlich auch in seiten benutzt, die im root liegen - wo ../ also dann zu viel wäre...

                          diese problematik lässt sich nur mit absoluten pfaden lösen.
                          danke jedenfalls, werde aber versuchen die actions zu ändern, um keine absoluten pfade nutzen zu müssen.

                          viele Grüße

                          Kommentar


                          • #14
                            absolute pfade sind einfach. aber sind sie deshalb schlecht?!?

                            aber ich sag ja auch immer: warum einfach wenns auch kompliziert geht. nur das es in diesem fall nicht kompliziert zu gehen scheint..
                            2 meiner pages:

                            Kommentar


                            • #15
                              ist auch richtig... werde die pfade des headers und footers absolut ändern und dann header und footer in die index.php des books binden.

                              eh ich jede action ändern muss - wovon ich keine ahnung hab...

                              Danke für Euer aller Hilfe und bis bald!
                              fabian

                              Kommentar

                              Lädt...
                              X