Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Funktion will nicht so wie ich (https://www.delphipraxis.net/32408-%5Bphp%5D-funktion-will-nicht-so-wie-ich.html)

Meflin 22. Okt 2004 17:34


[PHP] Funktion will nicht so wie ich
 
Moin,
ich habe folgende funktion geschrieben:
Code:
$_APRON_general_security_mode = "fix"; // READ THE MANUAL BEFORE EDITING THIS!!!
function _APRON_censoring($_APRON_pattern) {
  if ($_APRON_general_security_mode == "fix") {
    for ($_APRON_x = 1; $_APRON_x <= strlen($_APRON_pattern); $_APRON_x++) {
     if ($_APRON_x > 1) {
       $_APRON_sub = $_APRON_sub."*";
     }
   }
   return ($_APRON_pattern[1].$_APRON_sub);
  }
  if ($_APRON_general_security_mode == "block") {
    return ("");
  }
}
echo _APRON_censoring("test");
und das kommt davor:
Code:
$_APRON_general_security_mode = "fix";
die funktion soll dabei aus test t*** machen. tut sie aber nicht, und ich kann keinen fehler finden :?

jfheins 22. Okt 2004 17:40

Re: [PHP] Funktion will nicht so wie ich
 
Ist zwar etwas unübersichtlich, aber ich glaube, ich weis woron es liegt.

Mach mal aus
Code:
if ($_APRON_general_security_mode == "fix") {
das hier:
Code:
if (TRUE) {
Und schreib, ob es dann geht ...
(Ich vermute stark, dass $_APRON_general_security_mode in der Funktion nicht bekannt ist ...)

Dax 22. Okt 2004 17:40

Re: [PHP] Funktion will nicht so wie ich
 
Hi Meflin, so geht es:
Code:
  define(_APRON_general_security_mode, "fix"); // READ THE MANUAL BEFORE EDITING THIS!!!

function _APRON_censoring($_APRON_pattern) {
  if (_APRON_general_security_mode == "fix") {
    for ($_APRON_x = 1; $_APRON_x <= strlen($_APRON_pattern); $_APRON_x++) {
     if ($_APRON_x > 1) {
       $_APRON_sub = $_APRON_sub."*";
     }
   }
   return ($_APRON_pattern[0].$_APRON_sub);
  }
  if (_APRON_general_security_mode == "block") {
    return ("");
  }
}

echo _APRON_censoring("test");

alcaeus 22. Okt 2004 17:42

Re: [PHP] Funktion will nicht so wie ich
 
Hi Meflin,

oder so:

Code:
$_APRON_general_security_mode = "fix"; // READ THE MANUAL BEFORE EDITING THIS!!! 
function _APRON_censoring($_APRON_pattern) {
global $_APRON_general_security_mode;
Greetz
alcaeus

jfheins 22. Okt 2004 17:44

Re: [PHP] Funktion will nicht so wie ich
 
Das meinte ich, nur ist mir das "global" nicht mehr eingefallen ...

Meflin 22. Okt 2004 17:47

Re: [PHP] Funktion will nicht so wie ich
 
geht bei mir auch nicht :shock:
und das auch nicht:
Code:
<?
function _APRON_censoring($_APRON_pattern, $_APRON_mode) { 
  if (_APRON_mode == "fix") { 
    for ($_APRON_x = 1; $_APRON_x <= strlen($_APRON_pattern); $_APRON_x++) { 
     if ($_APRON_x > 1) { 
       $_APRON_sub = $_APRON_sub."*";
     } 
   } 
   return ($_APRON_pattern[0].$_APRON_sub);
  } 
  if (_APRON_mode == "block") { 
    return ("");
  } 


echo _APRON_censoring("test","fix");
?>

Meflin 22. Okt 2004 17:48

Re: [PHP] Funktion will nicht so wie ich
 
ich bin dumm, letzteres geht, nur $ vergessen. aber warum kommt da kein fehler :gruebel:

jfheins 22. Okt 2004 17:49

Re: [PHP] Funktion will nicht so wie ich
 
wo ?

himitsu 22. Okt 2004 17:54

Re: [PHP] Funktion will nicht so wie ich
 
oder ganz einfach.

als 1. Zeile in der Funktion dieses einfügen:

Code:
global $_APRON_general_security_mode;

externe Variablen sind "normaler Weise" nicht innerhalb von Funktionen verfügbar.

Code:
function _APRON_censoring($_APRON_pattern) { 
  global $_APRON_general_security_mode;
  if ($_APRON_general_security_mode == "fix") {

[edit]
ach, da hab'sch ja jemanden übersehn, der das schon sagte -.-''


[edit2]
@jfheinz
Zitat:

Zitat von Meflin
Code:
  ...
    return ($_APRON_pattern[0].$_APRON_sub);
  }
  if ([color=red][b]$[/b][/color]_APRON_mode == "block") {
    return ("");
  }
}

Und ich weiß auch nicht, warum da keine Fehlermeldung kommt ... ist mir aber auch schon aufgefallen.

jfheins 22. Okt 2004 18:11

Re: [PHP] Funktion will nicht so wie ich
 
Das "wo?" war auf
Zitat:

aber warum kommt da kein fehler
bezogen.

Nochmal zu dem Code:
Code:
if (_APRON_mode == "fix") {
Ich vermute, das PHP das "_APRON_mode" als Konstante verwerten will, jedoch keine findet und somit einen String daraus macht, was zu
Code:
if ("_APRON_mode" == "fix") {
führt, was logischerweise immer Falsch ist ...

Meflin 22. Okt 2004 18:30

Re: [PHP] Funktion will nicht so wie ich
 
meinst du ich sollte einen funktionsnamen nicht mit _ anfangen? das tu ich, damit bei dem, der das script verwendet, keine probleme auftreten, weil er evtl enie gleichnamige funktion hat...

himitsu 24. Okt 2004 01:35

Re: [PHP] Funktion will nicht so wie ich
 
> http://de3.php.net/manual/de/language.types.array.php
siehe "Array do's und don'ts"...

Also, so wie es aussieht nimmt PHP Wörter, welche keine Funktion, oder sonst irgend ein bekanntes Wort sind entweder als undefinierte konstannte, oder gar als String.

Hier scheint wohl abc als "abc" interpretiert zu werden.
Code:
echo abc;

fkerber 24. Okt 2004 09:43

Re: [PHP] Funktion will nicht so wie ich
 
Hi!

Zitat:

Zitat von himitsu
> http://de3.php.net/manual/de/language.types.array.php
siehe "Array do's und don'ts"...

Also, so wie es aussieht nimmt PHP Wörter, welche keine Funktion, oder sonst irgend ein bekanntes Wort sind entweder als undefinierte konstannte, oder gar als String.

Hier scheint wohl abc als "abc" interpretiert zu werden.
Code:
echo abc;

Dann kommt aber immer ne Warning dazu. Wenn also das Error Reporting of All steht, dann kommt da sowas wie
Zitat:

undefined use of constant abc - assumed "abc"

Ciao Frederic

himitsu 24. Okt 2004 10:09

Re: [PHP] Funktion will nicht so wie ich
 
Na ja, 's kommt dann wohl dabei auf die PHP-Version und die Konfigurateion an ... bei mir nimmt PHP dieses halt als String und nicht als Konstante und daher hab ich wohl diesen Fehler nicht ^^

Bei Meflin ist dass dann vermutlih genauso.



Na ja, es ist zwar auch möglich alle möglichen Fehlermeldungen abzuschalten, aber dieses wird er wohl nicht gemacht haben und bei mir wurde abc ja als String ausgegeben.

fkerber 24. Okt 2004 10:13

Re: [PHP] Funktion will nicht so wie ich
 
Hi!

Er nimmt sie ja auch bei meinem Beispiel im Endeffekt als String an ("abc")

Ich denke, es liegt am Error-Reporting.


Ciao Frederic


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz