Seite 1 von 2

Vestehe das Login-Modul nicht

Verfasst: Fr 2. Jan 2004, 11:53
von Mega-Schlunze
Hallo bin noch recht neu hier bei Contenido.

Meine Frage ist folgende:

Habe da Login-Modul eingebunden wenn ich jetzt auf Content-> Artikel
-> Startseite -> Konfiguration gehe sehe ich folgende Eingabemaske
Bild (Hier sollte eigentlich das Bild hin :oops: ) mit der ich nicht viel anfangen kann man kann 3mal einen font auswählen, darunter ist ein Eingabefeld. Keine Ahnung wofür dieses sein soll. Dann kommen wieder 2 Auswahlfelder, wo man aber nicht´s auswählen kann.

Der Code für den Input/Output sieht folgendermaßen aus:

Code: Alles auswählen

$ColorMouseOver = "#7E89AC";
$ColorMouseOut = "#626C8E";
if ("CMS_VALUE[3]" == "") {$VALUE[3] = $modLogin["error"];}
echo "<table align=\"left\" cellpadding=\"0\" cellspacing=\"0\">
<tr valign=\"top\">
  <td width=\"202\">".$mod["font"].":</td>
  <td><select name=\"CMS_VAR[0]\" size=\"1\">";
if ("CMS_VALUE[0]" != 0) {
	echo "<option value=\"0\">".$lngForm["nothing"]."</option>";
} else {
	echo "<option value=\"0\" selected>".$lngForm["nothing"]."</option>";
}
for ($i=1; $i<=50; $i++) {
	if ($i != "CMS_VALUE[0]") {
         	echo "<option value=\"$i\">Font $i</option>";
         } else {
         	echo "<option value=\"$i\" selected>Font $i</option>";
         }
}
echo "</SELECT></td>
</tr>
<tr valign=\"top\">
  <td width=\"190\">".$mod["errorfont"].":</td>
  <td><select name=\"CMS_VAR[1]\" size=\"1\">";
if ("CMS_VALUE[1]" != 0) {
	echo "<option value=\"0\">".$lngForm["nothing"]."</option>";
} else {
	echo "<option value=\"0\" selected>".$lngForm["nothing"]."</option>";
}
for ($i=1; $i<=50; $i++) {
	if ($i != "CMS_VALUE[1]") {
         	echo "<option value=\"$i\">Font $i</option>";
         } else {
         	echo "<option value=\"$i\" selected>Font $i</option>";
         }
}
echo "</SELECT></td>
</tr>
<tr valign=\"top\">
  <td width=\"190\">".$mod["inputformfont"].":</td>
  <td><select name=\"CMS_VAR[2]\" size=\"1\">";
if ("CMS_VALUE[2]" != 0) {
	echo "<option value=\"0\">".$lngForm["nothing"]."</option>";
} else {
	echo "<option value=\"0\" selected>".$lngForm["nothing"]."</option>";
}
for ($i=1; $i<=50; $i++) {
	if ($i != "CMS_VALUE[2]") {
         	echo "<option value=\"$i\">Font $i</option>";
         } else {
         	echo "<option value=\"$i\" selected>Font $i</option>";
         }
}
echo "</SELECT></td>
</tr>
<tr>
  <td colspan=\"2\"><input type=\"text\" size=\"37\" style=\"width:300px;\" name=\"CMS_VAR[3]\" value=\"$VALUE[3]CMS_VALUE[3]\"></td>
</tr>
<tr>
  <td valign=\"top\">".$mod["picforsend"].":</td>
  <td><select name=\"CMS_VAR[4]\" size=\"1\">";
if ("CMS_VALUE[4]" != 0) {
	echo "<option value=\"0\">".$lngForm["nothing"]."</option>";
} else {
	echo "<option value=\"0\" selected>".$lngForm["nothing"]."</option>";
}
$sql = "SELECT * FROM $cfgTab_upl WHERE idclient='$client' AND filetype='img' ORDER BY filename";
$db->query($sql);
while ($db->next_record()) {
	if ($db->f("idupl") != "CMS_VALUE[4]") {
         	echo "<option value=\"".$db->f("idupl")."\">".$db->f("description")."</option>";
         } else {
         	echo "<option value=\"".$db->f("idupl")."\" selected>".$db->f("filename")."</option>";
         }
}
echo "</SELECT></td></tr>
<tr>
  <td valign=\"top\">".$modLogin["picforlogout"].":</td>
  <td><select name=\"CMS_VAR[5]\" size=\"1\">";
if ("CMS_VALUE[5]" != 0) {
	echo "<option value=\"0\">".$lngForm["nothing"]."</option>";
} else {
	echo "<option value=\"0\" selected>".$lngForm["nothing"]."</option>";
}
$sql = "SELECT * FROM $cfgTab_upl WHERE idclient='$client' AND filetype='img' ORDER BY filename";
$db->query($sql);
while ($db->next_record()) {
	if ($db->f("idupl") != "CMS_VALUE[5]") {
         	echo "<option value=\"".$db->f("idupl")."\">".$db->f("description")."</option>";
         } else {
         	echo "<option value=\"".$db->f("idupl")."\" selected>".$db->f("filename")."</option>";
         }
}
echo "</SELECT></td>
</tr>
</table>";
echo "<input type=\"hidden\" name=\"CMS_VAR[6]\" value=\"$ColorMouseOver\">";
echo "<input type=\"hidden\" name=\"CMS_VAR[7]\" value=\"$ColorMouseOut\">";

Ausgabe:
<?php
if ($action == "login")
  {if ( $uid = $auth->auth_validatelogin() )
    {$auth->auth["uid"] = $uid;
    $auth->auth["exp"] = time() + (60 * $auth->lifetime);
    $auth->auth["refresh"] = time() + (60 * $auth->refresh);
    echo "<script language=\"JavaScript\">";
    echo "location.href=\"".$auth->url()."\";";
    echo "</script>";}
    else {if ("CMS_VALUE[1]" != "1") {echo "<span id=\"fontCMS_VALUE[1]\">CMS_VALUE[3]</span><br>";} else {echo "CMS_VALUE[3]<br>";}}}


if ($action == "logout")
  {$auth->logout();
    echo "<script language=\"JavaScript\">";
    echo "location.href=\"front_content.php?client=$client&lang=$lang\";";
    echo "</script>";}

if ($uid != "nobody")
  {$auth->auth["exp"] = time() + (60 * $auth->lifetime);}
if ($auth->auth["uid"] == "nobody")
{
?>
  <script language="javascript" src="./js/md5.js"></script>
  <script language="javascript">
  <!--
  function doChallengeResponse() {
    str = document.login.username.value + ":" +
          MD5(document.login.password.value) + ":" +
          document.login.challenge.value;

    document.login.response.value = MD5(str);
    document.login.password.value = "";
    document.login.submit();
  }
  // -->
</script>
<?
echo "<form action=\"".$auth->url()."\" method=\"post\" name=\"login\">";
echo "<center><table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">";
echo "<tr><td width=\"100\">";
if ("CMS_VALUE[0]" != "0") {echo "<span id=\"fontCMS_VALUE[0]\">Username:</span><br>";} else {echo "Username:<br>";}
echo "<input type=\"text\" title=\"".$modLogin["name"]."\" name=\"username\" value=\"$username\" size=10 maxlength=32 onFocus=\"this.style.backgroundColor='CMS_VALUE[6]'\" onBlur=\"this.style.backgroundColor='CMS_VALUE[7]'\"";
if ("CMS_VALUE[2]" != "0") {echo " id=\"fontCMS_VALUE[2]\">";} else {echo ">";}
echo "</td></tr>";
echo "<tr><td width=\"100\">";
if ("CMS_VALUE[0]" != "0") {echo "<span id=\"fontCMS_VALUE[0]\">Passwort:</span><br>";} else {echo "Passwort:<br>";}
echo "<input type=\"password\" title=\"".$modLogin["password"]."\" name=\"password\" size=10 maxlength=32 onFocus=\"this.style.backgroundColor='CMS_VALUE[6]'\" onBlur=\"this.style.backgroundColor='CMS_VALUE[7]'\"";
if ("CMS_VALUE[2]" != "0") {echo " id=\"fontCMS_VALUE[2]\">";} else {echo ">";}
echo "</td></tr>";
echo "<tr><td width=\"120\">";
if ("CMS_VALUE[4]" != "0") {
        	$sql = "SELECT * FROM $cfgTab_upl WHERE idupl='CMS_VALUE[4]'";
	$db->query($sql);
	while ($db->next_record()) {
	echo "<input type=\"image\" src=\"".$db->f("dirname")."/".$db->f("filename")."\" alt=\"".$modLogin["login"]."\"><br>";
	}
} else {
	echo "<input type=\"submit\" title=\"".$modLogin["login"]."\" name=\"submitbtn\" value=\"".$modLogin["send"]."\" onClick=\"doChallengeResponse(); return false;\"";
	if ("CMS_VALUE[2]" != "0") {echo " id=\"fontCMS_VALUE[2]\">";} else {echo ">";}
}
echo "</td></tr>";
echo "</table></center>";
echo "<input type=\"hidden\" name=\"challenge\" value=\"$challenge\">";
echo "<input type=\"hidden\" name=\"response\" value=\"\">";
echo "<input type=\"hidden\" name=\"action\" value=\"login\">";
echo "</form>";}
else {
echo "<form action=\"".$auth->url()."\" method=\"post\" name=\"login\">";
if ("CMS_VALUE[5]" != "0") {
        	$sql = "SELECT * FROM $cfgTab_upl WHERE idupl='CMS_VALUE[5]'";
	$db->query($sql);
	while ($db->next_record()) {
	echo "<input type=\"image\" src=\"".$db->f("dirname")."/".$db->f("filename")."\" alt=\"".$modLogin["logout"]."\"><br>";
	}
} else {
	echo "<input type=\"submit\" title=\"".$modLogin["logout"]."\" name=\"submitbtn\" value=\"".$modLogin["sendout"]."\"";
	if ("CMS_VALUE[2]" != "0") {echo " id=\"fontCMS_VALUE[2]\">";} else {echo ">";}
}
echo "<input type=\"hidden\" name=\"action\" value=\"logout\">";
echo "</form>";}
?>
Da meine PHP-Kenntnisse fast gleich null sind Blick ich da nicht durch.

Kann mir jemand sagen wofür die einzelnen Felder sind.

Bin für jede Hilfe dankbar !

Verfasst: Fr 2. Jan 2004, 12:28
von emergence
welche contenido version ?
sorry kenne dieses login modul überhaupt nicht - woher hast du das den ?

Verfasst: Fr 2. Jan 2004, 13:01
von Mega-Schlunze
Hallo emergence,

Contenido Version 4.4.2

Das Modul habe ich von folgender Site http://con42.contenido-module.de/frontend/

Hat ein bisschen länger gedauert mußte erst nachschauen von welcher Site ich das Modul her hatte

Verfasst: Fr 2. Jan 2004, 13:12
von emergence
glaube nicht dass das modul bei der 4.4.2 noch funktionieren wird...
bei der installation von contenido 4.4.2 ist eigentlich ein login modul dabei...
hier der code

Code: Alles auswählen

<table width="165" border="0" cellspacing="0" cellpadding="0">
<tr><td height="30" colspan="2" ></td></tr>
<tr><td height="21" width="22" style="border: 0px; border-top:1px; border-bottom:1px; border-color: #F7C473; border-style: solid; background-color: #FCF2D5"><img src="images/wuerfel.gif" width="22" height="21" border="0"></td>
<td width="143" style="border: 1px; border-left:0px; border-color: #F7C473; border-style: dashed; background-color: #FCF2D5; padding-left:10px" class="punkte">Login</td></tr>
<tr><td colspan="2" class="text" height="22" style="border: 1px; border-top:0px; border-color: #F7C473; border-style: dashed; background-color: #FCF2D5; padding-left:10px">
<?php

if ($auth->auth["uid"] == "nobody")
{
?>
<form method="post" action="front_content.php?idcatart=<?php echo $idcatart; ?>">
<table border="0">
<tr><td>Benutzername</td></tr>
<tr><td><input type="input" name="username" value=""></td></tr>
<tr><td>Passwort</td></tr>
<tr><td><input type="password" name="password" value=""></td></tr>
</table>
<input type="submit" name="login" value="Anmelden">
</form><br>
<?php
} else {
?>
Angemeldet als: <br> <?php echo $auth->auth["uname"]; ?>
<br><br>
<form method="post" action="front_content.php?idcatart=<?php echo $idcatart; ?>">
<input type="submit" name="logout" value="Abmelden">
</form><br>
<?php
}
?>
</td></tr></table>
zum einloggen und ausloggen funktioniert das ziemlich gut... man kann zwar nur die anpassungen innerhalb des modul outputs vornehmen, aber na ja...

Verfasst: Fr 2. Jan 2004, 13:20
von Mega-Schlunze
Hallo emergence,

Vielen dank für die schnelle Antwort, werde es mal probieren mal sehn wie es funktioniert. :)

Werde dann meine Erfahrungen oder Probleme hier nochmal Posten.

ciao

Verfasst: Fr 2. Jan 2004, 13:46
von Mega-Schlunze
Das Modul funktioniert ganz hervorragend :lol:

Aber wie bekomme ich es hin das wenn sich ein Benutzer anmeldet, er auf eine Bestimmte Seite kommt die von mir vorgeben wird. :?

Verfasst: Fr 2. Jan 2004, 13:54
von emergence
du meinst mittels weiterleitung ?
entweder machs mit nem javascript reload auf die entsprechende kategorie...
oder du änderst das post auf die kategorie die dann erscheinen sollte...

Verfasst: Fr 2. Jan 2004, 14:07
von Mega-Schlunze
Hallo emegence,
entweder machs mit nem javascript reload auf die entsprechende kategorie...
oder du änderst das post auf die kategorie die dann erscheinen sollte...
Bin in anscheinend zu Blöd um zu verstehen was Du mit "post" meint´s,wie und wo ändern.

ciao

Verfasst: Fr 2. Jan 2004, 14:15
von emergence

Code: Alles auswählen

<form method="post" action="front_content.php?idcatart=<?php echo $idcatart; ?>">
anstelle on <?php echo $idcatart; ?> kannst du zB die seite angeben welche überprüfen soll ob das login korrekt ist oder nicht...
also der ausdruck wird durch ne nummer ersetzt...

die andere möglichkeit ist ein javascript reload...
wenn der login korrekt war also nach
<?php
} else {
?>
könnte man
<script>
document.location = "http://anyurl/anyfile.html";
</script>

hineinschreiben... und man würde nach erfolgreichen login dorthin weitergeleitet...

Verfasst: Fr 2. Jan 2004, 14:20
von Mega-Schlunze
Hi emergence,

ich danke Dir vielmals für Deine Unterstützung, jetzt hab ich verstanden was Du meinst (ist ja auch nicht schwer hast mir ja alles aufgeschrieben :) ).

Trotzdem vielen vielen Dank!!
ciao

Verfasst: Fr 2. Jan 2004, 14:29
von Black Widow
Hi Ihrs!

Also ich würd es mit Javascript machen, z.B. so ...

Code: Alles auswählen

...
} else { 
?> 
<script type="text/javascript">
<!--
window.location.href = "<?php echo($sess->url("front_content.php?idcatart=XX")); ?>";
//-->
</script>
<?php 
} 
?> 
Dann brauchst Du nur noch XX durch die ID ersetzen, zu der weitergeleitet werden soll ... aber sei Dir im klaren, dass Du dann den Abmeldebutton nicht mehr hast! Zumindest nicht mehr in dem Login-Modul! Weil sobald der Benutzer angemeldet ist und der Button gezeigt würde, leitest Du ja weiter! Müsstest den dann vielleicht woanders hinmachen ...

Gruß,
Black Widow

Verfasst: Fr 2. Jan 2004, 14:33
von sumsi
ist es möglich folgendes zu schreiben: user müssen sich selbst registrieren, und können sich dann einloggen....

ist das schwer zu schreiben? ich hab leider keine ahnung wo ich anfagen soll/muss

Verfasst: Fr 2. Jan 2004, 14:39
von Black Widow
Klaro, kannst machen!
Schreibst nen Formular mit allen nötigen Angaben ... beim "Submit" schickst Du diese an die aktuelle Seite mit nem zusätzlichen Parameter z.B. signin=1 oder sowas. Das Modul fragt diesen zu Beginn ab und trägt die Daten in die DB, falls dieser Parameter vorhanden ist. Sonst zeigt es halt das Anmeldeformular ...

Ist jetzt SEHR vereinfacht, aber es geht! Solltest die eingegeben Daten natürlich in einem Zwischenschritt noch überprüfen und Fehlermeldungen ausgeben ... z.B. kein Username angegeben oder Name zu kurz, Username bereits vorhanden oder sowas! Und wenn alles ok ist in die DB eintragen!

Gruß.
Black Widow

Verfasst: Fr 2. Jan 2004, 14:46
von Mega-Schlunze
Hi Black Window,

danke für den Tip werde es auch zu gegebener Zeit ausprobieren. Bin gerade dabei die sachen von emergence auszuprobieren. Habe noch ein kleines Problem mit der Nummer wie er geschriebn hat. Das mit dem JavaScript funktioniert ganz gut.
Deine Variante liesst wohl aus der Datenbank eine bestimmte Seite aus wenn ich es richtig verstehe.

ciao

Verfasst: Fr 2. Jan 2004, 15:06
von Black Widow
Nein, das ist das selbe wie von emergence ...
Nur hatte er ja vorgeschlagen, in der action des Formulars ne andere url anzugeben. Das würd ich aber nicht machen ... wäre mir zu verteilt. Ich habe lieber die gesamte Funktionalität in einem Modul (auf einer Seite).

Ich dachte nur, wenn Du nach einem Login weiterleiten willst, dann doch bestimmt auf eine interne Seite (innerhalb von Contenido) und nicht auf eine externe. Und brauchst Du immer eine ID von der Seite, die Du aus Contenido anzeigen möchtest! Und diese ID brauchst Du nur unter XX eintragen! Aus der Datenbank wird da nichts gelesen!!

Gruß,
Black Widow

P.S. Beachte: Widow nicht Window!!! :wink: