ID:               21389
 Updated by:       [EMAIL PROTECTED]
 Reported By:      gregoire dot roland at edfgdf dot fr
-Status:           Open
+Status:           Feedback
 Bug Type:         PCRE related
 Operating System: Windows NT 4 sp6a french
 PHP Version:      4.3.0
 New Comment:

Please try using this CVS snapshot:

  http://snaps.php.net/php4-STABLE-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php4-win32-STABLE-latest.zip




Previous Comments:
------------------------------------------------------------------------

[2003-03-04 04:03:06] [EMAIL PROTECTED]

Similar to bug #21615

I cannot reproduce the problem with the supplied long long script..

------------------------------------------------------------------------

[2003-01-08 02:46:58] gregoire dot roland at edfgdf dot fr

There is no carriage return in the code below (in $le_code).

The variable $le_code is on a single line.

Thanks !!

------------------------------------------------------------------------

[2003-01-08 02:44:11] gregoire dot roland at edfgdf dot fr

This code is crashig : DrWatson Stack Overflow.

<?php
function extrait_sql(&$code) {

        if (preg_match('/(\/\*(.|\n)*?\*\/)/', $code)) {
        $code = preg_replace('/(\/\*(.|\n)*?\*\/)/', '', $code);
    }
        
}

$le_code =
'/*-------------------------------------------------------------*/ /*
EG_LSTJ_200201_Evolution Adresse et centre de rattachement */
/*-------------------------------------------------------------*/
/*Declare Function EG_CST_COD_FORCAGE_RENTE PeopleCode
EG_FLW_CONSTANT.EG_CONSTANTES FieldFormula;*/ /*Declare Function
EG_CST_AVANCE_PREVI PeopleCode EG_FLW_CONSTANT.EG_CONSTANTES
FieldFormula; */ /*Declare Function EG_CST_CAN_REN PeopleCode
EG_FLW_CONSTANT.EG_CONSTANTES FieldFormula; */ /*Declare Function
EG_CST_CAS_REN PeopleCode EG_FLW_CONSTANT.EG_CONSTANTES FieldFormula;
*/ /*Local date &D_DATE_PLUS_REC; */ /*Local number &N_NB_PREST; */
/*Local number &N_NB_PREST_RG_OU_R; */ /*Local number &N_I; */ /*Local
string &S_CAS; */ /* EG_BLLA_02071999_ Contrôle la saisie des champs
CAN CAS si les dates sont renseignées et */ /* inversement. */ /*If
%PanelGroup = PANELGROUP.EG_CREA_OD Or */ /* %PanelGroup =
PANELGROUP.EG_CREA_AD Then */ /* &B_TROUVE = False; */ /* For &N_I = 1
To ActiveRowCount(RECORD.EG_PRESTAT_R) */ /* &S_STATUT =
FetchValue(RECORD.EG_PRESTAT_R, &N_I, EG_PRESTAT_R.EG_STATUT_DOS1); */
/* If &S_STATUT = "ACT" And */ /* ActiveRowCount(RECORD.EG_PRESTAT_R) =
1 Then */ /* &B_TROUVE = True; */ /* End-If; */ /* End-For; */ /* If
&B_TROUVE = False Then */ /* If (None(EG_COD_UNIT_CAN) And */ /*
All(EG_DAT_RAT_CAN)) Or */ /* (All(EG_COD_UNIT_CAN) And */ /*
None(EG_DAT_RAT_CAN)) Or */ /* (None(EG_COD_UNIT_CAS) And */ /*
All(EG_DAT_RAT_CAS)) Or */ /* (All(EG_COD_UNIT_CAS) And */ /*
None(EG_DAT_RAT_CAS)) Then */ /* SetCursorPos(PANEL.EG_CREA_ADR_PNL,
EG_COD_UNIT_CAN, CurrentRowNumber()); */ /* Error (MsgGet(20002, 10,
"Message non trouvé dans le catalogue de messages")); */ /* End-If; */
/* End-If; */ /* EG_BLLA_28091999_ Correction suite à Fiche Ano n° 27 :
contrôle sur le bon sens de la saisie */ /*du code forçage. */ /*
EG_SVTC_09022000_ Correction suite à fiche anomalie 179 : c\'est un
avertissement */ /* EG_LSTJ_15012001 Evolution adresse et centre de
rattachement */ /* Désormais les Etrnagers n\'ont plus besoin de motif
de forçage */ /* If (COUNTRY <> "F" And */ /* COUNTRY <> "B") And */ /*
&B_TROUVE = False And */ /* (None(EG_COD_CAS_FIXE) Or */ /*
EG_COD_CAS_FIXE <> "ETR") Then */ /* Warning (MsgGet(20002, 23,
"Message non trouvé dans le catalogue de messages")); */ /* End-If; */
/* EG_BLLA_28091999_ FIN */ /*End-If; */ /* EG_LSTJ_15012001_ FIN */
/*If (%PanelGroup = PANELGROUP.EG_AFFILIA_OD_IDEN Or */ /* %PanelGroup
= PANELGROUP.EG_NUMERO_AD_GRP) And */ /* PERSONAL_DATA.EG_TYP_POP <>
"SECI" Then */ /* &B_TROUVE = False; */ /* For &N_I = 1 To
ActiveRowCount(RECORD.EG_PRESTAT_R) */ /* &S_STATUT =
FetchValue(RECORD.EG_PRESTAT_R, &N_I, EG_PRESTAT_R.EG_STATUT_DOS1); */
/* If &S_STATUT = "ACT" And */ /* ActiveRowCount(RECORD.EG_PRESTAT_R) =
1 Then */ /* &B_TROUVE = True; */ /* End-If; */ /* End-For; */ /*
EG_SVTC_19111999_ Correction suite à fiche anomalie 117 : contrôle sur
le ligne courante et */ /* non sur l\'historique) */ /* &D_EFFDT =
FetchValue(RECORD.EG_ADRESSE_R, 1, EFFDT); */ /* &N_LIGNE = 1; */ /*
For &N_I = 2 To ActiveRowCount(RECORD.EG_ADRESSE_R) */ /* &D_DAT =
FetchValue(RECORD.EG_ADRESSE_R, &N_I, EFFDT); */ /* If &D_EFFDT <
&D_DAT Then */ /* &D_EFFDT = &D_DAT; */ /* &N_LIGNE = &N_I; */ /*
End-If; */ /* End-For; */ /* If &B_TROUVE = False And */ /* EFFDT =
&D_EFFDT Then */ /* If (None(EG_COD_UNIT_CAN) And */ /*
All(EG_DAT_RAT_CAN)) Or */ /* (All(EG_COD_UNIT_CAN) And */ /*
None(EG_DAT_RAT_CAN)) Or */ /* (None(EG_COD_UNIT_CAS) And */ /*
All(EG_DAT_RAT_CAS)) Or */ /* (All(EG_COD_UNIT_CAS) And */ /*
None(EG_DAT_RAT_CAS)) Then */ /* SetCursorPos(PANEL.EG_ADR_PREST_PNL,
EG_COD_UNIT_CAN, CurrentRowNumber()); */ /* Error (MsgGet(20002, 10,
"Message non trouvé dans le catalogue de messages")); */ /* End-If; */
/* End-If; */ /* EG_BLLA_28091999_ Correction suite à Fiche Ano n° 27 :
contrôle sur le bon sens de la saisie */ /* du code forçage. */ /*
EG_SVTC_09022000_ Correction suite à fiche anomalie 179 : c\'est un
avertissement */ /* EG_LSTJ_15012001 Evolution adresse et centre de
rattachement */ /* Désormais les Etrangers n\'ont plus besoin de motif
de forçage */ /* If (COUNTRY <> "F" And */ /* COUNTRY <> "B") And */ /*
(EFFDT = &D_EFFDT) And */ /* &B_TROUVE = False And */ /*
(None(EG_COD_CAS_FIXE) Or */ /* EG_COD_CAS_FIXE <> "ETR") Then */ /*
Warning (MsgGet(20002, 23, "Message non trouvé dans le catalogue de
messages")); */ /* End-If; */ /* EG_BLLA_28091999_ FIN */ /*
EG_LSTJ_152012001_ FIN */ /*End-If; */ /* EG_BLLA_02071999_ FIN */ /*
EG_SVTC_19111999_ Correction suite à fiche anomalie 124 : séparation du
cas réviser Prestataire */ /*If %PanelGroup = PANELGROUP.EG_DOS_ADM_GRP
And */ /* PERSONAL_DATA.EG_TYP_POP <> "SECI" Then */ /* &B_TROUVE =
False; */ /* For &N_I = 1 To ActiveRowCount(RECORD.EG_PRESTAT_R) */ /*
&S_STATUT = FetchValue(RECORD.EG_PRESTAT_R, &N_I,
EG_PRESTAT_R.EG_STATUT_DOS1); */ /* If &S_STATUT = "ACT" And */ /*
ActiveRowCount(RECORD.EG_PRESTAT_R) = 1 Then */ /* &B_TROUVE = True; */
/* End-If; */ /* End-For; */ /* EG_SVTC_19111999_ Correction suite à
fiche anomalie 117 : */ /*contrôle sur le ligne courante et non sur
l\'historique) */ /* &D_EFFDT = FetchValue(RECORD.EG_ADRESSE_R, 1,
EFFDT); */ /* &N_LIGNE = 1; */ /* For &N_I = 2 To
ActiveRowCount(RECORD.EG_ADRESSE_R) */ /* &D_DAT =
FetchValue(RECORD.EG_ADRESSE_R, &N_I, EFFDT); */ /* If &D_EFFDT <
&D_DAT Then */ /* &D_EFFDT = &D_DAT; */ /* &N_LIGNE = &N_I; */ /*
End-If; */ /* End-For; */ /* If &B_TROUVE = False And */ /* EFFDT =
&D_EFFDT Then */ /* If (None(EG_COD_UNIT_CAN) And */ /*
All(EG_DAT_RAT_CAN)) Or */ /* (All(EG_COD_UNIT_CAN) And */ /*
None(EG_DAT_RAT_CAN)) */ /* (None(EG_COD_UNIT_CAS) And */ /*
All(EG_DAT_RAT_CAS)) Or */ /* (All(EG_COD_UNIT_CAS) And */ /*
None(EG_DAT_RAT_CAS)) Then */ /* SetCursorPos(PANEL.EG_ADR_PREST_PNL,
EG_COD_UNIT_CAN, CurrentRowNumber()); */ /* Error (MsgGet(20002, 10,
"Message non trouvé dans le catalogue de messages")); */ /* End-If; */
/* End-If; */ /* EG_BLLA_28091999_ Correction suite à Fiche Ano n° 27 :
contrôle sur le bon sens de la saisie */ /* du code forçage. */ /*
&B_SEC_TROUVE = False; */ /* For &B_I = 1 To
ActiveRowCount(RECORD.EG_PRESTAT_R) */ /* &S_STATUT_DOS_REC =
FetchValue(RECORD.EG_PRESTAT_R, &B_I, EG_PRESTAT_R.EG_STATUT_DOS1); */
/* If PERSONAL_DATA.EG_TYP_POP = "AD" And */ /* (&S_STATUT_DOS_REC =
"SEC" Or */ /* &S_STATUT_DOS_REC = "PPF") Then */ /* &B_SEC_TROUVE =
True; */ /* End-If; */ /* End-For; */ /* EG_LSTJ_15012001 Désormais les
Etrangers n\'ont plus besoin de motif de forçage */ /*If (COUNTRY <>
"F" And */ /* COUNTRY <> "B") And */ /* EFFDT = &D_EFFDT And */ /*
&B_TROUVE = False And */ /* &B_SEC_TROUVE = False And */ /*
(None(EG_COD_CAS_FIXE) Or */ /* EG_COD_CAS_FIXE <> "ETR") Then */ /*
Warning (MsgGet(20002, 23, "Message non trouvé dans le catalogue de
messages")); */ /*End-If; */ /*End-If; */ /* EG_SVTC_19111999_FIN */
/*If %PanelGroup = PANELGROUP.EG_AFFILIA_OD_IDEN Or*/ /* (%PanelGroup =
PANELGROUP.EG_DOS_ADM_GRP And*/ /* PERSONAL_DATA.EG_TYP_POP <> "SECI")
Or*/ /* %PanelGroup = PANELGROUP.EG_NUMERO_AD_GRP Then*/ /*
&D_DATE_PLUS_REC = Date(19000101);*/ /* For &N_I = 1 To
ActiveRowCount(RECORD.EG_ADRESSE_R)*/ /* If &D_DATE_PLUS_REC <
FetchValue(RECORD.EG_ADRESSE_R, &N_I, EFFDT) Then*/ /* &D_DATE_PLUS_REC
= FetchValue(RECORD.EG_ADRESSE_R, &N_I, EFFDT)*/ /* End-If;*/ /*
End-For;*/ /* If EFFDT = &D_DATE_PLUS_REC Then*/ /* If
None(EG_COD_CAS_FIXE) Or*/ /* None(EG_COD_CAN_FIXE) Then*/ /* Recherche
si cet agent n\'a que des prestations RG ou Rentes */ /* &N_NB_PREST =
0;*/ /* &N_NB_PREST_RG_OU_R = 0;*/ /* SQLExec("SELECT distinct sum(1)
FROM Ps_eg_s_pst_r P WHERE P.eg_s_dat_jou <= SYSDATE AND (0 = (SELECT
count(1) FROM ps_eg_s_op_pst_r O WHERE O.emplid = P.emplid AND
O.eg_no_affilie = P.eg_no_affilie AND O.eg_s_cod_pst = P.eg_s_cod_pst
AND O.eg_s_dat_eff_ope<= SYSDATE) OR 1 <= (Select count(1) FROM
ps_eg_s_op_pst_r O2 WHERE O2.emplid = P.emplid AND O2.eg_no_affilie =
P.eg_no_affilie AND O2.eg_s_cod_pst = P.eg_s_cod_pst AND
O2.eg_s_dat_eff_ope<= SYSDATE AND O2.eg_s_dat_eff_ope = (SELECT
max(O3.eg_s_dat_eff_ope) FROM ps_eg_s_op_pst_r O3 WHERE O3.emplid =
O2.emplid AND O3.eg_no_affilie = O2.eg_no_affilie AND O3.eg_s_cod_pst =
O2.eg_s_cod_pst AND O3.eg_s_cod_op = O2.eg_s_cod_op) )) AND emplid =:1
AND eg_no_affilie=:2 GROUP BY P.emplid, P.eg_no_affilie",
PERSONAL_DATA.EMPLID, EG_PREST_H.EG_NO_AFFILIE_XX, &N_NB_PREST);*/ /*
SQLExec("SELECT distinct sum(1) FROM Ps_eg_s_pst_r P WHERE
P.eg_s_dat_jou <= SYSDATE AND ( 0 = (SELECT count(1) FROM
ps_eg_s_op_pst_r O WHERE O.emplid = P.emplid AND O.eg_no_affilie =
P.eg_no_affilie AND O.eg_s_cod_pst = P.eg_s_cod_pst AND
O.eg_s_dat_eff_ope<= SYSDATE) OR 1 <= (Select count(1) FROM
ps_eg_s_op_pst_r O2 WHERE O2.emplid = P.emplid AND O2.eg_no_affilie =
P.eg_no_affilie AND O2.eg_s_cod_pst = P.eg_s_cod_pst AND
O2.eg_s_dat_eff_ope<= SYSDATE AND O2.eg_s_dat_eff_ope = (SELECT
max(O3.eg_s_dat_eff_ope) FROM ps_eg_s_op_pst_r O3 WHERE O3.emplid =
O2.emplid AND O3.eg_no_affilie = O2.eg_no_affilie AND O3.eg_s_cod_pst =
O2.eg_s_cod_pst AND O3.eg_s_cod_op = O2.eg_s_cod_op) ) ) AND emplid =:1
AND eg_no_affilie=:2 AND (P.eg_s_cod_pst like \'E%\' or P.eg_s_cod_pst
like \'B%\') GROUP BY P.emplid, P.eg_no_affilie", PERSONAL_DATA.EMPLID,
EG_PREST_H.EG_NO_AFFILIE_XX, &N_NB_PREST_RG_OU_R);*/ /* If &N_NB_PREST
= &N_NB_PREST_RG_OU_R And*/ /* &N_NB_PREST <> 0 Then*/ /* Cet agent
n\'a que des prestations RG ou RENTE */ /* If EG_COD_CAN_FIXE = ""
Then*/ /* EG_COD_CAN_FIXE = EG_CST_COD_FORCAGE_RENTE();*/ /*
EG_COD_UNIT_CAN = EG_CST_CAN_REN();*/ /* EG_DAT_RAT_CAN = Date("");*/
/* End-If;*/ /* If EG_COD_CAS_FIXE = "" Then*/ /* EG_COD_CAS_FIXE =
EG_CST_COD_FORCAGE_RENTE();*/ /* EG_COD_UNIT_CAS = EG_CST_CAS_REN();*/
/* EG_DAT_RAT_CAS = Date("");*/ /* End-If;*/ /* End-If;*/ /* End-If;*/
/* If EG_COD_CAS_FIXE <> EG_CST_AVANCE_PREVI() Then*/ /* Recherche si
cet agent a une Invalidité en Avance Provisionnelle */ /* &N_NB_PREST =
0;*/ /* SQLExec("SELECT sum(1) FROM ( SELECT distinct O.EMPLID FROM
Ps_eg_s_op_pst_r O WHERE O.eg_s_cod_pst = \'C2I\' AND
O.eg_s_dat_eff_ope<= SYSDATE AND O.eg_s_dat_eff_ope = (SELECT
max(O2.eg_s_dat_eff_ope) FROM ps_eg_s_op_pst_r O2 WHERE O.emplid =
O2.emplid AND O.eg_no_affilie = O2.eg_no_affilie AND O.eg_s_cod_pst =
O2.eg_s_cod_pst AND O.eg_s_cod_op = O2.eg_s_cod_op) ) OP, (SELECT
distinct Adresse.emplid, Adresse.effdt, Adresse.eg_cod_cas_fixe,
Adresse.eg_cod_unit_cas FROM PS_EG_ADRESSE_R Adresse Where
Adresse.effdt = (SELECT max(Adr2.effdt) FROM ps_eg_adresse_r Adr2 Where
Adr2.emplid = Adresse.emplid) ) A WHERE A.eg_cod_cas_fixe != \'C2AP\'
AND A.emplid = :1 AND OP.emplid = :1 ", PERSONAL_DATA.EMPLID,
&N_NB_PREST);*/ /* If &N_NB_PREST <> 0 Then*/ /* Cet agent a une
prestation Invalidité en Avance Provisionnelle */ /* If
None(EG_COD_CAS_FIXE) Then*/ /* SQLExec("SELECT distinct
eg_cod_unit_cas From Ps_eg_unite_t WHERE eg_cod_unit =:1",
PERSONAL_DATA.EG_COD_UA, &S_CAS);*/ /* If &S_CAS = "" Then*/ /*
MessageBox(16, "", 20002, 39, "Message non trouvé dans le
catalogue");*/ /* Else*/ /* EG_COD_CAS_FIXE = EG_CST_AVANCE_PREVI();*/
/* EG_COD_UNIT_CAS = &S_CAS;*/ /* &S_DAT = String(EFFDT);*/ /* &S_MONTH
= Substring(&S_DAT, 6, 2);*/ /* &N_YEAR = Year(EFFDT);*/ /* &S_DATE =
String(&N_YEAR) | (&S_MONTH) | "01";*/ /* &N_DATE = Value(&S_DATE);*/
/* &D_DATE = Date(&N_DATE);*/ /* EG_DAT_RAT_CAS = &D_DATE;*/ /*
End-If;*/ /* Else*/ /* MessageBox(48, "", 20002, 40, "Message non
trouvé dans le catalogue");*/ /* End-If;*/ /* End-If;*/ /* End-If;*/ /*
End-If;*/ /*End-If;*/ /* EG_LSTJ_050201_FIN */ /**/';

extrait_sql($le_code);
echo "Noveau code : $le_code<br>";

?>

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/21389

-- 
Edit this bug report at http://bugs.php.net/?id=21389&edit=1

Reply via email to