 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
17.02.2004, 13:19
|
#1
|
|
TP-Member
Registriert seit: Feb 2004
|
je nach Recht, Button sichtbar oder unsichtbar
Hi, ich hab da ein Problem.
ich habe eine index seite, mit login. Nach erfolgreichem login kommt man auf die Seite pro_index. Je nach Zugriffsrechte soll der upload-Button gezeigt werden, z.B. hat user recht 0, dann sieht er nur die bilder, ect. Hat der user recht 1, kann er auf den Button upload klicken u. er kommt auf die Seite mit dem Formular-upload.
Wie kann ich es anstellen, dass der button sichtbar, bzw. unsichtbar ist?? die loginseite funkt...
|
|
|
17.02.2004, 14:07
|
#2
|
|
TP-Member
Registriert seit: Feb 2004
|
Hi, kann mir denn keiner helfen? Ich denke, ich muss dass mit Sessions machen, aber weiss einer, wie's geht????
|
|
|
17.02.2004, 14:48
|
#3
|
|
TP-Specialist
Registriert seit: Feb 2002
Ort: Wien
|
Nur nicht ungeduldig werden
Am einfachsten machst du die ganzen Login-, Session- und Authentifizierungsdinge mit der Extension "PHP User Authentication". Damit hast du auch die Möglichkeit, je nach Usergruppe auf unterschiedliche Seiten zu verweisen. Die Extension setzt dir per Mausklick auch die PHP-Zeilen für die Session und die Abfrage betreffend Berechtigung auf jede neu erstellte Seite.
Wenn du lieber nur ein Bild je nach Rechtegruppe austauschen willst, dann schreib den Code, der von der Extension erstellt wurde um - frage die Sessionvariable nach der Benutzergruppe ab und gib im Content den Button mit einer if-Abfrage aus oder eben nicht. Reicht das als Anregung?
|
|
|
17.02.2004, 15:39
|
#4
|
|
TP-Member
Registriert seit: Feb 2004
|
Danke @Jürgen
Ich habe den Login mit der Extension gemacht, auch habe ich eine if-abfrage bezügl. rechte.
Aber wie frage ich die Sessionvariable ab??
|
|
|
17.02.2004, 16:25
|
#5
|
|
TP-Specialist
Registriert seit: Feb 2002
Ort: Wien
|
Die Berechtigungsgruppe aus der Extension wird in der Sessionvariable "MM_UserAuthorization" gespeichert. Das kannst du natürlich mit einer einfahen if-Abfrage checken. Für "xyz" musst du dann natürlich die Benutzergruppe eingeben, die den Button sehen darf.
PHP-Code:
if ($_SESSION["MM_UserAuthorization"] == "xyz") {
echo "<input type=\"button\"..... />";
// und alles weitere, das du hier ausgeben willst....
}
Oder wie gesagt - du kannst auch für jede Berechtigungsgruppe auf eine eigene Seite ausgeben lassen. In Verbindung mit den DW-Templates macht das auch oft nicht mehr Arbeit.
|
|
|
17.02.2004, 16:40
|
#6
|
|
TP-Member
Registriert seit: Feb 2004
|
sorry, nochmal... ich hab doch keine Benutzergruppe, sondern lediglich user mit recht 0 oder user mit recht 1.
|
|
|
17.02.2004, 16:50
|
#7
|
|
TP-Specialist
Registriert seit: Feb 2002
Ort: Wien
|
Wenn du in der Session bereits eine Variable mit einem Wert von 0 oder 1 gespeichert hast, fragst du halt diese ab. Wo ist das Problem?
|
|
|
17.02.2004, 17:07
|
#8
|
|
TP-Member
Registriert seit: Feb 2004
|
Hi nein so hab ich's nicht gemeint, sorry...
Ich komm aber doch nicht klar. Mein code:
<?php
session_start();
if ($_SESSION["rechte"] == 1) {
echo "<input name="upload" type="submit" class="text2" id="upload" value="go ">";
}
?>
Und es funkt aber nicht. weisst du wo's problem liegt?
|
|
|
17.02.2004, 17:26
|
#9
|
|
TP-Member
Registriert seit: Feb 2004
|
Also nochmal, sorry ich schaffs alleine nicht
Das ist mein code für den login:
<?php require_once('Connections/user_db.php'); ?>
<?php
// *** Start the session
session_start();
// *** Validate request to log in to this site.
$FF_LoginAction = $HTTP_SERVER_VARS['PHP_SELF'];
if (isset($HTTP_SERVER_VARS['QUERY_STRING']) && $HTTP_SERVER_VARS['QUERY_STRING']!="") $FF_LoginAction .= "?".$HTTP_SERVER_VARS['QUERY_STRING'];
if (isset($HTTP_POST_VARS['Benutzerkennung'])) {
$FF_valUsername=$HTTP_POST_VARS['Benutzerkennung'];
$FF_valPassword=$HTTP_POST_VARS['Passwort'];
$FF_valRechte=$HTTP_POST_VARS['Rechte'];
$FF_fldUserAuthorization="rechte";
$FF_redirectLoginSuccess="pro_index1.php";
$FF_redirectLoginFailed="anmeldung.php";
$FF_rsUser_Source="SELECT user, passwort, rechte ";
if ($FF_fldUserAuthorization != "0") $FF_rsUser_Source .= "," . $FF_fldUserAuthorization;
$FF_rsUser_Source .= " FROM user WHERE user='" . $FF_valUsername . "' AND passwort='" . $FF_valPassword . "'";
mysql_select_db($database_user_db, $user_db);
$FF_rsUser=mysql_query($FF_rsUser_Source, $user_db) or die(mysql_error());
$row_FF_rsUser = mysql_fetch_assoc($FF_rsUser);
if(mysql_num_rows($FF_rsUser) > 0) {
// username and password match - this is a valid user
$MM_Username=$FF_valUsername;
session_register("MM_Username");
if ($FF_fldUserAuthorization != "") {
$MM_UserAuthorization=$row_FF_rsUser[$FF_fldUserAuthorization];
} else {
$MM_UserAuthorization="";
}
session_register("MM_UserAuthorization");
if (isset($accessdenied) && false) {
$FF_redirectLoginSuccess = $accessdenied;
}
mysql_free_result($FF_rsUser);
session_register("FF_login_failed");
$FF_login_failed = false;
header ("Location: $FF_redirectLoginSuccess");
exit;
}
mysql_free_result($FF_rsUser);
session_register("FF_login_failed");
$FF_login_failed = true;
header ("Location: $FF_redirectLoginFailed");
exit;
}
?>
Und in der Seite pro_index soll nun ein button sichtbar, wenn rechte = 1. Unsichtbar, wenn rechte=0
|
|
|
17.02.2004, 18:30
|
#10
|
|
TP-Veteran
Registriert seit: Mar 2002
Ort: Göppingen
|
Hi,
kenn mich zwar nicht aus mit PHP, aber hast Du's schon mal mit Session["MM_UserAuthorization"] im if-clause versucht?
|
|
|
17.02.2004, 20:44
|
#11
|
|
TP-Specialist
Registriert seit: Feb 2002
Ort: Wien
|
AnnaStesia hat recht (@annastesia: seit wann kennst du dich denn in PHP nicht mehr aus?  ), du musst die Variable abfragen, die vom Skript in der Session gespeichert wird, und nicht den Namen des Datenbankfeldes. Außerdem musst du die Anführungszeichen innerhalb der echo-Anweisung quoten:
PHP-Code:
<?php
session_start();
if ($_SESSION["MM_UserAuthorization"] == "gruppenname") {
echo "<input name=\"upload\" type=\"submit\" class=\"text2\" id=\"upload\" value=\"go\">";
}
?>
Aber da ist noch mehr im Argen... im Rest des Codes hast du ziemlich herumgefuhrwerkt, wie ich sehe. Das wäre gar nicht notwendig, da das Skript bereits selbständig die Rechtegruppe abfragt. Es kann daher mit den von dir zusätzlichen Variablen nicht funktionieren. Ich schreibe den Code aber jetzt nicht neu  . Am besten du wendest die Verhalten neu an, legst deine Benutzergruppen innerhalb der Extension an und machst nichts anderes, als die oben beschriebene Abfrage einzubauen  .
In der Datenbank brauchst du die Felder Benutzer, Passwort und Rechtegruppe. Und der Wert, den du in der Rechtegruppe einsetzt, muss identisch sein mit dem Namen, den du in der Extension als Rechtegruppe angibst.
|
|
|
18.02.2004, 12:07
|
#12
|
|
TP-Member
Registriert seit: Feb 2004
|
danke, aber ich glaub ich steh voll auf den Schlauch...
Jürgen, wenn du noch Lust hast, vielleicht kannst mir nochmal helfen. So ich habe jetzt das Verhalten neu gemacht.
Habe mit der Extension LoginUser meine Felder angegeben (user u. Passwort) u. wo sie dann weitergeleitet werden, wenn user erfolgr ist. Bei misserfolg zurück zur Anmeldung. So muss ich dann bei der Extension das "restrict access based on ausfüllen?
Dann habe ich angegeben bei $FF_fldUserAuthorization="rechte"; mein DB Feld heißt rechte.
Dann frage ich ab, ob in der Spalte rechte, gast oder admin.
if ($FF_fldUserAuthorization != "") {
$MM_UserAuthorization=$row_FF_rsUser[$FF_fldUserAuthorization];
} else {
$MM_UserAuthorization="";
}
session_register("MM_UserAuthorization");
if (isset($accessdenied) && false) {
$FF_redirectLoginSuccess = $accessdenied;
}
Was muss ich da noch angeben??
|
|
|
18.02.2004, 13:48
|
#13
|
|
TP-Member
Registriert seit: Feb 2004
|
sorry........sorry.......
Ich glaub ich bin voll auf der Leitung gestanden. Jetzt funkts... Danke für Eure hilfe u. entschuldigung nochmals für meine Blödheit. (ich kann nur den kopf schütteln über mich)
|
|
|
18.02.2004, 14:08
|
#14
|
|
TP-Member
Registriert seit: Feb 2004
|
Nochmal eine kurze Frage,
wie kann ich bei der echo-Anweisung (siehe oben bei der Abfrage der SessionVar.) angeben, dass der sichtbare Button nicht oben bei der Seite erscheinen soll, sondern an eine bestimmt stelle unten im Formular??
|
|
|
18.02.2004, 15:47
|
#15
|
|
TP-Specialist
Registriert seit: Feb 2002
Ort: Wien
|
Du setzt den Block inkl. der <?php... ?> einfach dort hin, wo du ihn haben willst, dann wird an der stelle der HTML-Code für den Button ausgegeben.
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 11:45 Uhr.
|
 |