èneR: Strings vergleichen

Beitrag lesen

Moin,

Das könnte man mittels eval machen - das ist aber gefährlich, wenn du die Inhalte nicht ganz genau unter Kontrolle hast und weisst, was du tust.

Beispiel:

<?php  
$V1[0] = "abc";  
$V2[0] = "cba";  
$O[0] = "!=";  
  
  
if(eval($V1[0].$O[0].$V2[0])){  
echo"error";  
}else{  
echo"ok";  
}  
?>

Eine andere Möglichkeit, wenn die Anzahl möglicher Operatoren, die vorkommen können, begrenzt

SEHR WICHTG!
Besonders, wenn ein user den operator eingibt. Denn sonst kann jemand einen Code einfügen, wie folgt;

//BEispiel:

  
$V1[0] = "abc";  
$V2[0] = "cba";  
$O[0] = "!= 5) {} mysql_query(\"DROP DATABASE wichtige_daten\"); if (5 !=";  
  
  
if(eval($V1[0].$O[0].$V2[0])){  
echo"error";  
}else{  
echo"ok";  
}  
?>  

klarer Code wäre dann:

  
$V1[0] = "abc";  
$V2[0] = "cba";  
$O[0] = "!= 5) {} mysql_query(\"DROP DATABASE wichtige_daten\"); if (5 !=";  
  
  
if("abc" != 5) {}  
  
mysql_query("DROP DATABASE wichtige_daten");  
  
if (5 != "cba")){  
echo"error";  
}else{  
echo"ok";  
}  
?>  

und schon bist du um ne Tabelle leichter. und das ist nur ein mögliches Beispiel.

Also Vorsicht!

Den Operator in einem switch/case-Konstrukt auswerten, und dort dann die jeweilige Vergleichsoperation mit den zwei variablen Vergleichswerten und fest kodiertem Operator vornehmen, und das Ergebnis zurückliefern.

MfG ChrisB

MfG,
èneR