php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.12.2008, 22:24  
Ahrta5
Gast
 
Beiträge: n/a
Standard Inhalte nur für Admins und Sub-Admins anzeigen

Also in meinem Script hab ich eine if-Anweisung die mir mit dem Typ "Admin" nen Link einblendet, aber jetzt möchte ich das das selbe auch funktioniert wenn ich den Typ "Sub-Admin" habe.

Aktuell hab ich es so, klappt auch wunderbar^^

PHP-Code:
if($utyp == "Admin")
    {
    echo 
'<a class="navilink" href="admin/">Adminbereich</a>';
    } 
Das mit dem anderen Typ hab ich mir so gedacht:
PHP-Code:
if($utyp == "Admin""Sub-Admin")
    {
    echo 
'<a class="navilink" href="admin/">Adminbereich</a>';
    } 
Naja so wie ich mir das gedacht habe, funktioniert das nich^^ und da ich noch nicht auf beiden beinen in php stehe, brauch ich eure Hilfe

Ich hab die SuFu und Google gesucht, aber nichts passendes gefunden, außer das mit elseif, aber da muss ich dann ja das gleiche nocheinmal reinschreiben was eingeblendet werden soll, soweit ich das verstanden hab^^

Würde mich über Hilfe freuen


mfg

Geändert von Ahrta5 (13.12.2008 um 10:33 Uhr).
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.12.2008, 22:37  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.847
HPR1974 wird schon bald berühmt werden
Standard

OR heisst die VErknüpfung
HPR1974 ist offline  
Alt 12.12.2008, 22:37  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Hallo Ahrta5,

du kannst auch mehr als eine Bedingung in einem IF verwenden:
Code:
if($typ == 'Admin' OR $typ == 'Sub-Admin') { ...
Oder du verwendest in_array:
Code:
if(in_array($typ, array('Admin', 'Sub-Admin')) { ...
agrajag ist offline  
Alt 12.12.2008, 22:54  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Toller Titel!
Bitte beachte auch du die Forenrichtlinien
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline  
Alt 12.12.2008, 23:46  
Ahrta5
Gast
 
Beiträge: n/a
Standard

@Manko10
Sorry, aber wie soll ich den Thread denn nennen, es ist ein if-Problem also hab ich ihn entsprechend so genannt... in den Regeln steht nichts anderes... soweit ich gesehn hab


Zu meinem Problem...

Also ich würde gerne das mit den Arrays bevorzugen
Das Problem ist, wenn ich das jetzt mit in_array mache, kommt dieser Fehler:
Zitat:
Parse error: syntax error, unexpected '{' in /usr/export/www/hosting/ahrta5/webdesign4/content/user/loginbox.php on line 10
Also das dass { gleich nach den Arrays nicht in den Kram passt^^

Also hier wäre mein Script so wie ich es verwende^^
PHP-Code:
<?
// Userlogin
    
session_start();

  if(
$ustatus == "login")
    {    
    echo 
'<div class="menu">';
    
// --> Nur für Adminrechte
      
if(in_array($utyp, array('Admin''User'))
    {
    echo 
'<a class="navilink" href="admin/">Adminbereich</a>';
    }
    
// --> Adminende
    
echo '<a class="navilink" href="content/user/logout.php">Logout</a>';
    echo 
'</div>';
    }
  else
    {    
    echo 
'<form method="post"action="content/user/login.php">

    <table width="180" border="0" cellpadding="0" cellspacing="0">
          <!--DWLayoutTable-->
          <tr>
            <td width="180" height="20" valign="top" class="logintitle">Name:</td>
      </tr>
          <tr>
            <td height="20" valign="top"><div align="left">
              <input type="text" class="loginfeld" name="loginfeld1" />
              </div></td>
      </tr>
          <tr>
            <td height="20" valign="top" class="logintitle">Password:</td>
      </tr>
          <tr>
            <td height="20" valign="top"><div align="left">
              <input type="password" class="loginfeld" name="loginfeld2" />
              </div></td>
      </tr>
          <tr>
            <td height="20" valign="top"><div align="left">
                  <input type="hidden" name="<?=session_name()?>" value="<?=session_id()?>"><input type="submit" class="loginbutton" value="[Login]" /></form>
              </div></td>
      </tr>
          <tr>
            <td height="40" valign="top" class="Stil3">
            <div align="left"><a class="Stil3" href="?s=register">»&nbsp;Regsitrieren</a><br     />
                <a class="Stil3" href="?s=pwremind">»&nbsp;Passwort vergessen </a></div></td>
      </tr>
          </table>'
;
    }
?>
$utyp = usertyp abgekürtzt... wird in einer Session gespeichert

Also nach dem Fehler funktioniert irgendwie das mit in_array nicht, denn wenn ich es wieder normal mache wie in meinem ersten Post, funktioniert es...
 
Alt 12.12.2008, 23:50  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

if(in_array($utyp, array('Admin', 'User'))

Wenn du drei runde Klammern öffnest, dann musst du auch drei runde Klammern schließen.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
Alt 13.12.2008, 00:08  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

@Ahrta5: „if-Anweisung Problem“ ist ähnlich präzise wie „PHP-Problem“, nur dass der Themenbereich hier auf ein Sprachkonstrukt eingegrenzt wurde, das aber immer noch so viele Möglichkeiten bietet, Fehler zu produzieren, dass du im Leben nicht fertig würdest, wenn du sie alle aufzählen müsstest.
Besser wäre etwas wie „Inhalte in Abhängigkeit des Benutzers anzeigen“ oder „Inhalte nur für Admins und Sub-Admins anzeigen“.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline  
Alt 13.12.2008, 02:56  
Erfahrener Benutzer
 
Registriert seit: 19.03.2007
Beiträge: 176
BlackWolf ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Übrigens: Du solltest - zumindest meiner Meinung nach - eher zum OR-Konstrukt greifen.

AND und OR sind schlicht und einfach grundlegende Syntax in PHP, und diese zu umgehen ist nicht nur langsamer, schlechter lesbar sondern auch schlechter Stil.
Das ist genauso als würdest du sagen "while-Schleifen will ich nicht benutzen".

Wie gesagt: AND und OR sind Grundpfeiler von allen Bedingungen, ich würde sie auf jeden Fall benutzen!

Aber ist natürlich nur meine bescheidene Meinung

mf
BlackWolf ist offline  
Alt 13.12.2008, 04:05  
Neuer Benutzer
 
Registriert seit: 29.09.2008
Beiträge: 16
jabs befindet sich auf einem aufstrebenden Ast
Standard

Davon mal abgesehn:

Zitat:
Zitat von Artha5
PHP-Code:
echo <form method="post"action="content/user/login.php"> .... 
Zitat:
Zitat von Artha5
PHP-Code:
echo '<input type="hidden" name="<?=session_name()?>" value="<?=session_id()?>">';
innerhalb deines 10 Zeilen echos <??> obwohl du noch innerhalb des <? bist
Das geht so erstmal 10 Zeilen oder so. Du benutzt ellenlange Echos,
um reines html auszugeben. (Auch wenns kein HTML wär, würden
sehr viele Editoren das doch farblich sehr eintönig darstellen, was
nicht unbedingt zur besseren Lesbarkeit beiträgt).

Du kannst auch mitten im Code

PHP-Code:
<?php
  
echo "Lol, wassn hier los";
  
?>
  <div>
    <?php echo ermittelnWasHierLosIs(); ?>
  </div>
  <?php
?>
in den HTML Mode switchen.

Oder noch besser du trennst reines HTML komplett von PHP
und versuchst beide Sprachen getrennt in verschiedene Dateien
auszulagern (Google hilft gerne bei den Stichwörtern: "MVC" oder "PHP Template Systeme).

Und Manko10 hat Recht, du solltest vielleicht nochmal
die Forenrichtlinien lesen.

gruß
Benny
__________________
Als Programmierer brauch ich eigentlich nur 3 Tastenkombinationen: Strg + C, Strg + V, und Strg+Z wenn ich merke, dass das Programm nicht so will, wie ich es gern hätte.
jabs ist offline  
Alt 13.12.2008, 10:59  
Ahrta5
Gast
 
Beiträge: n/a
Standard

@Manko10
Ok habe den Titel entsprechend geändert^^ Werde das nächste mal intensiver drauf schaun


@Wolla
Danke für den Tipp jetzt funktioniert es ohne Probleme.


@BlackWolf
Also das mit OR ist so... und zwar immer wenn ich ein "neuen Typ" die Rechte geben möchte, muss ich ja immer...

PHP-Code:
 or $variable 'vergleich' 
...in die if-Anweisung einfügen, das würde ja dann übelst lang, nach z.B. fünf verschiedenen Typen.

Naja und mit dem in_array gehts einfacher finde ich.


@jabs
Also naja ich lerne teils von Tutorial und teils vom eigenen ausprobieren.

Also das hier...
PHP-Code:
echo '<input type="hidden" name="<?=session_name()?>" value="<?=session_id()?>">';
...hab ich von einem Tutorial siehe hier.

Und ja auf die beiden "Php-Schnippsel" hab ich jetzt nicht wirklich geachtet und ich weis auch nicht so recht, wenn ich es jetzt ohne <? und ?> im Script drinne lasse, ob dann meine Session-Funktion noch richtig funktioniert.^^


Und wegen dem meilenweiten Html-Echo in meinem Scritp, naja also ich hab es ja nicht überall so^^ aber ich möcht halt das wenn man nicht den status "login" hat das Loginformular sieht.
Wenn man da dann seine Daten eingibt und bestätigt wird man zur login.php weitergeleitet, die prüft die Daten und setzt die Session mit den variablen dann wird man wieder auf die Startseite weitergeleitet und man sieht den Loginbereich.
Naja und genau so wollt ich es

Also wenn ihr wollt könnt ihr ja mal testen *klick* dann ist es vielleicht etwas verständlicher.

Logindaten:
Kundennummer = 111111111
Password = muster


Auf jeden Fall danke für die Schnelle und ausführliche Hilfe.

mfg
 
 


Themen-Optionen
Thema bewerten
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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Problem: PHP Selbe Datei mehr als 1 Mal soulan PHP Tipps 2008 13 28.11.2008 22:51
Problem Upload mehrere Dateien und schreiben in DB Lapje PHP Tipps 2008 1 22.10.2008 13:12
[Erledigt] Problem bei checked Anweisung mit radio Buttons litterauspirna PHP Tipps 2008 5 28.09.2008 18:39
utf8 Problem (Daten aus DB auslesen) go1denboy PHP Tipps 2008 1 23.09.2008 12:19
Problem mit swfobjects R4v3r JavaScript, Ajax und mehr 8 21.09.2008 14:17
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
update sql anweisung - problem Mach!N3 PHP Tipps 2006 6 09.09.2006 18:44
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
[Erledigt] PHP Upload (Master Value/Local Value Problem) PHP-Fortgeschrittene 5 23.11.2004 07:21
[Erledigt] switch anweisung PHP-Fortgeschrittene 9 17.11.2004 16:38
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit Timestamp! PHP Tipps 2004 24 08.06.2004 19:51


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:31 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum