Login-Script auf Index-Seite einbinden

Ken89

Mitglied
Hallo Zusammen,

ich möchte ein gerne das im Tutorial verwendete Login Script (http://www.tutorials.de/forum/php-tutorials/9684-php-mysql-login-system-mit-sessions.html) gerne auf meiner "index.php" einbinden.

Problem hierbei scheint mir ncoh zu sein, dass ich mit sogenannten "sections" arbeite die ich per include als content in meine index.php hineinlade.

Bsp.:

PHP:
<?php
if (!empty($_GET['section']))
		{
		include(basename($_GET['section']).'.php');
		} 
    
    if(empty($_GET['section']))
    {
    include('start.php');
    
		} 
    
    ?>

Habe schon einiges versucht, aber zum einbinden des Scriptes, allerdings erhalte ich die Fehlermeldung:
Code:
Warning: Cannot modify header information - headers already sent ....
wenn ich das Login Formular einfach per "include" einbinde --> was ja auch Logisch ist, da ich zuvor andere Informationen wie bsp. die Navigation auf meiner Seite ausgebe !!

Dennoch würde ich gerne das Login Formular dauerhaft auf der "index.php" einbinden, bei erfolgreichem login, soll eine neue (nur für Member) sichtbare content Page erscheinen.

Könnt ihr mit bitte weiterhelfen :) :)

schon mal vielen dank :)
 
Hi

du könntest die Funktionen ob_start() und ob_flush() verwenden.
PHP:
ob_start();
echo "some text";
session_start();
ob_flush();

Ein kleiner Tipp noch für dein Snipplet: Du kannst ruhig else benutzen :)
PHP:
if (!empty($_GET['section'])){
  include(basename($_GET['section']).'.php');
}     
else{
  include('start.php');  
} 
?>
 
Dir ist hoffentlich klar, dass man so sehr leicht schadhaften Code einbinden kann?

Du solltest beim Include eine Whitelist verwenden. Dh. per switch das $_GET['section'] mit vordefinierten Strings/Zahlen vergleichen und dann die entsprechende Datei einbinden. Default wird dann aufgerufen, falls $_GET abweicht.

PHP:
switch($_GET['section']) {
    case 'start':
        include "content/index.php";
        break;
    case 'blub':
        include "content/andereDatei.php";
        break;
    default:
        include "content/wichtigeseite.php";
        break;
}
 
vielen Dank für den Hinweis und die Tipps, allerdings hat sich dadurch meine Frage nicht beantwortet ..

... könntet ihr mir bitte in beispiel oder ein Link nennen wo ich die Thematik nachlesen kann :)

wäre euch sehr dankbar :)
 
Dir ist hoffentlich klar, dass man so sehr leicht schadhaften Code einbinden kann?

Du solltest beim Include eine Whitelist verwenden. Dh. per switch das $_GET['section'] mit vordefinierten Strings/Zahlen vergleichen und dann die entsprechende Datei einbinden. Default wird dann aufgerufen, falls $_GET abweicht.

PHP:
switch($_GET['section']) {
    case 'start':
        include "content/index.php";
        break;
    case 'blub':
        include "content/andereDatei.php";
        break;
    default:
        include "content/wichtigeseite.php";
        break;
}

Könnte man nicht einfach:

PHP:
require($FileForInclude);

benutzen?
 
Könnte man nicht einfach:

PHP:
require($FileForInclude);

benutzen?

Wenn du den Post aufmerksam gelesen hättest, wäre dir aufgefallen, dass es um die SICHERHEIT geht, nicht darum, das Script anzuhalten wenn eine Datei nicht existiert. Das ist nämlich der einzige Unterschied zwischen include und require. Ohne eine Sicherheitsabfrage, wovon uns CookieBuster ein Beispiel gegeben hat, könnte man ziemlich einfach deine Website manipulieren.
 

Neue Beiträge

Zurück