Anmeldung auf einer Seite die mich auf einer anderen Anmeldet

arraybreak

Erfahrenes Mitglied
Tag All,

bin gerade dabei ein Login zu erstellen der mir ermöglicht, dass ich meine Login-Daten auf Seite A eintragen und der soll mich auf Seite B anmelden. Wie kann man das realisieren, stehe gerade voll auf dem schlauch:

Hier mein Login:

PHP:
<fieldset id="signin_menu">
    <form method="post" target="_blank" id="form-login" action="http://www.seite-b.de">
      <label for="username">E-Mail</label>
      <input id="username" name="username" value="" title="username" tabindex="4" type="text">
      </p>
      <p>
        <label for="password">Passwort</label>
        <input id="password" name="password" value="" title="password" tabindex="5" type="password">
      </p>
      <p class="remember">
        <input id="signin_submit" value="Anmelden" tabindex="6" type="submit">
        <input id="remember" name="remember_me" value="1" tabindex="7" type="checkbox">
        <label for="remember">Eingeloggt bleiben</label>
      </p>
    </form>
  </fieldset>

Gruß arraybreak
 
Wo ist denn nun das Problem? Am Formular sollte es nicht liegen.
Was hast du auf Seite B schon programmiert? Eine Datenbankabfrage...?
 
Wo ist denn nun das Problem? Am Formular sollte es nicht liegen.
Was hast du auf Seite B schon programmiert? Eine Datenbankabfrage...?

PHP:
<div id="popups_container" class="clearfix">
						<div id="popup_login">
				<form action="/index.php?Itemid=72" method="post" name="form-login" id="form-login" >
            <ul class="loginposition">
            <li id="form-login-login">
                  <label for="modlgn_username">Benutzername</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">Passwort</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="Anmeldung" />

            </li>
      </ul>
	  <ul class="loginposition clearfix">      
            <li id="form-login-remember">
                                    <input id="modlgn_remember" type="radio" name="remember" class="inputbox" value="yes" alt="Remember Me" />
                  <label for="modlgn_remember">Angemeldet bleiben</label>
                              </li>
            <li id="form-login-fpass">
                  <a href="/index.php?option=com_user&amp;view=reset">

                  Passwort vergessen?</a>
            </li>
            <li id="form-login-flogin">  <a href="/index.php?option=com_user&amp;view=remind">
                        Benutzername vergessen?</a></li>
                        <li id="form-login-register">
                  <a href="/index.php?option=com_user&amp;task=register">
                  Registrieren</a>

            </li>
                  </ul>
            <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>
			</div>

So sieht der Login aus von der zweiten seiten (B), die stammt nicht von mir und ich weiß nicht wie es da abläuft. Ich möchte einfach auf seite A mich anmelden und es an seite B weiterleiten aber es klapt einfach nicht :(
 
Bevor ich anfange, dir hier etwas zu coden, ein paar Fragen:
- du liest die Benutzer aus einer Datenbank aus, oder?
- hast du Ahnung von Sessions?
- hast du überhaupt Ahnung davon, wie ein Login funktionieren sollte?
 
Ja die Benutzer werden aus einer Datenbank ausgelesen, von Sessions habe ich leider keine Ahnung, und die Frage wie es genau funktionieren sollte verstehe ich nicht ganz :(
 
Ok, gut dann fangen wir mal an...

Du bastelst dir eine Seite, z.B. login.html ... dort muss der Inhalt rein, den du oben hattest, mit folgenden Änderungen:
PHP:
    <form method="post" target="_blank" id="form-login" action="login.php"> 
      <label for="username">E-Mail</label> 
      <input id="username" name="username" title="username" tabindex="4" type="text"> 
      </p> 
      <p> 
        <label for="password">Passwort</label> 
        <input id="password" name="password" title="password" tabindex="5" type="password"> 
      </p> 
      <p class="remember"> 
        <input id="signin_submit" value="Anmelden" tabindex="6" type="submit"> 
        <input id="remember" name="remember_me" value="1" tabindex="7" type="checkbox"> 
        <label for="remember">Eingeloggt bleiben</label> 
      </p> 
    </form> 
  </fieldset>
(Info: Zu "Angemeldet bleiben" weiß ich nicht, wie es funktioniert. Ich weiß nur, dass man das normal über Cookies regelt, hab mich aber noch nie ausführlich damit beschäftigt... das ist aber vorerst unwichtig!)


So anschließend bauen wir uns eine kleine login.php, welche den Login bearbeitet!
PHP:
<?php
DEFINE('SQL_HOST','localhost');
DEFINE('SQL_USER','hierdeinbenutzer');
DEFINE('SQL_PASS','hierdeinpasswort');
DEFINE('SQL_DB','hierdeinedatenbank');

$sql = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS);
mysql_select_db(SQL_DB);
//Datenbankvariablen angelegt und Verbindung zur Datenbank aufgebaut!

//Nun kümmern wir uns um einen Datenabgleich zw. Datenbank und Formular!
$sqlCmd = "SELECT * FROM users WHERE email='".$_POST['username']."' AND password=md5('".$_POST['password']."')";
$sqlQry = mysql_query($sqlCmd, $sql);
if(mysql_num_rows($sqlQry) > 0)
{
   echo "Erfolgreich eingeloggt!";
} else {
   echo "Die eingegebenen Daten sind falsch.";
}
?>
Ich bin davon ausgegangen, dass du eine md5-Verschlüsselung für Passwörter benutzt, in der Datenbank. Das Feld für den Benutzernamen heißt hier "email".

Bis zu diesem Punkt ist der Benutzer nun nur für diese Seite eingeloggt. Einen dauerhaften Login muss man erweitern, indem man mit Sessions arbeitet. Dazu würde ich dich zu Google bzw. in den Tutorial-Bereich schicken!

Ich hoffe, es ist ein wenig verständlich!
 
erstmal vielen Dank für die Ausführliche Hilfe, ich werde es zwar ausprobieren aber irgend wie glaub ich nicht das es klappen würde.
Soweit ich verstanden habe willst du die beiden Dateien "login.html" und "login.php" auf "Seite A" einbinden oder?

Wie soll den der LoginFormular von SeiteA mit deinem Code auf "Seite B" zugreifen?
Das Problem dabei ist es das diese zwei Seiten auf verschiedenen CMS laufen (SeiteA: Wordpress und SeiteB: Joomla)

Diese zwei Zeilen gehören zur SeiteB wo Joomla läuft und er will, wie ich das verstanden habe die Sessions haben, die ich allerdings mit meinem Formular auf SeiteA nicht erzeugen kann:

PHP:
<input type="hidden" name="return" value="L2luZGV4LnBocD9vcHRpb249Y29tX2NvbnRlbnQmdmlldz1hcnRpY2xlJmlkPTg2Jkl0ZW1pZD03Mg==" />
      <input type="hidden" name="5079828044f0bb6174a00d5032900b5a" value="1" />

Ist total verwirrend, ich weiß, aber ohne Schweiß kein Preis oder :)

Gruß arraybreak
 
Theoretisch müsstest du dazu vorerst ein paar Sachen heraussuchen:
1) Loginformular von Wordpress
2) Loginformular von Joomla, zum Datenabgleich!
Beim Joomla-Formular sollte zu sehen sein, an welche Seite das Formular weiterleitet. Entsprechend müsstest du das Formular von Wordpress anpassen...

Wie das mit den Sessions gehandhabt wird, bei Joomla, weiß ich leider nicht. Das CMS habe ich noch nie genauer verwendet, geschweige denn mich in den Code eingelesen...
Du könntest im Code von Joomla nachsehen, ob und vor allem WIE diese Tokens generiert werden oder - wenn du dich echt auskennst - löscht du die Relevanz dieses Tokens einfach aus dem Login raus..., also nicht dort wo er generiert wird, sondern da wo er "benötigt" wird...
 
Zurück