php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.09.2006, 11:25  
c!w
Neuer Benutzer
 
Registriert seit: 08.05.2006
Beiträge: 9
c!w
Standard Logischer Ausdruck aus DB überprüfen

Hallo,
Folgende Ausgangslage: In einem DB-Feld speichere ich gewisse Bedingungen/Ausdrücke. Beispiel:
$ausdruck = "$foo > 1";

Jetzt möchte ich im Code diesen Ausdruck überprüfen, natürlich mit eingesetzten Werten für die Variabeln.

if ($ausdruck) {
usw...
So gibt es ja immer true aus, da es den String ansich übrprüft und nicht den Ausdruck.

Hat jemand eine Idee?
c!w
c!w ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 12.09.2006, 11:29  
Erfahrener Benutzer
 
Registriert seit: 03.01.2006
Beiträge: 253
CC84
Standard

das wird nur mit eval() gehen, die performance ist dabei aber nicht so der Knüller.
CC84 ist offline  
Alt 12.09.2006, 11:34  
Erfahrener Benutzer
 
Registriert seit: 10.09.2006
Beiträge: 101
XraYSoLo befindet sich auf einem aufstrebenden Ast
XraYSoLo eine Nachricht über ICQ schicken XraYSoLo eine Nachricht über MSN schicken XraYSoLo eine Nachricht über Skype™ schicken
Standard

na ja, man sollte sih folgendes merken:

PHP-Code:
eval() -> $evil 
die funktion würde ich wegen dadurch entstehender sicherheitslücken meinerseits über alles vermeiden.

Nils aka XraYSoLo
XraYSoLo ist offline  
Alt 12.09.2006, 11:35  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Hallo,
in diesem Format solltest du Bedingungen auch nicht in der DB speichern.

Du könntest
PHP-Code:
<?php
$foo 
2;
$ausdruck "$foo > 1"// "2 > 1"
eval("\$condition = ($ausdruck)");
if (
$condition) {
  
// ..
?>
(ungetestet)
Zergling-new ist offline  
Alt 12.09.2006, 11:38  
Erfahrener Benutzer
 
Registriert seit: 03.01.2006
Beiträge: 253
CC84
Standard

Zitat:
Zitat von XraYSoLo
na ja, man sollte sih folgendes merken:

PHP-Code:
eval() -> $evil 
die funktion würde ich wegen dadurch entstehender sicherheitslücken meinerseits über alles vermeiden.

Nils aka XraYSoLo
Seh ich nicht anders. Ich halte es auch für besser das ganze Konstrukt umzubauen, weil es vermutlich auch keinesfalls zu einem gut lesbaren Code verhilft. Aber wenn man sowas trotz aller Kritik durchzieht, dann eben nur auf diesem Weg.
CC84 ist offline  
Alt 12.09.2006, 11:39  
c!w
Neuer Benutzer
 
Registriert seit: 08.05.2006
Beiträge: 9
c!w
Standard

Zitat:
Zitat von Zergling
Hallo,
in diesem Format solltest du Bedingungen auch nicht in der DB speichern.

Du könntest
PHP-Code:
<?php
$foo 
2;
$ausdruck "$foo > 1"// "2 > 1"
eval("\$condition = ($ausdruck)");
if (
$condition) {
  
// ..
?>
(ungetestet)
Danke, hat geklappt.
Ich bin auch nicht glücklich, die Ausdrücke so in die Datenbank zu speichern. Geht aber in dem Fall nicht anders..

Danke,
c!w
c!w ist offline  
Alt 12.09.2006, 11:43  
Erfahrener Benutzer
 
Registriert seit: 03.01.2006
Beiträge: 253
CC84
Standard

Zitat:
Zitat von c!w
Geht aber in dem Fall nicht anders..
Sagt wer? Es gibt eigentlich immer ein weg.

Und bei dem Konstrukt rollen sich mir die Fußnägel auf.
CC84 ist offline  
Alt 12.09.2006, 12:02  
c!w
Neuer Benutzer
 
Registriert seit: 08.05.2006
Beiträge: 9
c!w
Standard

Zitat:
Zitat von CC84
Zitat:
Zitat von c!w
Geht aber in dem Fall nicht anders..
Sagt wer? Es gibt eigentlich immer ein weg.
Hehe, habe mit der Antwort fast gerechnet.
Ok ich erkläre es mal.
Ich habe gewisse Anmeldefenster (DB-Eintrag mit Start-und Endzeit). Jetzt muss ich gewisse Benutzer in diesen Anmeldefenstern zulassen. Dies geschieht über verschiedene Attribute, die dem Benutzer zugeordnet sind. Diese unterscheiden sich aber pro Anmeldefenster.
Sprich, es werden nicht immer die gleichen Attribute ausgewertet, sondern je nach Anmeldefenster immer verschiedene.
Dabei kann es noch sein, dass Bedinungen aneinander geknüpft werden. Der Operator kann dabei auch verschieden sein, also einmal > 2, in einem anderen Anmeldefenster < 2.

Hast du eine Idee, wie man dass in einer DB abbilden kann?
c!w
c!w ist offline  
Alt 12.09.2006, 12:03  
Erfahrener Benutzer
 
Registriert seit: 17.07.2006
Beiträge: 140
louis
Standard

Indem du nur die Werte in der DB speicherst und die Logik über PHP erledigst. Alles andere is Mist.
__________________
mfg louis
louis ist offline  
Alt 12.09.2006, 12:11  
c!w
Neuer Benutzer
 
Registriert seit: 08.05.2006
Beiträge: 9
c!w
Standard

Zitat:
Zitat von louis
Indem du nur die Werte in der DB speicherst und die Logik über PHP erledigst. Alles andere is Mist.
Ich kann aber die Logik so nicht direkt in PHP speichern. Wie denn?
Diese Anmeldefenster werden von einem Benutzer angelegt. Dabei muss er eben diese Bedingungen definieren können.
c!w 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
[Erledigt] leeres Klammernpaar nach einem Ausdruck frozen fire PHP Tipps 2008 8 04.07.2008 20:13
Regulären Ausdruck Übersetzen (preg_match) mAy^daY PHP Tipps 2007 11 04.01.2007 14:00
regulärer ausdruck für ´ Crypi PHP Tipps 2006 3 13.09.2006 11:58
Minus-Zeichen in regulärem Ausdruck A Hoppe PHP Tipps 2006 5 20.04.2006 21:44
Mit if Abfrage innerhalb eines strings einen Ausdruck suchen tinchen PHP Tipps 2006 4 11.04.2006 10:18
Problem mit Regulärem Ausdruck. daniel987 PHP-Fortgeschrittene 2 05.03.2006 22:12
regulärer ausdruck tomson PHP Tipps 2006 11 03.02.2006 09:58
Regul�rer Ausdruck PHP Tipps 2006 3 01.02.2006 19:50
Regulärer Ausdruck: Ping-Zeiten speichern mAy^daY Server, Hosting und Workstations 9 12.01.2006 19:51
[Erledigt] Regulärer Ausdruck HILFE!! PHP-Fortgeschrittene 6 22.07.2005 16:39
Regulärer Ausdruck mit Negation? PHP-Fortgeschrittene 23 21.07.2005 09:01
Sehr gieriger Regulärer Ausdruck - bitte um Hilfe PHP-Fortgeschrittene 1 01.12.2004 13:34
Regulärer Ausdruck inu PHP Tipps 2004-2 8 18.11.2004 18:07
JS: Regulärer Ausdruck HTML, Usability und Barrierefreiheit 3 25.08.2004 15:06
Regulärer Ausdruck PHP Tipps 2004 3 10.07.2004 08:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
logischer ausdruck in db speichern, php logischen ausdruck negieren php, logischer ausdruck speichern, php code vor eval prüfen, logischer ausdruck

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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.