1

div と h2 内で php ステートメントをエコーし​​ます。このステートメントは、データベースからユーザー名を呼び出します。ただし、呼ばれる名前は、ウェルカムの下に 1 行強制されます。2 つの単語を同じ行に配置するにはどうすればよいですか?

<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は小さすぎたり、小さすぎたりしません。

4

6 に答える 6

1
<h2>Welcome <?php
if (isset($_SESSION['username'])) {
   echo $_SESSION['username'];
} else {
   echo 'You must be logged in';
}
?></h2>
于 2012-05-05T00:32:20.187 に答える
0

ヘッダーはブロック要素なので、一行になります。

属性 style="display: inline;" を追加して、表示をインラインに変更する必要があります。またはcssファイルを編集します。

于 2012-05-05T00:30:57.740 に答える
0

</h2>「ようこそ」の後の締めと<h2>エコーの開始を削除できます。

于 2012-05-05T00:31:38.167 に答える
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>
于 2012-05-05T00:29:53.603 に答える
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 コードを分離することで、コードの操作と潜在的なエラーの発見がより簡単になります。ページが非常に単純な場合、それは重要ではないように思えますが、より複雑なプロジェクトでは、コードを混在させると非常に読みやすくなり、サポートが難しくなる可能性があります:-(

于 2012-05-05T00:37:34.287 に答える
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 ?>
于 2012-05-05T00:46:18.527 に答える