2012-05-05 4 views
1

Im эхо-запрос php в div и h2. Оператор вызывает имя пользователя из базы данных. Тем не менее, имя, которое вызывается, вынуждает одну строку под приветствием. Как сохранить два слова в одной строке?Echoing php in h2

<div id="teaser"> 
    <div class="wrap"> 
     <div id="image"></div> 
     <div class="box"> 
      <h2>Welcome</h2> 
    <?php 
    session_start(); 
    if (isset($_SESSION['username'])) 
echo "<h2>".$_SESSION['username']."!</h2>"; 
    else 
die("You must be logged in!"); 
    ?> 

Любые предложения, чтобы они оставались на одной линии? Div не слишком маленький или любой другой.

+0

Вы a повторное добавление двух тегов h2, поэтому есть два решения: отображать сообщение на одном и том же теге или исправлять его с помощью css, отображающего встроенную строку. –

ответ

0

Используйте CSS, чтобы сделать ваш <h2> строчный элемент (вместо блока):

#teaser h2 { 
    display: inline; 
} 

Или измените PHP, чтобы повторить текст в <h2>:

<div id="teaser"> 
    <div class="wrap"> 
     <div id="image"></div> 
     <div class="box"> 
      <h2>Welcome 
    <?php 
    session_start(); 
    if (isset($_SESSION['username'])) 
echo $_SESSION['username']."!"; 
    else 
die("You must be logged in!"); 
    ?></h2> 
0

заголовки блочные элементы, поэтому они возьмут линию.

Вы должны изменить свой дисплей на встроенный, добавив атрибут style = "display: inline;" или отредактируйте файл css.

0

Вы можете удалить закрытие </h2> после «приветствия» и открытия <h2> в эхо.

1
<h2>Welcome <?php 
if (isset($_SESSION['username'])) { 
    echo $_SESSION['username']; 
} else { 
    echo 'You must be logged in'; 
} 
?></h2> 
0

Я настоятельно советую вам реорганизовать свой код таким образом:

<?php 
    $user_name = ''; 
    session_start(); 
    if (isset($_SESSION['username'])){ 
     $user_name = $_SESSION['username']; 
    }  
    else{ 
     $user_name = "- You must be logged in!"; 
    }  
?> 


<div id="teaser"> 
    <div class="wrap"> 
     <div id="image"></div> 
     <div class="box"> 
      <h2>Welcome <?php echo $user_name; ?></h2> 
      </div> 

Разделительный PHP и HTML код делает его более легким для работы с кодом и найти возможные ошибки. Когда страница такая простая, она кажется неважной, но в более сложных проектах смешение кода может сделать ее очень удобочитаемой и трудноподдерживающей :-(

0

Лично я не люблю встраивать условные выражения PHP в отдельные строки html ., а я предпочитаю, чтобы локализовать условные переменные в верхней части моего HTML-файлов в одиночный Варс Затем, когда я добавляю их в HTML, это приводит к более удобному для чтения коды:.

<?php 
session_start(); 

// Ternary op, if username is available, use it, otherwise default to null 
$userMessage = 'Welcome' . ((isset($_SESSION['username'])) ? ' ' . $_SESSION['username'] : null); 
?> 

<div id="teaser"> 
    <div class="wrap"> 
     <div id="image"></div> 
     <div class="box"> 
      <h2><?php echo $userMessage ?></h2> 

Или, если вы хотите для получения немного сложнее:

<?php session_start() ?> 

<div id="teaser"> 
    <div class="wrap"> 
     <div id="image"></div> 
     <div class="box"> 
      <?php if (isset($_SESSION['username'])): ?> 
      <h2>Welcome <?php echo $_SESSION['username'] ?></h2> 
      <?php else: ?> 
      <h2>Welcome stranger, click <a href="lilo.php">here</a> to login</h2> 
      <?php endif ?> 
+0

Ответы на любые вопросы помогут? Если да, пожалуйста, согласитесь соответственно. –