Seite 1 von 2

Gastpopup

Verfasst: 24.02.2003 20:47
von mini-power
Hallo

Habe soeben diesen MOD eingebaut :
http://www.phpbb2.de/modules.php?name=D ... _Popup_Mod

Leider blicke ich da jetzt nicht ganz durch, da mein Style nicht richtig angezogen wird.
Hab auch schon die Beiträge dazu hier im Forum angeschaut, aber den durchblick hab ich immer noch nicht.

Meine popup.php :
<?php
/***************************************************************************
* popup.php
* -------------------
* begin : Saturday, Feb 13, 2001
* copyright : (C) 2001 The phpBB Group
* email : support@phpbb.com
*
* $Id: login.php,v 1.47.2.2 2002/06/27 21:26:46 dougk_ff7 Exp $
*
*
***************************************************************************/

/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/

//
// Allow people to reach login page if
// board is shut down
//
define("IN_LOGIN", true);

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Set page ID for session management
//
$userdata = session_pagestart($user_ip, PAGE_LOGIN);
init_userprefs($userdata);
//
// End session management
//

$header_location = ( @preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')) ) ? 'Refresh: 0; URL=' : 'Location: ';

if( isset($HTTP_POST_VARS['login']) || isset($HTTP_GET_VARS['login']) || isset($HTTP_POST_VARS['logout']) || isset($HTTP_GET_VARS['logout']) )
{
//
// This appears to work for IIS5 CGI under Win2K. Uses getenv
// since this doesn't exist for ISAPI mode and therefore the
// normal Location redirector is used in preference
//
if( ( isset($HTTP_POST_VARS['login']) || isset($HTTP_GET_VARS['login']) ) && !$userdata['session_logged_in'] )
{
$username = isset($HTTP_POST_VARS['username']) ? $HTTP_POST_VARS['username'] : '';
$password = isset($HTTP_POST_VARS['password']) ? $HTTP_POST_VARS['password'] : '';

$sql = "SELECT user_id, username, user_password, user_active, user_level
FROM " . USERS_TABLE . "
WHERE username = '" . str_replace("\'", "''", $username) . "'";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Error in obtaining userdata', '', __LINE__, __FILE__, $sql);
}

if( $row = $db->sql_fetchrow($result) )
{
if( $row['user_level'] != ADMIN && $board_config['board_disable'] )
{
header($header_location . append_sid("index.$phpEx", true));
exit;
}
else
{
if( md5($password) == $row['user_password'] && $row['user_active'] )
{
$autologin = ( isset($HTTP_POST_VARS['autologin']) ) ? TRUE : 0;

$session_id = session_begin($row['user_id'], $user_ip, PAGE_INDEX, FALSE, $autologin);

if( $session_id )
{
if( !empty($HTTP_POST_VARS['redirect']) )
{
header($header_location . append_sid($HTTP_POST_VARS['redirect'], true));
exit;
}
else
{
header($header_location . append_sid("index.$phpEx", true));
exit;
}
}
else
{
message_die(CRITICAL_ERROR, "Couldn't start session : login", "", __LINE__, __FILE__);
}
}
else
{
$redirect = ( !empty($HTTP_POST_VARS['redirect']) ) ? $HTTP_POST_VARS['redirect'] : '';
$redirect = str_replace("?", "&", $redirect);

$template->assign_vars(array(
'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("login.$phpEx?redirect=$redirect") . '">')
);

$message = $lang['Error_login'] . '<br /><br />' . sprintf($lang['Click_return_login'], '<a href="' . append_sid("login.$phpEx?redirect=$redirect") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');

message_die(GENERAL_MESSAGE, $message);
}
}
}
else
{
$redirect = ( !empty($HTTP_POST_VARS['redirect']) ) ? $HTTP_POST_VARS['redirect'] : "";
$redirect = str_replace("?", "&", $redirect);

$template->assign_vars(array(
'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("login.$phpEx?redirect=$redirect") . '">')
);

$message = $lang['Error_login'] . '<br /><br />' . sprintf($lang['Click_return_login'], '<a href="' . append_sid("login.$phpEx?redirect=$redirect") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');

message_die(GENERAL_MESSAGE, $message);
}
}
else if( ( isset($HTTP_GET_VARS['logout']) || isset($HTTP_POST_VARS['logout']) ) && $userdata['session_logged_in'] )
{
if( $userdata['session_logged_in'] )
{
session_end($userdata['session_id'], $userdata['user_id']);
}

if( !empty($HTTP_POST_VARS['redirect']) )
{
header($header_location . append_sid($HTTP_POST_VARS['redirect'], true));
exit;
}
else
{
header($header_location . append_sid("index.$phpEx", true));
exit;
}
}
else
{
if( !empty($HTTP_POST_VARS['redirect']) )
{
header($header_location . append_sid($HTTP_POST_VARS['redirect'], true));
exit;
}
else
{
header($header_location . append_sid("index.$phpEx", true));
exit;
}
}
}
else
{
//
// Do a full login page dohickey if
// user not already logged in
//
if( !$userdata['session_logged_in'] )
{
$page_title = $lang['Login'];

$template->set_filenames(array(
'body' => 'popup.tpl')
);

if( isset($HTTP_POST_VARS['redirect']) || isset($HTTP_GET_VARS['redirect']) )
{
$forward_to = $HTTP_SERVER_VARS['QUERY_STRING'];

if( preg_match("/^redirect=(.*)$/si", $forward_to, $forward_matches) )
{
$forward_to = ( !empty($forward_matches[3]) ) ? $forward_matches[3] : $forward_matches[1];
$forward_match = explode('&', $forward_to);

if(count($forward_match) > 1)
{
$forward_page = '';

for($i = 1; $i < count($forward_match); $i++)
{
if( !ereg("sid=", $forward_match[$i]) )
{
if( $forward_page != '' )
{
$forward_page .= '&';
}
$forward_page .= $forward_match[$i];
}
}
$forward_page = $forward_match[0] . '?' . $forward_page;
}
else
{
$forward_page = $forward_match[0];
}
}
}
else
{
$forward_page = '';
}

$username = ( $userdata['user_id'] != ANONYMOUS ) ? $userdata['username'] : '';

$s_hidden_fields = '<input type="hidden" name="redirect" value="' . $forward_page . '" />';

make_jumpbox('viewforum.'.$phpEx, $forum_id);
$template->assign_vars(array(
'USERNAME' => $username,

'L_ENTER_PASSWORD' => $lang['Enter_password'],
'L_SEND_PASSWORD' => $lang['Forgotten_password'],

'U_SEND_PASSWORD' => append_sid("profile.$phpEx?mode=sendpassword"),

'S_HIDDEN_FIELDS' => $s_hidden_fields)
);

$template->pparse('body');

}
else
{
header($header_location . append_sid("index.$phpEx", true));
exit;
}

}

?>
Meine popup.tpl :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">

<link rel="top" href="index.php" title="" />
<link rel="search" href="search.php" title="" />
<link rel="help" href="faq.php" title="" />
<link rel="author" href="memberlist.php" title="" />

<title>Willkommen. Bitte logge ein oder registriere Dich.</title>
<link rel="stylesheet" href="templates/subSilver/subSilver.css" type="text/css" />

<script>
function letsGo(url)
{
opener.location = url;
self.close();
}
</script>

</head>
<body bgcolor="#E5E5E5" text="#000000" link="#006699" vlink="#5493B4" />
<form action="popup.php" method="post" target="myWin" onsubmit="window.close()">

<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
<tr>
<td align="left" class="nav"><a href="{U_INDEX}" class="nav">{L_INDEX}</a></td>
</tr>
</table>

<table width="100%" cellpadding="4" cellspacing="1" border="0" class="forumline" align="center">
<tr>
<th height="25" class="thHead" nowrap="nowrap">{L_ENTER_PASSWORD}</th>
</tr>
<tr>
<td class="row1"><table border="0" cellpadding="3" cellspacing="1" width="100%">
<tr>
<td colspan="2" align="center">&nbsp;</td>
</tr>
<tr>
<td width="45%" align="right"><span class="gensmall">Benutzername:</span></td>
<td>
<input type="text" name="username" size="25" maxlength="40" value="{USERNAME}" />
</td>
</tr>
<tr>
<td align="right"><span class="gensmall">Passwort:</span></td>
<td>
<input type="password" name="password" size="25" maxlength="25" />
</td>
</tr>
<tr align="center">
<td colspan="2"><span class="gensmall">Bei jedem Besuch automatisch einloggen <input type="checkbox" name="autologin" /></span></td>
</tr>
<tr align="center">
<td colspan="2"><input type="hidden" name="redirect" value="index.php" /><input type="submit" name="login" class="mainoption" value="login" /></td>
</tr>
<tr align="center">
<td colspan="2"><span class="gensmall"><a href="javascript:letsGo('profile.php?mode=sendpassword')" class="gensmall">Ich habe mein Passwort vergessen !</a><br><br><a href="javascript:letsGo('profile.php?mode=register')" class="gensmall">Noch nicht Member ? Klick hier !</a></span></td>
</tr>
<tr align="center">
<td colspan="2"><span class="gensmall"><A HREF="javascript:parent.window.close()">Fenster schliessen</A></span></td>
</tr>
</table></td>
</tr>
</table>

</form>
</body>
</html>
Wie krieg ich das nun hin, dass das Style richtig angezeigt wird ?
Und hat vielleicht auch noch jemdand ein Tip, wie ich die ganzen Wörter nicht hart-codiert haben kann, sondern aus der lang_main.php "ansaugen" kann ?

Ach ja, mein Forum findet man hier.

Danke schon im vorraus für die Hilfe !

greetz mini-power

Verfasst: 24.02.2003 22:01
von AWSW

Verfasst: 25.02.2003 01:28
von mini-power
Hi AWSW

Danke, aber genau dieses Posting mit deinem dazumaligen Problem habe ich schon ein paar mal durchgelesen.
Aber irgendwie blick ich da nicht so ganz durch......

greetz mini-power

Verfasst: 25.02.2003 10:55
von AWSW
Hi,
na vielleicht helfen Dir die Dateien von mir weiter...

<phpbb2-root>/AWSWGastPopUp.php:

Code: Alles auswählen

<?php 
define('IN_PHPBB', true); 

$phpbb_root_path = './'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 

$userdata = session_pagestart($user_ip, PAGE_INDEX); 
init_userprefs($userdata); 

$gen_simple_header = true; 
$page_title = $lang['Guest'] . ' Popup'; 
include($phpbb_root_path . 'includes/page_header.'.$phpEx); 

$template->set_filenames(array( 
'body' => '../AWSWGastPopUp_Body.tpl') 
); 

$template->pparse('body'); 

include($phpbb_root_path . 'includes/page_tail.'.$phpEx); 
?>
<phpbb2-root>/templates/AWSWGastPopUp_Body.tpl:

Code: Alles auswählen

<table width="100%" border="0" cellpadding="1" cellspacing="1"  style="border-collapse: collapse" class="forumline">
<tr>
<td class="cathead" align="center" colspan="2" height="25"><span class="cattitle">Hallo & Willkommen auf www.domain.de</span></td>
</tr>
 <tr> 
        <td colspan="2" height="1" class="row2"><img src="images/spacer.gif" width="1" height="1" alt="."></td> 
  </tr> 
<tr>
<td width="100%" align="left" class="row2"><span class="gensmall"><br> 
<center><img src="http://www.domain.de/phpbb2/templates/subSilver/images/no_avatar.gif" border="0" hspace="3" /></center>Hallo Gast,<br>
hier ist meine neue Seite, auf der Du einiges zu MS Access, MS Windows, MS Visual Basic, Flash Bannern, Flash Animationen und weiteren Themen finden kannst.  
<br><br>
Damit Du den vollen Umfang der Seite, wie z.B. das Herunterladen der MS Access Beispieldatenbanken, Beitragsbenachrichtigung, Erstellen von Beiträgen und weitere Funktionen nutzen kannst, ist eine kostenlose Registrierung mit einer gültigen Mailadresse über den Link <b><A HREF="http://www.domain.de/phpbb2/profile.php?mode=register">Registrieren</A></b> notwendig. Nach Aktivierung über den Link, in der zugestellten Mail, ist dann auch ein <b><A HREF="http://www.domain.de/phpbb2/login.php">Login</A></b> möglich.
<br><br>
Mehr Informationen zur Seite findest Du in der <b><A HREF="http://www.domain.de/phpbb2/faq.php" target="_blank">FAQ</A></b>
<br><br>
<center><b>Und nun wünsche ich weiterhin noch Viel Spaß</b></center><br>
</span></td>
</tr>
</table>
HTH AWSW

Verfasst: 25.02.2003 13:50
von mini-power
Hi AWSW

Danke für deinen Code......hat mir einiges weiter geholfen.

Nun habe ich nur noch ein kleines Problem. Alles funktioniert, ausser der Login vom Popup aus.......mit dem alten Popup gings noch, aber jetzt nimmer. :-(
Wenn man sich einloggen will, dann leitet er (nach dem drücken auf Login) es zwar weiter, aber er öffnet wieder das Popup, einfach in der ganzen Seite.
Vielleicht eine Idee an was es liegen könnte ? Denn ich würde das Popup gerne so belassen.

Habe mal kurz ein Testuser eingerichtet :

Benutzername : dummy
Passwort : dummy

Forum: http://www.mini-power.ch/forum.html

Hier nochmals der Code vom jetztigen tpl :
<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">

<link rel="top" href="index.php" title="" />
<link rel="search" href="search.php" title="" />
<link rel="help" href="faq.php" title="" />
<link rel="author" href="memberlist.php" title="" />
<script>
function letsGo(url)
{
opener.location = url;
self.close();
}
</script>

</head>
<body />
<form action="gastpopup.php" method="post" target="myWin" onsubmit="window.close()">
<table width="500" cellpadding="4" cellspacing="1" border="0" class="forumline" align="center">
<tr>
<td height="30" align="center" class="row2" nowrap="nowrap"><span class="cattitle">Hallo & Willkommen im MINI-POWER-Forum</span></td>
</tr>
<tr>
<td width="100%" align="left" class="row1"><span class="gensmall"><br>
<center><img src="http://www.mini-power.ch/miniforum/phpB ... tpopup.gif" border="0" hspace="3" /></center>Hallo Gast.<br>
Wir möchten Dich herzlich begrüssen im MINI-POWER-Forum. Hier findest Du diverse Diskussionen rund um den MINI.
<br><br>
Damit Du den vollen Umfang des Forums, wie z.B. Beitragsbenachrichtigung, Übersicht ob Du ein Thema schon gelesen hast und weitere Funktionen voll nutzen kannst, ist eine kostenlose Registrierung mit einer gültigen Mailadresse über den Link <b><a href="javascript:letsGo('profile.php?mode=register')" class="gensmall">Registrieren</a></b> von Vorteil. Nach Aktivierung über den Link, in der zugestellten Mail, ist dann auch ein <b><a href="javascript:letsGo('login.php')" class="gensmall">Login</a></b> möglich.
<br><br>
</span></td>
</tr>
<tr>
<td class="row1"><table border="0" cellpadding="3" cellspacing="1" width="100%">
<tr>
<td colspan="2" align="center" class="gensmall"><b>Falls Du jedoch schon über ein Login verfügst,<br>dann kannst Du auch direkt hier einloggen :</b><br><br></td>
</tr>
<tr>
<td width="45%" align="right"><span class="gensmall">Benutzername:</span></td>
<td>
<input type="text" name="username" size="25" maxlength="40" value="{USERNAME}" />
</td>
</tr>
<tr>
<td align="right"><span class="gensmall">Passwort:</span></td>
<td>
<input type="password" name="password" size="25" maxlength="25" />
</td>
</tr>
<tr align="center">
<td colspan="2"><span class="gensmall">Bei jedem Besuch automatisch einloggen <input type="checkbox" name="autologin" /></span></td>
</tr>
<tr align="center">
<td colspan="2"><input type="hidden" name="redirect" value="index.php" /><input type="submit" name="login" class="mainoption" value="login" /></td>
</tr>
<tr align="center">
<td colspan="2"><span class="gensmall"><a href="javascript:letsGo('profile.php?mode=sendpassword')" class="gensmall">Ich habe mein Passwort vergessen !</a><br></span></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>
danke & gruss
mini-power

Verfasst: 25.02.2003 14:19
von AWSW
Hallo,
kann ich Dir leider nicht sagen warum dem so ist. Ich erhalte aber auch diese Fehlermeldung im popup:

Parse error: parse error in /home/mini-power.ch/htdocs/miniforum/phpBB/gastpopup.php on line 123


HTH AWSW

Verfasst: 25.02.2003 14:20
von mini-power
Hallo

Sorry, hatte gerade nochmal was ausprobiert. Darum kam der Error.
Nun sollte es wieder gehen.

Ich denke, ich weiss woran der Fehler liegt.
Und zwar hab ich ja nun das php-file gleich wie du und jetzt fehlt doch da das ganze "Skript" für den Login. Oder sehe ich das Falsch ?

Wenn es an dem liegt, was vom Skript muss ich wieder ins PHP-File reinkopieren ?

greetz mini-power

Verfasst: 25.02.2003 23:30
von mini-power
Niemand eine Idee oder einen Tip ?

Wäre sehr froh darüber.

Verfasst: 27.02.2003 15:05
von saerdnaer
datei als .txt oder .phps abspeichern und den link posten...

ah

Verfasst: 01.03.2003 11:46
von mini-power
Hallo

So, ich hab mal kurz ein paar TXT-Files gemacht.
Hoffe, dass du daraus eine Lösung finden kannst.

gastpopup.php
gastpopup.tpl

gastpopup.php (das Original vom MOD)

Danke & Gruss
mini-power