2016-12-21 31 views
-3

私は現時点ではPHPとTwitterのブートストラップでサイトに取り組んでいます。TwitterのブートストラップとPHPのsession_start()

最初にsession_start()を入力すると、ブートストラップには<!DOCTYPE html>が最初に必要なため、レイアウトが壊れてしまいます。

私が<!DOCTYPE html>を入れたら、私はセッションを使用できません。

のindex.php - セッションがここで失敗:

<!DOCTYPE html> 
<?php 
    ini_set('display_errors', 1); 
    ini_set('display_startup_errors', 1); 
    error_reporting(E_ALL); 

    require_once('../php/init.php'); 

    if ($_SERVER['REQUEST_METHOD'] === 'POST') { 

    $username = trim($_POST['username']); 
    $password = trim($_POST['password']); 
    $errors = []; 

    if (empty($_POST['username'])) array_push($errors, 'A username is required'); 
    if (empty($_POST['password'])) array_push($errors, 'A password is required'); 

    if (empty($errors)) { 
     echo 'No Errors'; 

     if (login($username, $password)) { 
     echo 'Logged In'; 
     } 
    } 

    } 

?> 

のindex.php - レイアウトはここに失敗:

<?php 

    ini_set('display_errors', 1); 
    ini_set('display_startup_errors', 1); 
    error_reporting(E_ALL); 

    require_once('../php/init.php'); 

    if ($_SERVER['REQUEST_METHOD'] === 'POST') { 

    $username = trim($_POST['username']); 
    $password = trim($_POST['password']); 
    $errors = []; 

    if (empty($_POST['username'])) array_push($errors, 'A username is required'); 
    if (empty($_POST['password'])) array_push($errors, 'A password is required'); 

    if (empty($errors)) { 
     echo 'No Errors'; 

     if (login($username, $password)) { 
     echo 'Logged In'; 
     } 
    } 

    } 

?> 

<!DOCTYPE html> 

init.php:

<?php 

if (session_id() == "" || !isset($_SESSION)) { 
    session_start(); 
} 

require 'database/connect.php'; 
require 'functions.php'; 

すべてのヘルプは高く評価され

多くのありがとう

ヤコブ

+0

*は、「<!DOCTYPE HTML>を、私は()のsession_startを置く場合はブートストラップが最初に必要とするので、まずレイアウトが台無し。」* - あなたがしようとした実際のコードをポストする必要があります。これは本当に推測です。 –

+0

* "ブートストラップでは<!DOCTYPE html>が最初に必要です" * - これは問題ではありません。これとファイルの拡張子をどのように使用しているかは不明です。あなたはおそらくヘッダーの前に出力しているでしょう。 –

+0

*私が** <!DOCTYPE html> **を書いた場合、私はセッションを使用できません。 * なぜですか? – Mitch

答えて

0

私はあなたが問題を正しく理解するためにあなたのコードのサンプルを提供した場合、それが良いと思います。 DOCTYPEの前にsession_startを使用しても問題はありませんが、私は自分の理解に基づいて解決策を作成しようとします。

このように、前後にスペースを入れずに同じ行に置くことができます。あなたは

header() { 
    include 'header.php'; 
} 

bootstrap() { 
    session_start(); 
    header(); 
    body(); 
    footer(); 
} 
0
<?php 

    code... 

?> 
<!DOCTYPE html> 

ヘッダー部分を担っている機能を持っている場合

<?php session_start(); ?><!DOCTYPE html> 

それが優れている、それは空白のようなdoesntのが判明。上記はうまくいった。以下は仕事をしなかった。

<?php 

    code... 

?> 

<!DOCTYPE html> 
関連する問題