Sessions Problem

arraybreak

Erfahrenes Mitglied
Abend All,

mittlerweile ist es mein 2 Post innerhalb von 3 Stunden aber ich komme einfach nicht weiter.
Ich habe eine Seite A die auf Wordpress läuft und ich möchte mich da anmelden und dass der Login mich auf Seite B anmeldet wo Joomla installiert ist.

Dabei habe ich ein Problem mit Sessions. Im Login Form sind die "hidden" Zeile die so aussiehen:

PHP:
      <input type="hidden" name="option" value="com_user" />
      <input type="hidden" name="task" value="login" />
      <input type="hidden" name="return" value="L2luZGV4LnBocD9vcHRpb249Y29tX2NvbnRlbnQmdmlldz1hcnRpY2xlJmlkPTg2Jkl0ZW1pZD03Mg==" />
      <input type="hidden" name="5079828044f0bb6174a00d5032900b5a" value="1" /></form>

Die Letzten 2 werden ja nur von Seite B erzeugt, diese habe ich ja bei Anmeldung noch nicht und darum meldet er mich auf Seite B nicht an. Er zeigt mir "Invalid Token" an.

Ich kenne mich mit Sessions nicht aus, hoffe ihr könnt mir Helfen.

Gruß arraybreak
 
Zuletzt bearbeitet:
Da beide Werte in Laufzeit generiert werden, sehe ich da auf jener simpler Basis keine Lösung. Tatsache ist, dass beide Systeme in ihrer Datenbank nach User X und Passwort Y schauen und danach ihre Sessiondaten schreiben, wenn die Daten zutreffend sind. Kannst Du aus dem joomla-Quelltext ersehen, wie diese Daten für hidden und das letzte Input generiert werden?

Link mit einer möglichen Lösung?!
http://www.teachmejoomla.net/code/j...o-joomla-1.5-from-an-external-php-script.html

mfg chmee
 
Kann man irgend wie eine LoginForm so schreiben das ich diese generierten Daten auf Seite A nicht braucht und das er sich die Daten von Seite B holt?
 
Du könntest ein php-script im joomla-Ordner schreiben, der die Daten (UN und PW) von A entgegennimmt, die Anmeldung zu joomla tätigt und dann an A zurückgibt, dass die Anmeldung erfolgreich ausgeführt wurde. Hast Du mal in den Link geschaut, den ich zuvor mitgegeben habe? Wie auch in Wordpress macht es Sinn, sich mal die Funktionen anzuschauen, die joomla bereitstellt und jene einzubinden - und wenns nur für die Anmeldung ist.

Zumindest wäre das mein Ansatz..

mfg chmee
 
Wäre es möglich das ich diese Zeile die brauche von "Seite B" einfach in "Seite A" include?

hier ist die login.php Datei:
PHP:
<?php // no direct access
defined('_JEXEC') or die('Restricted access'); ?>
<?php if($type == 'logout') : ?>

<form action="index.php" method="post" name="login" id="form-login">
      <div class="logout">
      		<?php if ($params->get('greeting')) : ?>
	        <span><?php echo JText::sprintf( 'HINAME', $user->get('name') ); ?></span>
            <?php endif; ?>
            <input type="submit" name="Submit" class="button" onclick="document.getElementById('form-login').submit();" value="<?php echo JText::_( 'BUTTON_LOGOUT'); ?>" />
      </div>
      <input type="hidden" name="option" value="com_user" />
      <input type="hidden" name="task" value="logout" />
      <input type="hidden" name="return" value="<?php echo $return; ?>" />
</form>
<?php else : ?>
<?php if(JPluginHelper::isEnabled('authentication', 'openid')) : ?>
<?php JHTML::_('script', 'openid.js'); ?>
<?php endif; ?>
<form action="<?php echo JRoute::_( 'index.php', true, $params->get('usesecure')); ?>" method="post" name="form-login" id="form-login" >
      <?php echo $params->get('pretext'); ?>
      <ul class="loginposition">
            <li id="form-login-login">
                  <label for="modlgn_username"><?php echo JText::_('Username') ?></label>
                  <input id="modlgn_username" type="text" name="username" class="inputbox" alt="username" size="15" />
            </li>
            <li id="form-login-pass">
                  <label for="modlgn_passwd"><?php echo JText::_('Password') ?></label>
                  <input id="modlgn_passwd" type="password" name="passwd" class="inputbox" size="15" alt="password" />
            </li>
            <li id="form-login-button">
                  <input type="submit" name="Submit" class="button" value="<?php echo JText::_('LOGIN') ?>" />
            </li>
      </ul>
	  <ul class="loginposition clearfix">      
            <li id="form-login-remember">
                  <?php if(JPluginHelper::isEnabled('system', 'remember')) : ?>
                  <input id="modlgn_remember" type="radio" name="remember" class="inputbox" value="yes" alt="Remember Me" />
                  <label for="modlgn_remember"><?php echo JText::_('Remember me') ?></label>
                  <?php endif; ?>
            </li>
            <li id="form-login-fpass">
                  <a href="<?php echo JRoute::_( 'index.php?option=com_user&view=reset' ); ?>">
                  <?php echo JText::_('FORGOT_YOUR_PASSWORD'); ?></a>
            </li>
            <li id="form-login-flogin">  <a href="<?php echo JRoute::_( 'index.php?option=com_user&view=remind' ); ?>">
                        <?php echo JText::_('FORGOT_YOUR_USERNAME'); ?></a></li>
            <?php
		$usersConfig = &JComponentHelper::getParams( 'com_users' );
		if ($usersConfig->get('allowUserRegistration')) : ?>
            <li id="form-login-register">
                  <a href="<?php echo JRoute::_( 'index.php?option=com_user&task=register' ); ?>">
                  <?php echo JText::_('REGISTER'); ?></a>
            </li>
            <?php endif; ?>
      </ul>
      <?php echo $params->get('posttext'); ?>
      <input type="hidden" name="option" value="com_user" />
      <input type="hidden" name="task" value="login" />
      <input type="hidden" name="return" value="<?php echo $return; ?>" />
      <?php echo JHTML::_( 'form.token' ); ?>
</form>
<?php endif; ?>
Die Zeile die ich brauche ist ganz unten:

PHP:
<?php echo JHTML::_( 'form.token' ); ?>

Kann ich die nicht einfach in Seite A includen?
 
Hast Du es ausprobiert? Ich gehe davon aus, dass es nicht funktioniert ;) Allein die zweite Zeile zeigt, das _JEXEC definiert sein muß, sonst Ende Gelände. Etwas über Joomla's API herausfinden und zu schauen, ob und wie man ein Token auf einer fremden Seite einbindet, sollte nicht so schwer sein..

mfg chmee
 
ja wenn man bloß nur wüsste wo man anfangen soll, über JEXEC weiß ich garnichts :D

Habe vorher diesen code geschrieben der aber leider wie du gesagt hast nicht funktionierte
PHP:
      <?php
include 'http://www.url.de/templates/template/mod_login/default.php';
JHTML::_( 'form.token' );
?>

Und dabei diese Fehlermeldung bekommen:

HTML:
<b>Warning</b>:  include() [<a href='function.include'>function.include</a>]: http:// wrapper is disabled in the server configuration by allow_url_include=0 in <b>C:\xampp\htdocs\wp-content\themes\design\header.php</b> on line <b>167</b><br />

<br />
<b>Warning</b>:  include(http://www.url.de/templates/template/mod_login/default.php) [<a href='function.include'>function.include</a>]: failed to open stream: no suitable wrapper could be found in <b>C:\xampp\htdocs\wp-content\themes\design\header.php</b> on line <b>167</b><br />
<br />
<b>Warning</b>:  include() [<a href='function.include'>function.include</a>]: Failed opening 'http://www.url.de/templates/template/mod_login/default.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in <b>C:\xampp\htdocs\wp-content\themes\design\header.php</b> on line <b>167</b><br />

<br />
<b>Fatal error</b>:  Class 'JHTML' not found in <b>C:\xampp\htdocs\wp-content\themes\design\header.php</b> on line <b>168</b><br />

Die Seite die du gepostet hast verstehe ich nicht ganz wie das funktioniert, wo ich z.b. diesen Code einpflanzen soll.. :(
 
Zuletzt bearbeitet:
Zurück