Seite 1 von 1

PHP mit HTML verbinden..., wie geht das sinnvoll?

Verfasst: 15.03.2007 17:52
von hanebu
Sooo, nachdem das Login/Logout-Problem gelöst ist, soll das Ganze auch noch schön aussehen.

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

Code: Alles auswählen

<?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_ip, PAGE_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.

Code: Alles auswählen

<?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_ip, PAGE_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 border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="540" bgcolor="#B2B2B2">
    <tr>
    <form action="http://www.mcpokers.com/forums/login.php" method="post"> 
      <td width="80" height="20" align="left">
      <p align="center">
      <font face="Verdana" style="font-weight:700" color="#FFFFFF" size="1">Username:</font></td>
      <td width="50" align="left">
      <input type="text" name="username" size="16" style="FONT-FAMILY: Verdana; COLOR: #006600; FONT-SIZE: 11px; FONT-STYLE: normal; background: #FFFFFF; border: solid 1px #000000;"></td>
      <td width="82">
      <p align="center"><font face="Verdana" size="1"><b><font color="#FFFFFF">Password:</font></b><font color="#FFFFFF"><i>
      </i></font> </font></td>
      <td width="50"><input type="password" name="password" size="16" style="FONT-FAMILY: Verdana; COLOR: #006600; FONT-SIZE: 11px; FONT-STYLE: normal; background: #FFFFFF; border: solid 1px #000000;"></td>
      <td width="80">
      <p align="center"><b><font face="Verdana" size="1" color="#FFFFFF">Autologin?</font></b></td>
      <td width="22"><input type="checkbox" name="autologin1" value="ON"></td>
      <input type="hidden" name="redirect" value="http://www.mcpokers.com/test_files/test1.php"> 
      <td width="42"><colspan="2" align="left">
  <INPUT TYPE="submit" NAME="login" style="border: 1px solid #FFFFFF; font-family: Verdana; font-size: 10px; background-color: #000000; color: #FFFFFF;" value="Submit" ></td>
</form>
   </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:

Code: Alles auswählen

{ 
$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:

Code: Alles auswählen

<div align="left">
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="250" id="AutoNumber1" 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?

Viele Grüße,
Tommy

Verfasst: 15.03.2007 18:00
von Zothos
Hallo, also eigndlich müsste es so recht einfach gehen:

Code: Alles auswählen


<?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_ip, PAGE_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 border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="250" id="AutoNumber1" 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 border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="540" bgcolor="#B2B2B2">
    <tr>
    <form action="http://www.mcpokers.com/forums/login.php" method="post">
      <td width="80" height="20" align="left">
      <p align="center">
      <font face="Verdana" style="font-weight:700" color="#FFFFFF" size="1">Username:</font></td>
      <td width="50" align="left">
      <input type="text" name="username" size="16" style="FONT-FAMILY: Verdana; COLOR: #006600; FONT-SIZE: 11px; FONT-STYLE: normal; background: #FFFFFF; border: solid 1px #000000;"></td>
      <td width="82">
      <p align="center"><font face="Verdana" size="1"><b><font color="#FFFFFF">Password:</font></b><font color="#FFFFFF"><i>
      </i></font> </font></td>
      <td width="50"><input type="password" name="password" size="16" style="FONT-FAMILY: Verdana; COLOR: #006600; FONT-SIZE: 11px; FONT-STYLE: normal; background: #FFFFFF; border: solid 1px #000000;"></td>
      <td width="80">
      <p align="center"><b><font face="Verdana" size="1" color="#FFFFFF">Autologin?</font></b></td>
      <td width="22"><input type="checkbox" name="autologin1" value="ON"></td>
      <input type="hidden" name="redirect" value="http://www.mcpokers.com/test_files/test1.php">
      <td width="42"><colspan="2" align="left">
  <INPUT TYPE="submit" NAME="login" style="border: 1px solid #FFFFFF; font-family: Verdana; font-size: 10px; background-color: #000000; color: #FFFFFF;" value="Submit" ></td>
</form>
   </tr>
  </table>
</div>
<?
}

?> 
Wo ist das Problem :P. Btw manchmal sind fehlermeldungen recht hilfreich wenn du hilfe willst :P

Verfasst: 15.03.2007 18:15
von hanebu
Danke schön. :grin: :o

Aber es kommt nach dem einloggen nur die normale Textausgabe, die Tabelle ist nicht da.

Woran kann das denn liegen?

Probiers mal aus, die Datei:

link entfernt

Login:
test/test