Login -> Weiterleitung in andere Rubrik

Fragen zur Implementierung und/oder Anpassung von ConPresso 4 werden in diesem Forum diskutiert.
Claudia

Login -> Weiterleitung in andere Rubrik

Beitrag von Claudia »

Hallo,

ich habe mich riesig über die Rubrik-Funktionalität in Conpresso gefreut, so dass ich meine Seiten nun nach und nach in dieser Klasse-Version aufbauen möchte. Doch was vorher in 3.4.. gefunzt hat, geht nun nicht mehr.

In der Datei "rubric_admin.php" habe ich die Zeilen 171 - 174 auskommentiert und eingetragen:

$site = "http://web74.kserver04.de/schule-im/con ... .php?".SID;
if ($_SESSION['SID_loggedin']==1 && ($usergroup_OK==true || $_SESSION['SID_user']['admin']>2)) {
Header("Location: $site");
exit;
}

Leider springt die Seite trotzdem nach erfolgreichem Login zu:
header('Location: '.BASE_ABS.$directory.'/index.php?rubric='.$cpoRubric['id'].'&'.SID);

Gibt es noch Geheimverstecke, die zusätzlich ändern muss?


Viele Grüße
Claudia
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

rubric_admin.php wird in der aktuellen Version nicht mehr dafür benutzt.

Probiere es mal in Zeile 332 von member.php, das das alte login.php abgelöst hat und die Prüfung und Weiterleitung nicht mehr rubric_admin.php überlässt sondern dies alles selbst erledigt und noch ein paar Optionen mehr bietet... :wink:
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Claudia

Beitrag von Claudia »

Jau, es funzt! :D (In Zeile 279, denn es gibt keine über 300) Herzlichen Dank!

Jetzt möchte ich die usergroups an verschiedene Adressen weiterleiten. Was ist den jetzt die Variabel für: "$form_userlogin"?


Viele Grüße
Claudia
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Claudia hat geschrieben:Jau, es funzt! :D (In Zeile 279, denn es gibt keine über 300) Herzlichen Dank!
Dann doch bitte immer ganz genau angeben, welche Version man/frau benutzt :!:

Die aktuelle Version hat 347 Zeilen!

Deine dürfte die 4.0.0 vom 12.7. sein, denn die Version davor hatte 280 Zeilen, die danach eben 347...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Claudia hat geschrieben:Was ist den jetzt die Variabel für: "$form_userlogin"?
Muss ich jetzt sämtliche 3.4.x-Versionen durcharbeiten, um zu finden, wo und wofür Du "$form_userlogin" dort benutzt. Auf irgendwelche Aktionen scheinst Du Dich ja zu beziehen, oder?

Eigentlich bräuchtest Du ja nur die Gruppen-ID aus der Session lesen und gut ist...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Gast

Beitrag von Gast »

woher bekomme ich die gruppen-id? folgendes geht jedenfalls nicht.

case 'jumptorubric':
$usergroups_id = $db->v('usergroups_id');
$ident = substr($usergroups_id,6,1);

if ($ident == "E") {$site = "http://conpresso.de";}
else {$site = "http://www.schuleonline.org";}

header("Location: $site");
break;

:?
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Über welche Datei in welcher Version reden wir jetzt???

Mit welcher Abfrage hast Du diesen Datenbankwert ermittelt, der Grundlage für die Prüfung ist?

Wenn Dich das hier
Eigentlich bräuchtest Du ja nur die Gruppen-ID aus der Session lesen und gut ist...
interessiert, dann wäre das

Code: Alles auswählen

<?php $_SESSION['SID_user']['usergroups_id'] ?>
... zumindest in der aktuellen 4.0.1 und dort ganz einfach in member.php zu identifizieren...

Und wieso glaubst Du in einer ID (Integer = Zahl) den Buchstaben E zu finden?
Was in der Session steht kannst Du einfach in der Sessions-Tabelle nachlesen...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Gast

Beitrag von Gast »

der user gehört zu einer usergroup, die usergroup habe ich in conpresso definiert und in seiner bezeichnung findet sich der buchstabe "E". eine andere usergruppe hat in ihrer bezeichnung den buchstaben "L". damit ordne ich die usergruppen ein und leite sie auf ihre entsprechenden seiten weiter.

z. bsp.: E-> www.conpresso.de, L -> www.schuleonline.org usw.

inzwischen bin ich bei 4.0.1 angelangt brauche eine variable für den 7. buchstaben aus der usergroup_id.

wenn du einen tipp für mich hättest, würde ich mich sehr freuen ...
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Die Usergroup-ID ist eine Zahl, also frage die Zahl ab!

Code: Alles auswählen

<?php
switch($_SESSION['SID_user']['usergroups_id']) {
case 1: 
  $site = "http://conpresso.de";
  break 1;
case 2: 
  $site = "http://www.schuleonline.org";
  break 1; 

  // ... und hier können noch viel mehr Gruppen-IDs stehen

header("Location: $site"); 
?>
Wenn Du auf Buchstaben bestehst, dann musst Du eben vorher anhand der ID den Namen der Gruppe ermitteln.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Gast

Beitrag von Gast »

Das will nicht. Wenn ich auf "senden" klicke, wird das selbe Formular ohne Fehlermeldung nochmal aufgerufen. Habe ich mal wieder 'was übersehen?

case 'jumptorubric': // {{{
// hier müssen benutzer authentifiziert und zugeordnet werden
// $usergroups_id = $db->v('usergroups_id');
// $ident = substr($usergroups_id,6,1);
// echo "IDENT= ".$ident."<br>";

switch($_SESSION['SID_user']['usergroups_id']) {
case 1:
$site = "http://conpresso.de";
break 1;
case 2:
$site = "http://www.schuleonline.org";
break 1;}

// if ($ident == "E") {$site = "http://conpresso.de";}
// else {$site = "http://www.schuleonline.org";}

header("Location: $site");
break; // }}}
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Ich würde mal darauf tippen, daß der angemeldete User nicht der usergroup 1 oder 2 angehört?

vielleicht schreibst Du noch dazu

Code: Alles auswählen

<?php

default:
  echo "Dieser User mit der Usergroup-ID ". $_SESSION['SID_user']['usergroups_id'] ." gehört keiner bekannten Gruppe an";

?>
dann kann man zumindest mal die ID lesen...

ein

Code: Alles auswählen

<?php

echo $site;

?>
könnte auch nicht schaden, wenn man wissen will, was da eigentlich passiert und was nicht...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Nach einer Runde mit meinen kleinen schwarzen Monstern würde ich folgendes vorschlagen:

Mich stört grundsätzlich Deine Hardcodierung von Gruppen und Weiterleitungszielen!

Dafür sollte man im höchstkomfortablen phpmyadmin eine Tabelle anlegen mit Gruppen-IDs und Weiterleitungszielen und diese mit einer simplen Query abfragen, um das Ziel dann zu erhalten.

Dadurch muß man nur einmal codieren und später nur noch eine Tabelle pflegen...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Gast

Beitrag von Gast »

Ein Tippfehler hatte sich dazwischen geschlichen. Nach den ganen Tests bin ich nun auf den Trichter gekommen, dass ich doch die Buchstaben brauche. Das Auslesen der usergroup bzw. des 7. Buchstabens kappt nicht. Es wird immer angezeigt: "IDENT="

case 'jumptorubric': // {{{

// usergroup ermitteln
$query = "SELECT usergroup "
."FROM ".CPO_USERGROUPS." "
."WHERE id = ".(int)$_SESSION['SID_user']['id'];
$db->query($query);

// hier müssen benutzer authentifiziert und zugeordnet werden
$usergroup = $db->v('usergroup');
$ident = substr($usergroup,6,1);
echo "IDENT= ".$ident."<br>";
$site = "http://www.schuleonline.org";

header("Location: $site");
break; // }}}

Wobei ich sagen muss, dass das geraten ist:
id = ".(int)$_SESSION['SID_user']['id'];

Mit der Bitte um Hilfe wünsche ich Euch erstmal eine gute Nacht,
Claudia
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Probiere das Ganze doch mal mit

$_SESSION['SID_user']['usergroups_id']

habe ich jetzt ja erst 3mal in den vorigen Postings geschrieben...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Gast

Beitrag von Gast »

Oh, je. Ich wollte niemanden verärgern. Sorry. In der Tabelle CPO_USERGROUP heißt 's eben nur noch id und nicht mehr usergroups_id. Dummer Fehler.

Doch auch mit der 'richtigen' Variablen klappt es nicht. Es wird immer wieder derselbe user ausgelesen, egal mit welchem Benutzernamen ich mich anmelde.

Nur wenn ich die usergroups_id manuell in "member.php" eintrage geht es. Könnte ich den Meister höflich anfragen, wie ich die usergroups_id sonst noch ansprechen kann? Hier ist mein Fall:


case 'jumptorubric':
// id ermitteln
$sql = "SELECT * FROM ".CPO_USER."
WHERE usergroups_id = ".(int)$_SESSION['SID_user']['usergroups_id'];
$result = mysql_query($sql);
$data = mysql_fetch_object($result);
$user = $data->user;
echo "USERGROUPS_ID = $user";
break;
Antworten