1. Dashboard
  2. Artikel
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. HTML - Webmaster Forum
  2. Programmierung - Entwickler Forum
  3. PHP Forum - Apache - CGI - Perl - JavaScript und Co.

Hilfe bei Joomla

  • darkdevil
  • 5. September 2007 um 10:09
  • darkdevil
    Anfänger
    Beiträge
    3
    • 5. September 2007 um 10:09
    • #1

    Hallo nach vergebeblichen Stunden des verzeweifelten versuch der Umsetzung wende ich mich an euch , vieleicht habt ihr ja noch eine Idee.

    versuchte Änderung ind der Register.php

    Gleichzeitiges Regestrieren in 2 Tabellen einziger unterschied der einträge in der 2ten Tabelle muss das Feld Passwort im Klartext stehen ( wird seiter nicht anders von dem anderen skript übernommen .


    Funktionierender Teil

    PHP
    <?php
    /**
    * @version $Id: registration.php 7813 2007-06-29 06:04:09Z louis $
    * @package Joomla
    * @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
    * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
    * Joomla! 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' );
    
    
    global $mosConfig_frontend_login;
    
    
    require_once( $mainframe->getPath( 'front_html' ) );
    
    
    if ( $mosConfig_frontend_login != NULL && ($mosConfig_frontend_login === 0 || $mosConfig_frontend_login === '0')) {
    	echo _NOT_AUTH;
    	return;
    }
    		$db="antrix";
            $dbuser="root";
    		$dbpass="150679";
    		$dbhost="localhost";
    		$query = @mysql_connect($dbhost,$dbuser,$dbpass) or die(mysql_error());
    		mysql_query($query);
    		mysql_select_db($db) or die (mysql_error());
            $login=$_POST['username'];
            $password=$_POST['password'];
            $email=$_POST['email'];
            $retype_pass=$_POST['password2'];
            $tbc=$_POST['tbc'];
            $loginlen=strlen($login);
            $passwordlen=strlen($password);
            $emaillen=strlen($email);
            $retypelen=strlen($retype_pass);
            if ($password!==$retype_pass or $passwordlen!==$retypelen)
    			      {
    			  	  print '<font color="red" size="2">[b]The two passwords do not match.Please retype passwords..[/b]</font>';
    				  }
    				else{		
            IF ($loginlen > 0 && $passwordlen > 0 && $emaillen > 0 && $retypelen > 0) 
            {
    		$query = "insert into accounts(login,password,lastip,flags) VALUES ('".$login."','".$password."','".$_SERVER['REMOTE_ADDR']."','".$tbc."')";
    		mysql_query($query);
    		}
    		else 
    		   {
    			IF ($loginlen = 0 or $passwordlen = 0 or $emaillen = 0 or $retypelen = 0)
    						{
    			  	        print '<font color="red" size="2">[b]Please fill in all the                             fields! One or more fields are not filled...[/b]</font>';
    				        };
    		   };
    		   			};
    $result = mysql_query("SELECT * FROM accounts");
    $num_rows = mysql_num_rows($result);
    
    
    switch( $task ) {
    	case 'lostPassword':
    		lostPassForm( $option );
    		break;
    
    
    	case 'sendNewPass':
    		sendNewPass( $option );
    		break;
    
    
    	case 'register':
    		registerForm( $option, $mosConfig_useractivation );
    		break;
    
    
    	case 'saveRegistration':
    		saveRegistration();
    		break;
    
    
    	case 'activate':
    		activate( $option );
    		break;
    }
    
    
    function lostPassForm( $option ) {
    	global $mainframe;
    
    
    	$mainframe->SetPageTitle(_PROMPT_PASSWORD);
    
    
    	HTML_registration::lostPassForm($option);
    }
    
    
    function sendNewPass( $option ) {
    	global $database;
    	global $mosConfig_live_site, $mosConfig_sitename;
    	global $mosConfig_mailfrom, $mosConfig_fromname;
    
    
    	// simple spoof check security
    	josSpoofCheck();
    
    
    	$_live_site = $mosConfig_live_site;
    	$_sitename 	= $mosConfig_sitename;
    
    
    	$checkusername	= stripslashes( mosGetParam( $_POST, 'checkusername', '' ) );
    	$confirmEmail	= stripslashes( mosGetParam( $_POST, 'confirmEmail', '') );
    
    
    	$query = "SELECT id"
    	. "\n FROM #__users"
    	. "\n WHERE username = " . $database->Quote( $checkusername )
    	. "\n AND email = " . $database->Quote( $confirmEmail )
    	;
    	$database->setQuery( $query );
    	if (!($user_id = $database->loadResult()) || !$checkusername || !$confirmEmail) {
    		mosRedirect( "index.php?option=$option&task=lostPassword&mosmsg="._ERROR_PASS );
    	}
    
    
    	$newpass = mosMakePassword();
    	$message = _NEWPASS_MSG;
    	eval ("\$message = \"$message\";");
    	$subject = _NEWPASS_SUB;
    	eval ("\$subject = \"$subject\";");
    
    
    	mosMail($mosConfig_mailfrom, $mosConfig_fromname, $confirmEmail, $subject, $message);
    
    
    	$salt = mosMakePassword(16);
    	$crypt = md5($newpass.$salt);
    	$newpass = $crypt.':'.$salt;
    
    
    	$sql = "UPDATE #__users"
    	. "\n SET password = " . $database->Quote( $newpass )
    	. "\n WHERE id = " . (int) $user_id
    	;
    	$database->setQuery( $sql );
    	if (!$database->query()) {
    		die("SQL error" . $database->stderr(true));
    	}
    
    
    	mosRedirect( 'index.php?option=com_registration&mosmsg='. _NEWPASS_SENT );
    }
    
    
    function registerForm( $option, $useractivation ) {
    	global $mainframe;
    
    
    	if (!$mainframe->getCfg( 'allowUserRegistration' )) {
    		mosNotAuth();
    		return;
    	}
    
    
      	$mainframe->SetPageTitle(_REGISTER_TITLE);
    
    
    	HTML_registration::registerForm($option, $useractivation);
    }
    
    
    function saveRegistration() {
    	global $database, $acl;
    	global $mosConfig_sitename, $mosConfig_live_site, $mosConfig_useractivation, $mosConfig_allowUserRegistration;
    	global $mosConfig_mailfrom, $mosConfig_fromname, $mosConfig_mailfrom, $mosConfig_fromname;
    
    
    	if ( $mosConfig_allowUserRegistration == 0 ) {
    		mosNotAuth();
    		return;
    	}
    
    
    	// simple spoof check security
    	josSpoofCheck();
    
    
    	$row = new mosUser( $database );
    
    
    	if (!$row->bind( $_POST, 'usertype' )) {
    		mosErrorAlert( $row->getError() );
    	}
    
    
    	$row->name		= trim( $row->name );
    	$row->email		= trim( $row->email );
    	$row->username	= trim( $row->username );
    	$row->password	= trim( $row->password );
    
    
    	mosMakeHtmlSafe($row);
    
    
    	$row->id 		= 0;
    	$row->usertype 	= '';
    	$row->gid 		= $acl->get_group_id( 'Registered', 'ARO' );
    
    
    	if ( $mosConfig_useractivation == 1 ) {
    		$row->activation = md5( mosMakePassword() );
    		$row->block = '1';
    	}
    
    
    	if (!$row->check()) {
    		echo "<script> alert('".html_entity_decode($row->getError())."'); window.history.go(-1); </script>\n";
    		exit();
    	}
    
    
    	$pwd 				= $row->password;
    
    
    	$salt				= mosMakePassword(16);
    	$crypt				= md5($row->password.$salt);
    	$row->password		= $crypt.':'.$salt;
    
    
    	$row->registerDate 	= date( 'Y-m-d H:i:s' );
    
    
    	if (!$row->store()) {
    		echo "<script> alert('".html_entity_decode($row->getError())."'); window.history.go(-1); </script>\n";
    		exit();
    	}
    	$row->checkin();
    
    
    	$name 		= trim($row->name);
    	$email 		= trim($row->email);
    	$username 	= trim($row->username);
    
    
    	$subject 	= sprintf (_SEND_SUB, $name, $mosConfig_sitename);
    	$subject 	= html_entity_decode($subject, ENT_QUOTES);
    
    
    	if ($mosConfig_useractivation == 1){
    		$message = sprintf (_USEND_MSG_ACTIVATE, $name, $mosConfig_sitename, $mosConfig_live_site."/index.php?option=com_registration&task=activate&activation=".$row->activation, $mosConfig_live_site, $username, $pwd);
    	} else {
    		$message = sprintf (_USEND_MSG, $name, $mosConfig_sitename, $mosConfig_live_site);
    	}
    
    
    	$message = html_entity_decode($message, ENT_QUOTES);
    
    
    	// check if Global Config `mailfrom` and `fromname` values exist
    	if ($mosConfig_mailfrom != '' && $mosConfig_fromname != '') {
    		$adminName2 	= $mosConfig_fromname;
    		$adminEmail2 	= $mosConfig_mailfrom;
    	} else {
    	// use email address and name of first superadmin for use in email sent to user
    		$query = "SELECT name, email"
    		. "\n FROM #__users"
    		. "\n WHERE LOWER( usertype ) = 'superadministrator'"
    		. "\n OR LOWER( usertype ) = 'super administrator'"
    		;
    		$database->setQuery( $query );
    		$rows = $database->loadObjectList();
    		$row2 			= $rows[0];
    
    
    		$adminName2 	= $row2->name;
    		$adminEmail2 	= $row2->email;
    	}
    
    
    	// Send email to user
    	mosMail($adminEmail2, $adminName2, $email, $subject, $message);
    
    
    	// Send notification to all administrators
    	$subject2 = sprintf (_SEND_SUB, $name, $mosConfig_sitename);
    	$message2 = sprintf (_ASEND_MSG, $adminName2, $mosConfig_sitename, $row->name, $email, $username);
    	$subject2 = html_entity_decode($subject2, ENT_QUOTES);
    	$message2 = html_entity_decode($message2, ENT_QUOTES);
    
    
    	// get email addresses of all admins and superadmins set to recieve system emails
    	$query = "SELECT email, sendEmail"
    	. "\n FROM #__users"
    	. "\n WHERE ( gid = 24 OR gid = 25 )"
    	. "\n AND sendEmail = 1"
    	. "\n AND block = 0"
    	;
    	$database->setQuery( $query );
    	$admins = $database->loadObjectList();
    
    
    	foreach ( $admins as $admin ) {
    		// send email to admin & super admin set to recieve system emails
    		mosMail($adminEmail2, $adminName2, $admin->email, $subject2, $message2);
    	}
    
    
    	if ( $mosConfig_useractivation == 1 ){
    		echo _REG_COMPLETE_ACTIVATE;
    	} else {
    		echo _REG_COMPLETE;
    	}
    }
    
    
    function activate( $option ) {
    	global $database, $my;
    	global $mosConfig_useractivation, $mosConfig_allowUserRegistration;
    
    
    	if($my->id) {
    		// They're already logged in, so redirect them to the home page
    		mosRedirect( 'index.php' );
    	}
    
    
    
    
    	if ($mosConfig_allowUserRegistration == '0' || $mosConfig_useractivation == '0') {
    		mosNotAuth();
    		return;
    	}
    
    
    	$activation = stripslashes( mosGetParam( $_REQUEST, 'activation', '' ) );
    
    
    	if (empty( $activation )) {
    		echo _REG_ACTIVATE_NOT_FOUND;
    		return;
    	}
    
    
    	$query = "SELECT id"
    	. "\n FROM #__users"
    	. "\n WHERE activation = " . $database->Quote( $activation )
    	. "\n AND block = 1"
    	;
    	$database->setQuery( $query );
    	$result = $database->loadResult();
    
    
    	if ($result) {
    		$query = "UPDATE #__users"
    		. "\n SET block = 0, activation = ''"
    		. "\n WHERE activation = " . $database->Quote( $activation )
    		. "\n AND block = 1"
    		;
    		$database->setQuery( $query );
    		if (!$database->query()) {
    			if(!defined(_REG_ACTIVATE_FAILURE)) {
    				DEFINE('_REG_ACTIVATE_FAILURE', '<div class="componentheading">Activation Failed!</div>
    The system was unable to activate your account, please contact the site administrator.');
    			}
    			echo _REG_ACTIVATE_FAILURE;
    		} else {
    			echo _REG_ACTIVATE_COMPLETE;
    		}
    	} else {
    		echo _REG_ACTIVATE_NOT_FOUND;
    	}
    }
    Alles anzeigen

    abfrage der id in tabele user von jomla ( nicht funzender teil )


    Code
    //	$serverid = $query = "SELECT id"
    //	. "\n FROM #__users"
    //	. "\n WHERE username = " . $login
    //	;
    
    
    // $serverid = mysql_result($query("SELECT id FROM jos_users WHERE username = '$login'"));
    
    
    
    
    $query = "SELECT id FROM jos_users WHERE username = '$login'";
    $result = mysql_query($query);
    
    
    $serverid=$result;
    Alles anzeigen

    waren mehrere versuche hab sie mal drin gelassen

    der teil des update der 2ten db tabelle geht nur er trägt immer id (feld acc ) = 0 ein

    Code
    if ($password!==$retype_pass or $passwordlen!==$retypelen)
    			      {
    			  	  print '<font color="red" size="2">[b]The two passwords do not match.Please retype passwords..[/b]</font>';
    				  }
    				else{		
            IF ($loginlen > 0 && $passwordlen > 0 && $emaillen > 0 && $retypelen > 0) 
            {
    		$query = "insert into accounts(acct,login,password,lastip,flags) VALUES ('".$serverid."','".$login."','".$password."','".$_SERVER['REMOTE_ADDR']."','".$tbc."')";
    		mysql_query($query);
    		}
    		else 
    		   {
    			IF ($loginlen = 0 or $passwordlen = 0 or $emaillen = 0 or $retypelen = 0)
    						{
    			  	        print '<font color="red" size="2">[b]Please fill in all the                             fields! One or more fields are not filled...[/b]</font>';
    				        };
    		   };
    		   			};
    $result = mysql_query("SELECT * FROM accounts");
    $num_rows = mysql_num_rows($result);
    
    
    ?>
    Alles anzeigen

    Hoffe jemand hat nen tip von euch

    Dank im voraus Darkdevil

  • K.Y.L.T.
    König(in)
    Beiträge
    1.015
    • 5. September 2007 um 14:31
    • #2

    Theoretisch nicht schwer zu realisieren, nur ich denke ich spreche für alle, dass kein Admin noch sonst jemand das recht haben sollte die Passwörter der User einsehen zu können. Zu oft wird ein und das selbe Passwort benutz, daher solltest du lieber darauf verzichten diese brisanten Daten zu Speichern.

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • darkdevil
    Anfänger
    Beiträge
    3
    • 5. September 2007 um 15:01
    • #3

    Es geht daerum das die user auf einem game server bei der registratur eingetragen werden aber in der db steht lkeider das pw im klar test und den gesammten linux game server umzustricken würe zu schwer ergo ist das server pw eh im klar text und das geht nicht md5 verschlüsselt

  • K.Y.L.T.
    König(in)
    Beiträge
    1.015
    • 5. September 2007 um 15:17
    • #4

    Nur weil das so ist , heißt das nicht , dass dieser Zustand eine absolute Katastrophe ist. Daher stell lieber den Server um als das du die Daten frei rumliegen lässt, so verliert jeglicher Passwortschutz ihren sinn.

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • jojo87
    der/die Göttliche
    Reaktionen
    6
    Beiträge
    3.131
    • 5. September 2007 um 16:43
    • #5

    du kannst auch das passwort vor dem eintrag in die db mit der funktion md5() verschlüsseln.


  • darkdevil
    Anfänger
    Beiträge
    3
    • 5. September 2007 um 17:20
    • #6
    Zitat von jojo87

    du kannst auch das passwort vor dem eintrag in die db mit der funktion md5() verschlüsseln.

    Was mir leider nichts bringt es handelt sich um einen antrix / ascent server un in dessen DB wird das paswort in reintext also unferschlüsslt gespeichert lass ich ich dies nun verschlüsseln wäre der md5 hasch das neue pw auch nicht der sinn der sache und das er md5 verschlüsselte pws annehmen würde datz müsste man die server spftware neu coden

Tags

  • hilfe
  • html
  • server
  • update
  • funktion
  • copyright
  • speicher
  • passwörter
  • daten
  • div
  • schutz
  • passwort
  • script
  • absolute
  • mysql
  • katastrophe
  • verschlüsseln
  • root
  • select
  • passwortschutz
  • md5
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
Zitat speichern