[BUG] BackendLogin Maske im Frontend

Gesperrt
Brazo Alkher
Beiträge: 103
Registriert: Fr 28. Jan 2005, 15:15
Wohnort: Unna
Kontaktdaten:

[BUG] BackendLogin Maske im Frontend

Beitrag von Brazo Alkher » Mi 29. Aug 2007, 11:00

Contenido 4.6.15

wenn man im Backend am pflegen ist und dann z.B. im Firefox ein weiteren Tab auf macht um sich die Sachen im Frontend anzuschauen bekommt man statt der Inhaltsseite die Contenido (Backend) Login Maske angezeigt. Hier kann man aber einen Backend User wie man will eintippen. Man kommt nicht weiter. Problemlösung ist es die Cookies zu löschen oder alle Browserfenster zu schliessen. Da dieses nicht praktikabel ist, habe ich einige Dateien von Contenido angepasst, so dass der Pfad des Cookies für das Backend auch nur für das Backend gesetzt wird.

Nachfolgend die Anpassungen:

Dies sind 3 Dateien. Alle im conlib Ordner.

local.php ab Zeile 114: Austausch / Anpassung der Klasse "Contenido_Session"

Code: Alles auswählen

class Contenido_Session extends Session
{
	var $classname		= 'Contenido_Session';

	var $cookiename		= 'contenido';		## defaults to classname
	var $magic		= '123Hocuspocus';	## ID seed
	var $mode		= 'get';		## We propagate session IDs with cookies
	var $fallback_mode	= 'cookie';
	var $lifetime		= 0;			## 0 = do session cookies, else minutes
	var $that_class		= 'Contenido_CT_Sql';	## name of data storage container
	var $gc_probability	= 5;


	##################################################
	# Korrektur des Cookiepfades fürs Backend
	##################################################
	var $cookie_path	= null;

	function init($cfg_path)
	{
		$this->cookie_path	= '/';

		if (preg_match("/^(http\:\/\/)?(www\.)?((([a-z0-9]([\-_\.\~]*[a-z0-9])*)\.)*(([a-z0-9]([\-_\.\~]*[a-z0-9])*)\.?([a-z0-9]{2,4})?))\/?/i", $cfg_path, $regMatch))
		{
			$this->cookie_path	= '/'.str_replace($regMatch[0], '', $cfg_path);
		}
	}


	function delete ()
	{
		cInclude('classes', 'class.inuse.php');
		$col = new InUseCollection;
		$col->removeSessionMarks($this->id);

		parent::delete();
	}
}
page.inc ab Zeile 12: Austausch / Anpassung der Funktion "page_open()"

Code: Alles auswählen

function page_open($feature)
{
	global $_PHPLIB;

	global $cfg;

	# enable sess and all dependent features.
	if (isset($feature['sess']))
	{
		global $sess;
		$sess = new $feature['sess'];
		switch ($feature['sess'])
		{
			case 'Contenido_Session':
				$sess->init($cfg['path']['contenido_fullhtml']);
				break;
		}
		$sess->start();
		
	# ab hier geht es normal mit 
	#   if (isset($feature['auth']))
	# weiter
session.inc Anpassung der Klasse "Session"

nach

Code: Alles auswählen

var $cookie_domain = "";
folgendes anhängen:

Code: Alles auswählen

	var $cookie_path = "/";		## Der Pfad auf dem Server, für welchen
					## das Cookie verfügbar sein wird.
Austausch von Zeile 125 bis 151 durch:

Code: Alles auswählen

		switch ($this->mode)
		{
			case 'cookie':
				if ( $newid && ( 0 == $this->lifetime ) )
				{
					SetCookie($this->name, $id, 0, $this->cookie_path, $this->cookie_domain);
				}
				if ( 0 < $this->lifetime )
				{
					SetCookie($this->name, $id, time()+$this->lifetime*60, $this->cookie_path, $this->cookie_domain);
				}

				// Remove session ID info from QUERY String - it is in cookie
				if ( isset($QUERY_STRING) && ("" != $QUERY_STRING) )
				{
					$QUERY_STRING = ereg_replace(
						"(^|&)".quotemeta(urlencode($this->name))."=".$id."(&|$)",
						"\\1", $QUERY_STRING);
				}
				break;
			case 'get':
				if (isset($QUERY_STRING) && ('' != $QUERY_STRING))
				{
					$QUERY_STRING = ereg_replace(
						"(^|&)".quotemeta(urlencode($this->name))."=".$id."(&|$)",
						"\\1", $QUERY_STRING);
				}
				break;
			default:
				;
				break;
		}
Austausch von Zeile 159 bis 173 [function put_id()] durch:

Code: Alles auswählen

	function put_id()
	{
		global $_COOKIE;

		switch ($this->mode)
		{
			case "cookie":
				$this->name = $this->cookiename == "" ? $this->classname : $this->cookiename;
				SetCookie($this->name, "", 0, $this->cookie_path, $this->cookie_domain);
				$_COOKIE[$this->name] = "";
			break;

			default:
				// do nothing. We don't need to die for modes other than cookie here.
				break;
		}
	}

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Mi 29. Aug 2007, 11:04

ich fürchte, da liegt mindestens auch ein problem bei deinem browser vor. bei mir funktioniert das nämlich auch ohne anpassungen problemlos.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mi 29. Aug 2007, 11:35

Yep, man muss nur die übergeordneten Links verwenden (also z.B. rechte Maustaste auf Content und "Öffnen in neuem Tab").

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

Brazo Alkher
Beiträge: 103
Registriert: Fr 28. Jan 2005, 15:15
Wohnort: Unna
Kontaktdaten:

Beitrag von Brazo Alkher » Mi 29. Aug 2007, 13:00

und das soll ich meinen Kunden sagen????

da packe ich lieber meinen Patch auf deren contenido Installation und die und ich haben Ruhe :-)

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Mi 29. Aug 2007, 13:25

nun, dafür hat man ja die vorschau. wenn ein artikel nicht online ist, wirst du ihn im frontend auch nicht anschauen können.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

Brazo Alkher
Beiträge: 103
Registriert: Fr 28. Jan 2005, 15:15
Wohnort: Unna
Kontaktdaten:

Beitrag von Brazo Alkher » Mi 29. Aug 2007, 13:29

schon klar

aber das ist alles keine Lösung für ein existierendes Problem.
das sind alles Vorschläge bzw. Verfahrensweisen um das Problem zu umgehen.

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Mi 29. Aug 2007, 13:39

auf die gefahr hin, dass ich nerve: aber das problem, welches wir offenbar umgehen möchten, existiert in wirklichkeit - mindestens bei mir auf linux, windows und mac - weder in dieser noch in einer anderen form.

nichts für ungut... :roll:
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

wosch

Beitrag von wosch » Mi 29. Aug 2007, 14:19

Brazo Alkher hat geschrieben:aber das ist alles keine Lösung für ein existierendes Problem.
das sind alles Vorschläge bzw. Verfahrensweisen um das Problem zu umgehen
Allerdings habe ich bei mir ebenfalls KEIN Problem.
Ich kann mit dem FF in einem Tab im Backend lustig editieren und im anderen Tab im Frontend das Ergebnis betrachten.
Bei mir kommen sich im FF oder im Opera Backend und Frontend nicht in die Quere.

Dalamar
Beiträge: 298
Registriert: Di 16. Nov 2004, 15:43
Wohnort: Arnstadt / Thüringen
Kontaktdaten:

Beitrag von Dalamar » Mi 29. Aug 2007, 15:23

Bei mir funzt das auch wunderbar...

Christian
Beruflich: eComradeGroup und Media Atoll
Privat: Fantasybuch.net ;)

Gesperrt