kostenloser Webspace werbefrei: lima-city


nach "include" funktionieren headerfunktionen nicht mehr

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    cdot

    Kostenloser Webspace von cdot

    cdot hat kostenlosen Webspace.

    Salvete omnes!
    Ich habe mir unlängst eine Registrierungs- bzw. eine Loginseite mittels diversen Tutorials gebastelt.
    Diese funktionieren jedes für sich einwandfrei.

    Jetzt will ich diese beiden Seiten allerdings in eine fremde includen. Sobald ich das mache bekomme ich allerdings Fehlermeldungen was die "headerfunktionen" (falls die überhaupt so heißen...) betrifft.

    Bsp:
    Warning: Cannot modify header information - headers already sent by (output started at ...\include_login.php:56) in ...\login.php on line 37

    die betreffenden Zeilen:
    55: <div id="content">
    56<?php include("login.php");?>
    57</div>

    und:
    34 if (isset($_SESSION['PrevUrl']) && false) {
    35 $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
    36 }
    37 header("Location: " . $MM_redirectLoginSuccess );
    38 }
    39 else {
    40 header("Location: ". $MM_redirectLoginFailed );
    41 }


    woran scheitert es? vertragen sich diese funktionen nicht mit dem include-Befehl?

    mfg und Dank
    Cdot
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Vor dem Headerzeugs darf, ähnlich wie bei Session_start, keinerlei Ausgabe kommen. Und das Include scheint eine Ausgabe zu sein. Versuche mal, nach dem Header zu includieren.
  4. Autor dieses Themas

    cdot

    Kostenloser Webspace von cdot

    cdot hat kostenlosen Webspace.

    in der .php mit den "headerfunktionen" kommt kein einziges include vor, lediglich in ein einer seperaten Seite, in welche ich die gesamte Login-Datei (login.php) includiere... wie soll ich jetzt vor bzw nach den headern includen?
    oder verstehe ich deine Antwort irgendwie falsch?
  5. Du includest beide Dateien in eine Datei. Dabei sollte zuerst der Headerschmarrn included werden und danach das Login-Zeugs.
  6. Autor dieses Themas

    cdot

    Kostenloser Webspace von cdot

    cdot hat kostenlosen Webspace.

    Ich include nicht 2 Datein, sondern lediglich eine und zwar diese:
    <?php require_once('Connections/testung.php'); ?>
    <?php
    // *** Validate request to login to this site.
    if (!isset($_SESSION)) {
      
    }
    
    $loginFormAction = $_SERVER['PHP_SELF'];
    if (isset($_GET['accesscheck'])) {
      $_SESSION['PrevUrl'] = $_GET['accesscheck'];
    }
    
    if (isset($_POST['nick'])) {
      $loginUsername=$_POST['nick'];
      $password=$_POST['password'];
      $MM_fldUserAuthorization = "";
      $MM_redirectLoginSuccess = "drin.html";
      $MM_redirectLoginFailed = "anmelden.php";
      $MM_redirecttoReferrer = false;
      mysql_select_db($database_testung, $testung);
      
      $LoginRS__query=sprintf("SELECT nick, password FROM tbl_register WHERE nick='%s' AND password='%s'",
        get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password)); 
       
      $LoginRS = mysql_query($LoginRS__query, $testung) or die(mysql_error());
      $loginFoundUser = mysql_num_rows($LoginRS);
      if ($loginFoundUser) {
         $loginStrGroup = "";
        
        //declare two session variables and assign them
        $_SESSION['MM_Username'] = $loginUsername;
        $_SESSION['MM_UserGroup'] = $loginStrGroup;	      
    
        if (isset($_SESSION['PrevUrl']) && false) {
          $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];	
        }
        header("Location: " . $MM_redirectLoginSuccess );
      }
      else {
        header("Location: ". $MM_redirectLoginFailed );
      }
    }
    ?>
    <!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 http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Unbenanntes Dokument</title>
    </head>
    
    <body>
    <form id="form1" name="form1" method="POST" action="<?php echo $loginFormAction; ?>">
      <p>einloggen</p>
      <table width="730" border="0">
        <tr>
          <td>Benutzername</td>
          <td><label>
            <input name="nick" type="text" id="nick" />
          </label></td>
        </tr>
        <tr>
          <td>Passwort</td>
          <td><label>
            <input name="password" type="password" id="password" />
          </label></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><label>
            <input type="submit" name="Submit" value="login" />
          </label></td>
        </tr>
      </table>
      <p>&nbsp;  </p>
    </form>
    <p>&nbsp; </p>
    </body>
    </html>
  7. cdot schrieb:
    woran scheitert es? vertragen sich diese funktionen nicht mit dem include-Befehl?



    So ist es eventuell besser zu sehen:


    55: <div id="content"> <==1. Ausgabe an den Browser Damit wird auch der Header an den Browser gesendet
    56<?php include("login.php");?>
    57</div>

    und login.php:

    37 header("Location: " . $MM_redirectLoginSuccess ); <== Header, der bereits vor dem include gesendet wurde, soll modifiziert werden. Darum Fehlermeldung.

    FF
  8. Autor dieses Themas

    cdot

    Kostenloser Webspace von cdot

    cdot hat kostenlosen Webspace.

    somit ist meine frage "woran scheitert es" zu vollster zufriedenheit beantwortet :thumb:

    um eine neue zu stellen:
    wie bekomme ich jetzt hin, was karpfen mir schon versuchte zu verdeutlichen?
    Also wie schaffe ich es dass das headerzeugs nicht modifiziert wird, nachdem es included wird, sondern umgekehrt...?

    um mich ein bisschen aus der Affäre zu reden: mit php habe ich bis jetzt noch nicht viel unternommen, aber erste bücher sind bestellt :wink:
  9. Schreib dazu am besten die Ausgabe in eine Variable und include die Seite ganz am Anfang... Damit müsste das mit den headern dann klappen...

    MfG

    Edit: Die Variable kannst du dann da ausgeben wo sie benötigt wird...

    Beitrag zuletzt geändert: 12.1.2011 14:16:34 von trik
  10. hallöchen

    eine andere Möglichkeit die header-Problematik zu begegnen ist Output-Control.

    lg
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!