php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.12.2008, 12:34  
Neuer Benutzer
 
Registriert seit: 08.12.2008
Beiträge: 9
Ayane befindet sich auf einem aufstrebenden Ast
Standard

die admin.php enthaelt ein kleines untermenu. Zwei varianten hab ich mir ueberlegt...
Entweder, ich brauche die $login um den Rang zu ueberpruefen um dem eingeschraenkten nutzer nicht alle Links sichtbar zu machen (also irgenwas mit SELECT.. FROM.. WHERE accessLvl = "$login")
oder um auf einer der includierten Seiten einen Teil fuer den eingeschraenkten nutzer auszublenden (if ($login == 2) { //display} else {//display}
Ayane ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 10.12.2008, 12:35  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Ich meinte eigentlich "zeig den Code"
David ist offline  
Alt 10.12.2008, 12:43  
Neuer Benutzer
 
Registriert seit: 08.12.2008
Beiträge: 9
Ayane befindet sich auf einem aufstrebenden Ast
Standard

Ups, sry

PHP-Code:
<?    
$result 
$db->query("SELECT a_sidemenu.link, sitename.sitename, a_sidemenu.siteID, sitename.contID 
                FROM sitename, a_sidemenu
                WHERE (a_sidemenu.siteID=sitename.siteID AND a_sidemenu.obermenu='$id') AND a_sidemenu.accessLvl='$login' 
                ORDER BY a_sidemenu.pos"
);                        
echo 
'<ul>';
while(list(
$link$sitename$siteID$contID)=$result->fetch_row())
{    
    echo 
'<li><a href="index2.php?site='.$link.'&id='.$id.'&contid='.$contID.'">'.$sitename.'</a></li>';    
}
echo 
'</ul>';
?>
Es wird nach dem einloggen bloederweise beiden der Menupunkt Rechte Verwalten angezeigt...
Ayane ist offline  
Alt 10.12.2008, 12:45  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Dann da mal wieder das gleiche Spiel...
PHP-Code:
<?php
echo '<h1>Debug 3: '__FILE__'@'__LINE__'</h1><pre>login:'$login"\n"var_dump(debug_backtrace()); echo '<pre>'; die;
$result $db->query("SELECT a_sidemenu.link, sitename.sitename, a_sidemenu.siteID, sitename.contID
                FROM sitename, a_sidemenu
                WHERE (a_sidemenu.siteID=sitename.siteID AND a_sidemenu.obermenu='$id') AND a_sidemenu.accessLvl='$login'
                ORDER BY a_sidemenu.pos"
);
echo 
'<ul>';

btw: Wirft $db->query() eine Exception oder wie kannst Du einen eventuellen Fehler-Status abfragen?
David ist offline  
Alt 10.12.2008, 12:55  
Neuer Benutzer
 
Registriert seit: 08.12.2008
Beiträge: 9
Ayane befindet sich auf einem aufstrebenden Ast
Standard

Ohje... das ist mir jetzt aber uebelst peinlich
Hab grad gemerkt dass das ganze an nem denkfehler meiner Seits lag... *schaem* Jetzt hast du dir so viel Muehe gemacht und dann das Trotzdem vielen Dank. Jetzt hab ich Methoden zur Ueberpruefung kennen gelertn

Wegen dem $db... Ich hab in der Uni die Datenbank abfrage nur mit dem mysqli Objekt gelernt (Sagt dir das was?) und nicht mit der standart Methode mysql_connect etc...
Ich weiss nicht genau wie du das mit Exception meinst... Wenn ich einen Fehler in der Anfrage habe, dann kommt immer ein Fehlercode wie der hier:
Zitat:
Fatal error: Call to a member function fetch_row() on a non-object in /var/www/vhosts/Meine.Domain.com/httpdocs/abschlussprojekt/admin/links/admin/admin.php on line 15
Ist das, was du meinst, oder hab ich dich da Falsch verstanden?

Geändert von Ayane (10.12.2008 um 12:58 Uhr).
Ayane ist offline  
Alt 10.12.2008, 12:59  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Naja, damit rennt der Code in einen "fatal error". Nicht soo schön, denn darauf kann das Skript nicht mehr reagieren, PHP macht an der Stelle einfach Schluss.
mysqli wirft keine Exceptions, sondern signalisiert den Status über den Rückgabewert. In Deinem Fall wäre das dann
PHP-Code:
$result $db->query(...);
if ( 
false===$result ) {
  die(
'Fehler während der Abfrage. ' $db->error);

Mit diesem Code bricht das Skript zwar auch einfach nur mit einer (aber immerhin MySQL-spezifischen) Fehlermeldung ab, aber da könnte auch etwas ganz anderes stehen und passieren - wenn Du willst.

Geändert von David (10.12.2008 um 13:06 Uhr).
David ist offline  
Alt 10.12.2008, 13:06  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von Ayane Beitrag anzeigen
Trotzdem vielen Dank. Jetzt hab ich Methoden zur Ueberpruefung kennen gelertn
In den Praxisseminaren zu meiner Uni-Zeit gab es Punktabzug, wenn sich noch Spuren von so einem printf/echo-Debugger im Code finden ließen. Irgendwie kommt man damit zwar ans Ziel. Aber wirklich gut ist das nicht. Besser ist ein echter Debugger. Man muss keinen Code manuell einfügen und wieder entfernen. Und man ändert den Programmablauf nicht so stark (manchmal schon, aber das liegt in der Natur der Sache). Mein persönlicher Favorit dafür ist zur Zeit Netbeans 6.5. Aber dazu sollte ich noch anmerken, dass kein aktiver PHP-Entwickler bin - Praxiserfahrung also nahe 0.
David ist offline  
Alt 10.12.2008, 13:13  
Neuer Benutzer
 
Registriert seit: 08.12.2008
Beiträge: 9
Ayane befindet sich auf einem aufstrebenden Ast
Standard

hmm, danke fuer den Hinweis..! ich werd den debugger mal ausprobieren. Vielleicht hilft der mir ja beim naechsten mal weiter
Ayane ist offline  
 


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
Variablen problem Basti-asd Datenbanken 6 29.10.2007 12:56
Variablen problem Basti-asd Datenbanken 0 28.10.2007 15:07
unerklärliches Leeren von Variablen KuShi PHP Tipps 2007 2 08.07.2007 15:19
Problem mit globalen Variablen noBody PHP Tipps 2007 9 29.03.2007 12:35
Teil einer Variablen mit einer Variablen ersetzen ? simsalabim PHP Tipps 2007 11 20.03.2007 20:36
Variablen Problem Andree PHP Tipps 2006 3 28.04.2006 02:17
Problem mit INSERT und variablen. dattelpalme PHP Tipps 2006 1 10.04.2006 22:12
Problem mit Sichtbarkeit von Variablen PHP Tipps 2005-2 9 19.08.2005 01:03
problem mit session bzw übergeben von variablen! PHP Tipps 2005 21 16.05.2005 03:20
Problem mit übergabe von Variablen! stefan-miti PHP Tipps 2005 7 11.02.2005 18:54
Variablen übergeben bzw. auslesen? PHP Tipps 2005 4 30.01.2005 03:56
[Erledigt] register globals off bei variablen Variablen... PHP Tipps 2005 4 25.01.2005 17:50
Problem mit Sessions in mehreren Frames Chr!s PHP Tipps 2004 10 30.10.2004 18:52
Variablen aus den Formular sind nicht mehr verfügbar PHP Tipps 2004 6 30.10.2004 13:31
Problem mit zwei variablen - löschen - MySQL PHP Tipps 2004 9 17.10.2004 20:57


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:27 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