PHP und HTML

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP und HTML

    Hallo,

    ich habe ein Problem, in einer php-Datei. In einer if/else Funktion wird in der "IF" kein HTML dargestellt, obwohl ich es meiner Meinung nach richtig eingebaut habe.

    Hier ist mal der "Werdegang" und das vorläufige Ergebnis, das allerdings nicht das gewünschte ist...

    Es geht um einLoginsystem, das nach dem Login einen Logoutlink ausgibt, der wiederum in einer Tabelle stehen soll, wie das Loginformular.

    Hier ist der Code für die Login/Logout-Funktionen:

    PHP-Code:
    <?php 
    //Benötigte Dateien und Variablen von phpBB 
    define('IN_PHPBB'true); 
    $phpbb_root_path '../forums/'
    include(
    $phpbb_root_path 'extension.inc'); 
    include(
    $phpbb_root_path 'common.'.$phpEx); 

    //Session auslesen und Benutzer-Informationen laden 
    $userdata session_pagestart($user_ipPAGE_INDEX); 
    init_userprefs($userdata); 

    //Session auslesen und Benutzer-Informationen laden 
    if ( $userdata['session_logged_in'] ) 

    $username $userdata['username']; 
    $link append_sid('../forums/login.'.$phpEx.'?logout=true&sid='.$userdata['session_id']); 
    echo 
    'Hallo '.$username.', <a href="'.$link.'">Logout</a>'

    else 

    echo 
    '<b>Hallo</b> Gast, <a href="'append_sid($phpbb_root_path "login.".$phpEx) .'">Login</a>'


    ?>
    Das Ergebnis der Ausgabe:

    Hallo Gast, Login
    oder:

    Hallo Onkel Müller, Logout
    Ich habe es so angepasst, dass anstelle des Login-Links, der zum Forenlogin verweist, eine Login-Tabelle angezeigt wird.

    PHP-Code:
    <?php 
    //Benötigte Dateien und Variablen von phpBB 
    define('IN_PHPBB'true); 
    $phpbb_root_path '../forums/'
    include(
    $phpbb_root_path 'extension.inc'); 
    include(
    $phpbb_root_path 'common.'.$phpEx); 

    //Session auslesen und Benutzer-Informationen laden 
    $userdata session_pagestart($user_ipPAGE_INDEX); 
    init_userprefs($userdata); 

    //Session auslesen und Benutzer-Informationen laden 
    if ( $userdata['session_logged_in'] ) 

    $username $userdata['username']; 
    $link append_sid('../forums/login.'.$phpEx.'?logout=true&sid='.$userdata['session_id']);
    echo 
    'Hallo '.$username.', <a href="'.$link.'">Logout</a>'

    else 
    {
    ?> 
    <div align="left">
      <table........ 
    .........
       </tr>
      </table>
    </div>
    <?


    ?>
    Nun ist die Tabelle nur zu sehen wenn man ausgeloggt ist (so wie es sein soll).

    Ich hätte gerne, wenn man eingeloggt ist, NICHT nur die normale Textanzeige:

    Hallo Onkel Müller, Logout
    sondern diese Anzeige ebenfalls in einer Tabellenzelle mit der selben Hintergrundfarbe.

    Das habe ich nicht hinbekommen.

    Wie muss das:

    PHP-Code:

    $username $userdata['username']; 
    $link append_sid('../forums/login.'.$phpEx.'?logout=true&sid='.$userdata['session_id']);
    echo 
    'Hallo '.$username.', <a href="'.$link.'">Logout</a>'

    mit dieser Tabelle:

    PHP-Code:
    <div align="left">
      <
    table style="border-collapse: collapse" bordercolor="#111111" width="250" bgcolor="#C0C0C0">
        <
    tr>
          <
    td width="240">&nbsp;</td>
          <
    td>PHP-CODE</td>
        </
    tr>
      </
    table>
    </
    div
    "verknispelt" werden?

    Wenn ich versuche den PHP-Code in die Tabelle einzubauen, bekomme ich jedesmal Fehlermeldungen. Wenn ich das HTML ausklammere, auch.

    Wie macht man das am besten?

    Ich habs jetzt nach 'nem Tip so gemacht:


    PHP-Code:
    <?php 
    //Benötigte Dateien und Variablen von phpBB 
    define('IN_PHPBB'true); 
    $phpbb_root_path '../forums/'
    include(
    $phpbb_root_path 'extension.inc'); 
    include(
    $phpbb_root_path 'common.'.$phpEx); 

    //Session auslesen und Benutzer-Informationen laden 
    $userdata session_pagestart($user_ipPAGE_INDEX); 
    init_userprefs($userdata); 

    //Session auslesen und Benutzer-Informationen laden 
    if ( $userdata['session_logged_in'] ) 

    $username $userdata['username']; 
    $link append_sid('../forums/login.'.$phpEx.'?logout=true&sid='.$userdata['session_id']); 
    ?> 

    <div align="left"> 
      <table style="border-collapse: collapse" bordercolor="#111111" width="250" bgcolor="#C0C0C0">
        <tr> 
          <td width="240">&nbsp;</td> 
          <td> 
                <?php echo 'Hallo '.$username.', <a href="'.$link.'">Logout</a>'?> 
          </td> 
        </tr> 
      </table> 
    </div> 

    <?php 

    else 
    {
    ?> 
    <div align="left"> 
      <table....
    ......
      </table> 
    </div> 
    <? 


    ?>
    aber es wird immer noch nur der text angezeigt (wenn man eingelogt ist).

    Wie ist das zu ändern? Hier die Datei:

    entfernt

    Login: entfernt

    Viele Grüße,
    Tommy
    Zuletzt geändert von roteisen; 15.03.2007, 21:24.

  • #2
    Die zwei Codeabschnitte musst du bitte nochmal neu posten, falls sie wichtig waren. Diesmal bitte regelkonform.
    Den vorletzten Codeabschnitt habe ich bereits als beispiel umformatiert.

    Danke für dein Verständnis.

    Kommentar


    • #3
      ich will auch mal meckern
      Bitte
      • PHP- Statt Code-Tags benutzen
      • Den Code umbrechen, damit man nicht scrollen muss
      • nur den notwendigen Code posten, nicht so eine Menge
      • die Regeln lesen

      danke

      Edit: Zum Profi-Meckern viel zu langsam eingesehen
      ich glaube

      Kommentar


      • #4
        Edit: Zum Profi-Meckern viel zu langsam eingesehen

        Kommentar


        • #5
          So. Hoffe ich habe es den Regeln entsprechend angepasst.

          Vielleicht kann mir ja hier jemand einen Tip geben...


          Grüße,
          Tommy

          Kommentar


          • #6
            bin mir nicht sicher, ob es das ist, was du willst. kenne schließlich deine datei nicht.

            aber so in der art:

            PHP-Code:

            $username $userdata['username']; 
            $link append_sid('../forums/login.'.$phpEx.'?logout=true&sid='.$userdata['session_id']);
            echo 
            'Hallo '.$username.', <a href="'.$link.'">Logout</a>'

            wird zu

            PHP-Code:

            $username $userdata['username']; 
            $link append_sid('../forums/login.'.$phpEx.'?logout=true&sid='.$userdata['session_id']);
            echo 
            '<div align="left">
              <table style="border-collapse: collapse" bordercolor="#111111" width="250" bgcolor="#C0C0C0">
                <tr>
                  <td width="240">&nbsp;</td>
                  <td>Hallo '
            .$username.', <a href="'.$link.'">Logout</a></td>
                </tr>
              </table>
            </div>'


            schöner wäre das ganze, wenn du dein tabellenlayout nicht noch erweiterst, sondern eher zurückschraubst. aber das ist ein anderes thema, was oft genug durchgekaut wurde.

            Kommentar


            • #7
              Danke, nun muss ich die Tabelle nur noch formatieren.

              Die Datei steht im ersten Posting, -der letzte Code-Abschnitt ist die Datei.

              Klick mal unten im ersten Posting auf den Link, dann siehst du das Loginformular, das NACH "else" eingebaut ist, und erscheint wenn der User nicht eingeloggt ist.

              Wenn der User eingeloggt ist, erscheint bisher mit dieser Datei:

              Hallo User, Logout
              Diese Ausgabe soll kommen, aber in einer Tabelle, im selben "Design".

              Das versuche ich zu erreichen.



              Zuletzt geändert von roteisen; 15.03.2007, 20:33.

              Kommentar


              • #8
                zeig mir zeile 28 +/- 10 zeilen.

                Kommentar


                • #9
                  Nein, brauch ich nicht, der Fehler war durch eine doppelte Klammer ausgelöst. Schon beseitigt.

                  Es funzt. Danke schön, -ich muss nun nur noch die Tabelle passend formatieren.

                  Nochmals, vielen Dank.

                  Kommentar


                  • #10
                    dann wars aber dein fehler und nicht meiner!

                    Kommentar


                    • #11
                      Ja, ich hatte 2 Klammern gesetzt.

                      Aber:

                      Es funzt DOCH NUR theoretisch.

                      Denn, es wird keine Tabelle angezeigt, obwohl sie in der Datei steht.

                      Woran kann das denn liegen?

                      Hier nochmal die Datei, mit deiner Änderung, das Loginformular gekürzt:
                      PHP-Code:
                      <?php 
                      //Benötigte Dateien und Variablen von phpBB 
                      define('IN_PHPBB'true); 
                      $phpbb_root_path '../forums/'
                      include(
                      $phpbb_root_path 'extension.inc'); 
                      include(
                      $phpbb_root_path 'common.'.$phpEx); 

                      //Session auslesen und Benutzer-Informationen laden 
                      $userdata session_pagestart($user_ipPAGE_INDEX); 
                      init_userprefs($userdata); 

                      //Session auslesen und Benutzer-Informationen laden 
                      if ( $userdata['session_logged_in'] ) 

                       
                      $username $userdata['username']; 
                      $link append_sid('../forums/login.'.$phpEx.'?logout=true&sid='.$userdata['session_id']);
                      echo 
                      '<div align="left">
                         <table style="border-collapse: collapse" width="250" bgcolor="#C0C0C0">
                          <tr>
                            <td width="240" font face="Verdana" style="font-weight:700" color="#FFFFFF" size="1" >
                            <font color="#FFFFFF">Hallo '
                      .$username.', </font> 
                            <a href="'
                      .$link.'" style="text-decoration: none"><font color="#FFFFFF">Logout</font></a></td>
                               </tr>
                        </table>
                      </div>'

                      }
                       
                      else 

                      {
                      ?> 
                      <div align="left"> 
                        <table... 
                        </table> 
                      </div> 
                      <? 


                      ?>
                      Zuletzt geändert von roteisen; 16.03.2007, 01:02.

                      Kommentar


                      • #12
                        WO ist Zeile 28???

                        Kommentar


                        • #13
                          Die Zeile 28 ist das:

                          PHP-Code:
                          else 
                          Es kommt keine Fehlermeldung.

                          Das Problem ist, dass nach der Änderung das selbe Ergebnis herauskommt, nämlich keine angezeigte Tabelle, obwohl sie meiner Meinung nach angezeigt werden müsste.

                          Die ist (logischerweise) auch nicht im Quelltext zu sehen, wenn die Datei aufgerufen wurde.

                          Kommentar


                          • #14
                            jetzt hast du mitlererweile deine Postings so weit verändert, dass nirgendwo mehr ein problem in line 28 genannt wird.

                            was ist dein aktuelles problem? was hast du probiert um es zu lösen.

                            lass dir bitte nicht alles aus der nase ziehen.

                            Kommentar


                            • #15
                              Das Problem mit Zeile 28 haben wir doch schon gelöst. Es war eine Klammer zuviel drin, die ich beseitigt habe.

                              Also, ich habe die Datei nach deinem Vorschlag geändert.

                              Es wird aber nach wie vor keinerlei Tabelle angezeigt, wenn man sich eingelogt hat.

                              Es soll VOR der "else" alles in einer einzeiligen Tabelle ausgegeben werden.

                              Das ist und war das Problem.

                              Ursprüngliche Datei: erstes Posting
                              Jetzige Datei mit der Änderung nach deinem Vorschlag: 4 Postings weiter oben
                              Zuletzt geändert von roteisen; 15.03.2007, 22:00.

                              Kommentar

                              Lädt...
                              X