Ankündigung

Einklappen
Keine Ankündigung bisher.

Altes Script auf neuem Server - session in include Datei

Einklappen

Neue Werbung 2019

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

  • Altes Script auf neuem Server - session in include Datei

    Hi

    Mein Kontaktformular funktioniert seit Umzug auf einen neuen Hoster nicht mehr.

    Das Formular befindet sich als "include - Datei" innerhalb einer html - Datei mit header und footer etc...

    Sieht so aus:

    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      
    <meta name="description" content="bla bla...">
    <meta name="KeyWords" content="bla bla ..">
    <meta http-equiv="expires" content="0" />
    <meta http-equiv="content-language" content="de" />
    <meta http-equiv="cache-control" content="no-cache" />
    <meta name="author" content="xxx" />
    <title>Kontakt</title>
      
    <link rel="stylesheet" type="text/css" href="formate.css"></link>
    <link rel="shortcut icon" href="../pics/favicon.ico" type="image/x-icon"></link>
    </head>
    <body>
    <div align="center">
    <?php
    include "includes/header.inc";
    include "includes/navlineshort.inc";
    
    
    
    include "includes/kontaktform.inc";
    include "includes/longimpressum.inc";
    
    
    $chCounter_visible = 0;
    $chCounter_page_title = "KONTAKT";
    include "cntr/counter.php";
    
    ?>
    </div>
    </body>
    </html>
    In der kontaktform.inc befindet sich das Formular, das mit Session - Variablen arbeitet und desshalb beginnt es mit
    <?php
    session_start();

    Wenn ich aber die kontakt.html aufrufe, habe ich einen Error nach dem navlineshort.inc

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /www/xxdocs/xxxx/kontakt.html:7) in /www/xxdocs/xxxx/includes/kontaktform.inc on line 2
    Diese Fehlermeldung hatte ich vorher nicht.

    Warum ?

    mfg
    phpels

  • #2
    die headers already sent-Meldung kommt meist dann, falls schon Ausgaben zum Clienten gemacht worden sind. Vielleicht ist da ne Leerzeile drin oder n echo...

    Kommentar


    • #3
      Ich würde einfach darauf tippen das
      Code:
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        
      <meta name="description" content="bla bla...">
      <meta name="KeyWords" content="bla bla ..">
      <meta http-equiv="expires" content="0" />
      <meta http-equiv="content-language" content="de" />
      <meta http-equiv="cache-control" content="no-cache" />
      <meta name="author" content="xxx" />
      <title>Kontakt</title>
        
      <link rel="stylesheet" type="text/css" href="formate.css"></link>
      <link rel="shortcut icon" href="../pics/favicon.ico" type="image/x-icon"></link>
      </head>
      <body>
      <div align="center">
      vor Sessionbeginn gesendet wird, was dir mit "headers already sent" mitgeteilt wird.
      Vor session_start(); darf meines Wissens nicht mal ein Leerzeichen stehen, da dies schon den Header füllen würde.

      Infos dazu findest du hoffentlich hier PHP: session_start - Manual

      Kommentar


      • #4
        Zitat von TomK Beitrag anzeigen
        Ich würde einfach darauf tippen das
        Code:
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
          
        <meta name="description" content="bla bla...">
        <meta name="KeyWords" content="bla bla ..">
        <meta http-equiv="expires" content="0" />
        <meta http-equiv="content-language" content="de" />
        <meta http-equiv="cache-control" content="no-cache" />
        <meta name="author" content="xxx" />
        <title>Kontakt</title>
          
        <link rel="stylesheet" type="text/css" href="formate.css"></link>
        <link rel="shortcut icon" href="../pics/favicon.ico" type="image/x-icon"></link>
        </head>
        <body>
        <div align="center">
        vor Sessionbeginn gesendet wird, was dir mit "headers already sent" mitgeteilt wird.
        Vor session_start(); darf meines Wissens nicht mal ein Leerzeichen stehen, da dies schon den Header füllen würde.
        Das würde aber bedeuten, dass ich session_start() NIE in einer include - Datei verwenden kann. Dann stellt sich aber die Frage, warum GENAU DIESE Datei OHNE VERÄNDERUNG am vorigen Server funktioniert hat ??

        lg
        phpels

        Kommentar


        • #5
          Zitat von phpels Beitrag anzeigen
          Das würde aber bedeuten, dass ich session_start() NIE in einer include - Datei verwenden kann.
          Nein, das ist nicht gesagt. In deinem Fall wird HMTL und php abwechselnd ausgegeben und ausgeführt. Muß ja nicht überall so sein.

          Zitat von phpels Beitrag anzeigen
          Dann stellt sich aber die Frage, warum GENAU DIESE Datei OHNE VERÄNDERUNG am vorigen Server funktioniert hat ??
          Gute Frage. Läßt sich wohl von hier aus bestenfalls mutmaßen.
          Hat es denn jemals nachweislich korrekt funktioniert? Oder nur zufällig? Evtl war am Server irgendwas anders, gab's vllt ne spezielle htaccess drauf?

          Kommentar


          • #6
            War auf dem alten Server eventuell session.auto_start aktiviert?
            Programming PHP

            Kommentar


            • #7
              War vielleicht auf dem letzten Server einfach display_errors auf Off und du hast die Fehlermeldungen deshalb nie gesehen ?
              [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
              | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

              Kommentar


              • #8
                Zitat von [-UFO-]Melkor Beitrag anzeigen
                War auf dem alten Server eventuell session.auto_start aktiviert?

                Hi Keine Ahnung
                lg
                phpels

                Kommentar


                • #9
                  Zitat von robo47 Beitrag anzeigen
                  War vielleicht auf dem letzten Server einfach display_errors auf Off und du hast die Fehlermeldungen deshalb nie gesehen ?
                  Sicher nicht, denn beim Schreiben des scripts hatte ich da und dort ettliche "header already sent"

                  lg
                  phpels

                  Anyway
                  Die Frage, die sich mir stellt ist, wie ich ein Formular mit meinem Header UND meinem Footer bastle, dass auch funktioniert.

                  lg
                  phpels

                  Kommentar


                  • #10
                    Headeroperationen vor der Ausgabe machen. Das ist keine Kunst und auch irrelevant, ob Du Header, Footer, eine Gesamtseit oder tausend Templates ausgibst.
                    [COLOR="#F5F5FF"]--[/COLOR]
                    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                    [COLOR="#F5F5FF"]
                    --[/COLOR]

                    Kommentar


                    • #11
                      Zitat von nikosch Beitrag anzeigen
                      Headeroperationen vor der Ausgabe machen. Das ist keine Kunst und auch irrelevant, ob Du Header, Footer, eine Gesamtseit oder tausend Templates ausgibst.
                      Würde also in meinem Fall bedeuten, das session_start in die html Datei zu schreiben ... ?

                      lg
                      phpels

                      Kommentar


                      • #12
                        nein, session_start() einfach vor jeder Ausgabe an den Browser schreiben und natürlich in eine php datei, am besten einfach in die erste Zeile

                        Kommentar


                        • #13
                          Bzw. in die zweite!

                          PHP-Code:
                          <?php
                          [COLOR="#F5F5FF"]--[/COLOR]
                          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                          [COLOR="#F5F5FF"]
                          --[/COLOR]

                          Kommentar


                          • #14
                            joa

                            Kommentar


                            • #15
                              Zitat von nikosch Beitrag anzeigen
                              Bzw. in die zweite!

                              PHP-Code:
                              <?php
                              In der kontaktform.inc steht aber das session_start GENAU DORT.

                              Da ich aber die include - Datei in eine bestehende html - Struktur einbinde funktioniert das offenbar nicht.

                              Wenn ich jetzt die Struktur so beibehalten möchte (Styling) und ich die Session - Anweisung VOR JEDE Ausgabe stellen muss, KANN ich sie ja nur VOR die Ausgaben in der html Datei schreiben, also in diesem Falle:

                              Code:
                              <?php 
                               session_start();
                              ?>
                              <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                                  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                              <html xmlns="http://www.w3.org/1999/xhtml">
                              <head>
                                
                              <meta name="description" content="bla bla...">
                              <meta name="KeyWords" content="bla bla ..">
                              <meta http-equiv="expires" content="0" />
                              <meta http-equiv="content-language" content="de" />
                              <meta http-equiv="cache-control" content="no-cache" />
                              <meta name="author" content="xxx" />
                              <title>Kontakt</title>
                                
                              <link rel="stylesheet" type="text/css" href="formate.css"></link>
                              <link rel="shortcut icon" href="../pics/favicon.ico" type="image/x-icon"></link>
                              </head>
                              <body>
                              <div align="center">
                              <?php
                              include "includes/header.inc";
                              include "includes/navlineshort.inc";
                              
                              
                              
                              include "includes/kontaktform.inc";
                              include "includes/longimpressum.inc";
                              
                              
                              $chCounter_visible = 0;
                              $chCounter_page_title = "KONTAKT";
                              include "cntr/counter.php";
                              
                              ?>
                              </div>
                              </body>
                              </html>
                              ... und das "session_start" aus der kontaktform.inc löschen.

                              ?!?

                              lg
                              phpels

                              Kommentar

                              Lädt...
                              X