Avatar billede extension Nybegynder
13. september 2008 - 14:07 Der er 18 kommentarer

Ændring af enkel login modul

Hej, jeg har et Joomla modul (Open Source) som jeg ønsker en mindre forandring til.
Modulet er et login modul der åbner et nyt site og samtidig logger ind på sited.
ØNSKER: Jeg vil gerne kunne åbne 3 sites samt logge ind på disse sites med samme username samt samme password. Er der en der kan hjælpe mig?
Scriptet ser sådan ud:
<?php
/**
* @version $Id: mod_jflogin.php Wed Apr 05 10:46:26 WST 2006 shaynebartlett
* @package J!FAQ
* @copyright Copyright (C) 2005 theJ!factory. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* J!Login is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

// NO DIRECT ACCESS
defined( '_VALID_MOS' ) or die( 'Restricted access' );

$return = mosGetParam( $_SERVER, 'REQUEST_URI', null );
// converts & to &amp; for xtml compliance
$return = str_replace( '&', '&amp;', $return );

$url = $params->def( 'url', $return );
$user_label = $params->def( '_user', $return );
$user_field = $params->def( 'user', $return );
$pass_label = $params->def( '_pass', $return );
$pass_field = $params->def( 'pass', $return );
$login = $params->def( 'login', $return );
$class = $params->def( 'moduleclass_sfx', $return );
?>

<div title="JF login" align="left">
<form action="<?php echo $url; ?>" target="_blank" method="post">
        <label for="<?php echo $user_field; ?>"><?php echo $user_label; ?></label>
        <br />
        <input accesskey="U" id="<?php echo $user_field; ?>" tabindex="1" name="<?php echo $user_field; ?>" type="text" alt="username" size="20" class="inputbox<?php echo $class; ?>"/>
        <br />
        <label for="<?php echo $pass_field; ?>"><?php echo $pass_label; ?></label>
        <br />
        <input accesskey="P" id="<?php echo $pass_field; ?>" tabindex="2" name="<?php echo $pass_field; ?>" type="password" class="inputbox<?php echo $class; ?>" alt="password" size="20"/>
        <br />
        <input tabindex="3" type="submit" name="Submit" value="<?php echo $login; ?>" class="button<?php echo $class; ?>" />
</form>
</div>

NB: Der er også en xml fil med, men denne er normalt kun til brug ved installering af moduler.
Avatar billede jakobdo Ekspert
13. september 2008 - 14:15 #1
Det var godt nok en dårlig forklaring.
Så hvis du starter med en forklaring, som folk rent faktisk forstår, så tror jeg du vil have bedre muligheder for at få et svar som du kan bruge til noget. :o)
Avatar billede extension Nybegynder
13. september 2008 - 14:26 #2
Muligvis en dårlig forklaring -men det er den funktion "login modulet" foretager.
Avatar billede jakobdo Ekspert
13. september 2008 - 14:32 #3
Men når du skriver logge ind på 3 sites, hvad mener du så ?
Avatar billede extension Nybegynder
13. september 2008 - 14:37 #4
Modulet har 3 felter til indskrivning af henholdsvis link til den side der skal åbnes (http://www....osv
1 felt til brugernavn samt 1 felt til password. scpiptet genererer således et loginmodul på min side, hvor brugeren indtaster brugerdata... -og wupti, en ny side åbner og brugeren er allerede logget ind. Jeg ønsker "blot" at der åbnes 3 forskellige sider i samme login.  www.1  + www.2  + www.3
Vh
Boris
Avatar billede extension Nybegynder
13. september 2008 - 14:46 #5
Jeg vil gætte på at det er indholdet af dette felt (Login Redirection URL), der foretager åbningen af den nye side, da der er heri jeg skriver web adressen på den side jeg ønsker at åbne og samtidig logge ind på.
<form action="<?php echo $url; ?>" target="_blank" method="post">
- blot ville jeg gerne kunne skrive indtil 3 link-adresser istedet for kun 1.

Vh
Boris
Avatar billede extension Nybegynder
13. september 2008 - 14:53 #6
Der burde måske være 3 URL felter til www adresserne samt at scriptet checker om URL felt 1  =  IF "not empty" run script, check URL felt 2 og 3 end script -eller hvad ved jeg.
Avatar billede jakobdo Ekspert
13. september 2008 - 15:04 #7
er det 3 forskellige sider, altså:

www.side1.dk
www.side2.net
www.side3.com

?
Hvis ja, så skal du måske lave det med javascript, som så poster login info til alle 3 sider.
Avatar billede extension Nybegynder
13. september 2008 - 15:13 #8
Ja, der er er tale om at åbne 3 sider på een gang -og så logge ind automatisk via scriptet/modulet. Håbede blot at scriptet kunne modificeres.

Vh
Boris
Avatar billede jakobdo Ekspert
13. september 2008 - 15:30 #9
Du kan ikke lave en post til 3 sider.
Avatar billede jakobdo Ekspert
13. september 2008 - 15:30 #10
Med mindre du anvender noget javascript.
Avatar billede w13 Novice
13. september 2008 - 15:38 #11
Det kunne muligvis gøres sådan her med JS:

<script type="text/javascript">
var aSubmit = ["side1.php", "side2.php", "side3.php"];
function SubmitMore(oForm)
{
  oForm.setAttribute("target", "_blank");
  for(var i = 0; i<aSubmit.length; i++)
  {
    if(i = aSubmit.length - 1)
      oForm.setAttribute("target", "_self");
    oForm.setAttribute("action", aSubmit[i]);
    oForm.submit();
  }
}
</script>

<form id="form1" method="post">
  ...
  <input type="button" value="Log ind" onclick="SubmitMore(document.getElementById('form1'))">
</form>
Avatar billede extension Nybegynder
13. september 2008 - 15:53 #12
Skal dette javascript "kobles" sammen med det nuværende modul-script, eller skal der så laves et helt nyt modul med dette javascript alene?
Avatar billede jakobdo Ekspert
13. september 2008 - 16:00 #13
Det bør du kunne koble samme med det nuværende.
Avatar billede extension Nybegynder
13. september 2008 - 16:23 #14
Dette strækker mine evner vist ikke til. Når mit nuværende login modul er installeret, er der (i administrations panelet) et Login Redirection URL felt der skal udfyldes samt et par "oversættelses felter": Username field label, Password field label samt Submit Text, der skal udfyldes med dansk tekst. Modulet på selve bruger-siden på sitet viser så disse felter.

Det modificerede login modul, skal vel indeholde 3 x Login Redirection URL felter, samt felterne fra det oprindelige modul... -eller?
Avatar billede w13 Novice
13. september 2008 - 16:35 #15
Så har du vel ikke adgang til at foretage en sådan ændring.

Mit eksempel viste, hvordan HTML-koden for din form skulle komme til at se ud.
Avatar billede extension Nybegynder
13. september 2008 - 17:01 #16
Det er ikke adgangstilladelserne der mangler  -det er evnerne!
Vh
Boris
Avatar billede w13 Novice
13. september 2008 - 17:08 #17
Ok. Men hvis du i koden indsætter dette et vilkårligt sted:

<script type="text/javascript">
var aSubmit = ["side1.php", "side2.php", "side3.php"];
function SubmitMore(oForm)
{
  oForm.setAttribute("target", "_blank");
  for(var i = 0; i<aSubmit.length; i++)
  {
    if(i = aSubmit.length - 1)
      oForm.setAttribute("target", "_self");
    oForm.setAttribute("action", aSubmit[i]);
    oForm.submit();
  }
}
</script>

Og retter submitknappen til:

<input type="button" value="Log ind" onclick="SubmitMore(this.form)">

Hvis du ikke kan det, er der desværre nok ikke noget at gøre for at løse dit problem.
Avatar billede extension Nybegynder
13. september 2008 - 17:44 #18
Det er meget tæt på at lykkes nu, men scriptet åbner kun den sidste URL (side3.php) men der logges korrekt ind på siden.

Vh
Boris
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester