1 Login für 2 Systeme

PsychoJR

Grünschnabel
Hallo zusammen,



habe da nen Problem..


Ich würde gerne 1 Login Script haben was 1x die Daten an mein PHPNuke sendet und einmal an das wbb 2.3.6

Was ich schon hinbekommen habe ist das wenn sich jemand bei Nuke oder im Forum reggt dieser sofort auch für das andere System registriert ist !



Das funktioniert auch alles...nun is nur das blöde das die Leute sich 2x einloggen müssen !

Dies würde ich wie bereits erwähnt gerne durch ein Globales Login Script ersetzten !



Hat zufällig jemand ne Idee oder sogar nen Script zur Hand ?



Vielen Dank schonmal im vorraus

MfG

PsychoJR
 
Nun ja im Grundegenommen solltest du dir beide Loginroutinen ansehen, und diese in einem System adaptieren. Sofern das ganze unter einer Domain aufzufinden ist.

Wenn es 2 verschiedene Domains sind, solltest du in der Loginroutine eines Systems per Übergabe in ein Frameset (wo die 2. Domain Aufgerufen wird) das Login ausführen. Der Frame kann ja auch 0px gross sein.

Bei letzterem wird dir die Klasse Snoopy helfen. Diese simuliert einen Browser.

http://sourceforge.net/projects/snoopy/

Ganz sauber ist das natürlich nicht. Das ist wahrscheinlich der Grund, warum man ein Forum besser als PlugIn ins PostNuke, etc. implementieren sollte.
 
Ich stimme da tefla ganz und gar zu! Du solltest dir die Login routinen von beiden applikationen anschauen und eine von ihnen ggf. umschreiben, sodass diese beide zB. das gleiche cookie benutzen!

Alternativ gibt es CMS's, wo gleich gute Foren dabei sind, bzw. man sich plugins dafür laden kann.
zB. Joomla, Typo3 usw.
 
Hallo,

vielen dank erstmal für die Antwort..

Leider habe ich nicht extrem soviel ahnung von dieser Materie...

Aussehen tuen die beiden verfahren so....

PHPNuke:

PHP:
<form action=\"modules.php?name=Your_Account\" method=\"post\"><input type=\"text\" name=\"username\" value=\"user name\" onFocus=\"if(this.value=='user name')this.value='';\" value style=\"width:90;height:18;\" class=1><img src=\"themes/pixol/images/spacer.gif\" width=\"5\" height=\"1\" border=\"0\"><input type=\"password\" name=\"user_password\" value=\"password\" onFocus=\"if(this.value=='password')this.value='';\" value style=\"width:90;height:18;\" class=1><input type=\"hidden\" name=\"random_num\" value=\"$random_num\"><input type=\"hidden\" name=\"gfx_check\" value=\"$code\"><input type=\"hidden\" name=\"op\" value=\"login\"><img src=\"themes/pixol/images/spacer.gif\" width=\"5\" height=\"1\" border=\"0\"><input type=\"image\" value=\"login\" class=\"noborder\" src=\"themes/pixol/images/login.gif\" border=\"0\" alt=login border=0 align=absmiddle><img src=\"themes/pixol/images/spacer.gif\" border=0 width=4 height=1><a href=\"modules.php?name=Your_Account&op=new_user\"><img src=\"themes/pixol/images/reg.gif\" border=0 alt=register border=0 align=absmiddle></a></TD></a></td></form>\n


wbb:

PHP:
<?xml version="1.0" encoding="{$lang->items['LANG_GLOBAL_ENCODING']}"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="{$lang->items['LANG_GLOBAL_DIRECTION']}" lang="{$lang->items['LANG_GLOBAL_LANGCODE']}" xml:lang="{$lang->items['LANG_GLOBAL_LANGCODE']}">
<head>
<title>$master_board_name | {$lang->items['LANG_USERCP_LOGIN_TITLE']}</title>
$headinclude
<if($allowloginencryption==1)><then>
<script type="text/javascript" src="js/sha1.js"></script>
<script type="text/javascript" src="js/crypt.js"></script></then></if>
</head>

<body>
 $header
<form action="login.php" method="post" name="loginform"<if($allowloginencryption==1)><then> onsubmit="return encryptlogin(this);"</then></if>>
<input type="hidden" name="send" value="send" />
<input type="hidden" name="sid" value="$session[hash]" />
<if($allowloginencryption==1)><then>
<input type="hidden" name="authentificationcode" value="$session[authentificationcode]" />
<input type="hidden" name="crypted" value="false" /></then></if>
<table cellpadding="{$style['tableincellpadding']}" cellspacing="{$style['tableincellspacing']}" border="{$style['tableinborder']}" class="tableinborder">
  <tr>
   <td class="tabletitle" align="left" colspan="2"><span class="normalfont"><b>{$lang->items['LANG_USERCP_LOGIN_TITLE']}</b></span></td>
  </tr>
  <tr align="left">
   <td class="tableb"><span class="normalfont">{$lang->items['LANG_USERCP_LOGIN_USERNAME']}</span></td>
   <td class="tableb"><input type="text" class="input" name="l_username" size="20" maxlength="50" tabindex="1" /><span class="smallfont"> <a href="register.php{$SID_ARG_1ST}">{$lang->items['LANG_USERCP_LOGIN_REGISTER']}</a></span></td>	
  </tr>
  <tr align="left">
   <td class="tablea"><span class="normalfont">{$lang->items['LANG_USERCP_LOGIN_PASSWORT']}</span></td>
   <td class="tablea"><input type="password" class="input" name="l_password" size="20" maxlength="30" tabindex="2" /><span class="smallfont"> <a href="forgotpw.php{$SID_ARG_1ST}">{$lang->items['LANG_USERCP_PW_FORGOTPW']}</a></span></td>	
  </tr>
  <if($allowloginencryption==1)><then>
  <tr align="left">
   <td class="tableb"><span class="normalfont"><label for="checkbox1">{$lang->items['LANG_GLOBAL_ENCRYPT_TRANSFER']}</label></span></td>
   <td class="tableb"><input type="checkbox" id="checkbox1" name="activateencryption" onclick="activate_loginencryption(document.loginform);" /></td>
  </tr></then></if>
 </table>
 <p align="center"><input class="input" type="submit" name="submit" accesskey="S" value="{$lang->items['LANG_USERCP_LOGIN_LOGIN']}" tabindex="3" /> <input class="input" type="reset" accesskey="R" value="{$lang->items['LANG_USERCP_LOGIN_RESET']}" /></p>
</form>
<if($allowloginencryption==1)><then>
<script type="text/javascript">
 <!--
  activate_loginencryption(document.loginform);
 //-->
</script></then></if>
$footer
</body>
</html>

Vielen Dank schonmal im vorraus

MfG
PsychoJR
 
Zuletzt bearbeitet:
erst mal:
bevor du son code wie den vom PHP Nuke postest, formatier ihn bitte richtig!

zweitens:
interessant ist auch der code, wo das cookie zB. erstellt wird!

nur mit der eingabe maske kann man nichts anfangen!
 
Moin,

ok das mit der Formatierung tut mir leid...wusste ich nicht und war auch keine Absicht...

Und mit den Cookies...hm wees leider nicht wo das ausgeben bzw. eingetragen ist !

MfG

PsychoJR
 
Eine ehrliche Aussage:

Dann solltest du dir lieber eine fertige Lösung besorgen, denn wenn du diese Grundbestandteile der Software schon nicht finden kannst, bezweifle ich (ohne dir zu nahe treten zu wollen) dass du in der Lage bist, die entsprechenden Teile richtig umzuschreiben.
 
Hallo,

nein da zu nahe kommst du mir damit net :D....is schon OK und hast sogar teilweise recht !

Ich schrieb ja im ersten Post das "falls" jemand direkt nen Script zur Hand hätte ;)

Nartürlich bin ich auch bereit, dafür zu schwitzen und mir mit Kaffee die Nächte um die Ohren zu hauen so is das nicht...und geht nicht gibts nicht ;)

Dachte anfangs nur das evtl. jemand schonmal das selbe Problem, bzw. eine ähnliche Situation hätte...

Bin aber auch gewillt nach dem Cookies eintrag zu schauen...und dies werde ich nun auch wieder tun :)

Gruss

PsychoJR
 
Gut, dann würde ich damit anfangen, die Loginformulare kurz zu überblicken und dabei siehst du, dass das WBB auf die login.php umleitet (also wird dort wahrscheinlich alles gemacht) und das PHPNuke auf "modules.phpname=Your_Account", also müsstest du gucken, welches Modul Your_Account eigentlich ist und wo es geladen/definiert wird.

Vielleicht findest du aber auch in den großen PHPNUke Communities eine Lösung. Stichwörter könnten sein: phpnuke wbb bridge
 
Hallo,

jaha das mit der Bridge kann ich leider vergessen ^^ habe 3 tage lang google gequält :)

Ne Bridge für Joomla und wbb2 gibt es aber nix für PHPNuke und daran angelehnte PHPKit..

So habe mir nun mal vom wbb die login.php angeschaut....

is das hier das was ich raus suchen musste ?

PHP:
	if (isSet($result['userid']) && $result['userid']) {
		$wbb_username = htmlconverter($result['username']);
		if ($result['usecookies'] == 1) {
			bbcookie("userid", "$result[userid]", time() + 3600 * 24 * 365);
			bbcookie("userpassword", "$wbb_userpassword", time() + 3600 * 24 * 365);
		}

Weil das is das einzigste in der Datei das für die Cookies zuständig ist, wie es scheint !

MfG

PsychoJR
 
Zurück