Naviguation dans :  Perl  JavaScript  Détail  - load.cgi?Appel=contactUser
 présentée :  par cas d'appel   par traitements 
Retour à l'accueil
  
 
 Requêtes 

 load – User 

 Execer 

Requêtes de Ça-déménage.com
Accès particulier
Exécution de la requête


 contactUser  Exécution de la requête — Prendre contact
Syntaxe Execer(x,To,date,nom,val,RTN)
Paramètres 
nom  type  Description 
 IN Cas d'appel
To  IN Cas d'appel
date  IN Date de clôture de la base (éventuellement vide)
nom  IN Identifiant d'appel
val  IN Valeur fournie à l'appel
RTN  OUT Code JavaScript retourné au client
Perl : scalaire passé par référence – JavaScript : tableau à 1 élément
retourne  OUT  = "" : Traitement correct
= chaîne non vide : Message d'erreur
Fonctions util. 
 printLog Ecriture de la log
 wsFile Fonction d'accès aux fichiers
 cptLire Lit le dernier message
 cptEcrire Ecrit un message
 splitMail Supprime l'adresse e-mail dans un enregistement
 tstEmail Teste la validité syntaxique d'une adresse e-mail
 wsRunVar Paramètres de gestion des valeurs

 PreContacter Prendre un pré-contact
 Contacter Prendre un contact
 fromDBase Extrait des enregistrements — Prendre contact
 toClient Construit le code JavaScript à retourner au client — Prendre contact


Code Perl 


sub Execer {local($x,$To,$date,$nom,$val,$RTN) = @_; 
 local($i,$In,$Out,$Num,$Mail); 
 $In = ''; $Out = ''; $Num = ''; $Mail = '';
 $wwNum = '';
 local($x1,$k,$Dest); 
 local $x2 = ""; 
 if (($k=index($val,"/#"))==-1) {return 'Erreur mail: 101'}; $x2 = substr($val,0,$k); $val = substr($val,$k+2);
 if (($k=index($val,","))==-1) {return 'Erreur mail: 102'}; $x1 = substr($val,$k+1); $val = substr($val,0,$k);
 &printLog("Load",'Log','/#T(Appel):'.$x.' '.$To.$nom.' '.$val.'');
 if ($x1 ne "") {$x1 =~ s/\\\/\\#/\/#/gi};
 if (($i=&cptLire($To,$nom,$val,\$Num))!=0) {return 'Erreur lecture compta: '.$i.''};
 if ($val!~/^(Admin|User)/) {return 'Erreur mail: 103'}; $Dest = $1; $val = substr($val,length($1));
 if (&wsFile("check",$Dest,$val,"")!=0) {return 'Erreur mail: 104'};
 $In = '';
 if (($i=&fromDBase($To,\$In,$date,$nom,""))!=0) {return 'Erreur lecture: '.$i.''};
 if (($i=&splitMail($To,\$In,\$Mail))!=0) {return 'Erreur mail: '.$i.''};
 local $mailTo = $Mail; 
 if ($In!~/\/#T\(resError\):(\w+)\/#T/) {return 'Erreur mail: 106'};
 if (index((($Dest eq "Admin")?"345":"4"),$1)==-1) {$mailTo = ""};
 $In = '';
 if (($i=&fromDBase($Dest,\$In,$date,$val,""))!=0) {return 'Erreur lecture: '.$i.''};
 if (($i=&splitMail($Dest,\$In,\$Mail))!=0) {return 'Erreur mail: '.$i.''};
 local $mailDest = $Mail; 
if ($Dest eq "Admin") {
 if ($In=~/\/#T\(gloEtat\):1\/#T/) {return 'Erreur mail: 105'};
} else {
 $In = '';
 if (($i=&fromDBase($To,\$In,$date,$nom,""))!=0) {return 'Erreur lecture: '.$i.''};
 if ($In=~/\/#T\(gloError\):2\/#T/) {return 'Erreur mail: 110'};
 $In = '';
 if (($i=&fromDBase($Dest,\$In,$date,$val,""))!=0) {return 'Erreur lecture: '.$i.''};
 if ($In!~/\/#T\(resError\):(\w+)\/#T/) {return 'Erreur mail: 106'};
 if (index((($To eq "Admin")?"02345":"045"),$1)==-1) {return 'Erreur mail: 107'};
 if (index((($To eq "Admin")?"345":"4"),$1)==-1) {$mailDest = ""};
 if ($mailTo eq "") {$mailDest = ""};
}
 if (index($Mail," ")!=-1) {$Mail = substr($Mail,0,index($Mail," "))};
 if (($i=&tstEmail($Mail))!=0) {return 'Erreur mail: '.$i.''};
if (($Num eq "9")&&($To eq "User")&&($Dest eq "Admin")) {
 if (($i=&PreContacter($Mail,$x1,$x2,$val,$nom))!=0) {return 'Erreur message: '.$i.''};
} else {
 if (($i=&Contacter($Mail,$x1,$x2))!=0) {return 'Erreur message: '.$i.''};
}
 if (($i=&cptEcrire($To,$nom,$Dest.$val,\$Num,$x1,$x2,$mailTo))!=0) {return ">".$i.''};
 $Out .= "window.parent.de.Ltexte.locEvtContactFin(\"".$Dest.$val."\",\"".$mailDest."\");\n";
 if (($i=&toClient($x,$To,\$Out,$RTN))!=0) {return 'Erreur export: '.$i.''};
 return '';
}
Code JavaScript 


function Execer(x,To,date,nom,val,RTN) { 
 var i,In,Out,Num,Mail; 
 In = Array(''); Out = Array(''); Num = Array(''); Mail = Array('');
 wwNum = Array('');
 var x1,k,Dest; 
 var x2 = ""; 
 if ((k=val.indexOf("/#"))==-1) {return 'Erreur mail: 101'}; x2 = val.substr(0,k); val = val.substr(k+2);
 if ((k=val.indexOf(","))==-1) {return 'Erreur mail: 102'}; x1 = val.substr(k+1); val = val.substr(0,k);
 printLog("Load",'Log','/#T(Appel):'+x+' '+To+nom+' '+val+'');
 if (x1!="") {x1 = x1.replace(/\\\/\\#/gi,"\/#")};
 if ((i=cptLire(To,nom,val,Num))!=0) {return 'Erreur lecture compta: '+i.toString()};
 if (!val.match(/^(Admin|User)/)) {return 'Erreur mail: 103'}; Dest = RegExp.$1; val = val.substr(RegExp.$1.length);
 if (wsFile("check",Dest,val,"")!=0) {return 'Erreur mail: 104'};
 In = Array('');
 if ((i=fromDBase(To,In,date,nom,""))!=0) {return 'Erreur lecture: '+i.toString()};
 if ((i=splitMail(To,In,Mail))!=0) {return 'Erreur mail: '+i.toString()};
 var mailTo = Mail[0]; 
 if (!In[0].match(/\/#T\(resError\):(\w+)\/#T/)) {return 'Erreur mail: 106'};
 if (((Dest=="Admin")?"345":"4").indexOf(RegExp.$1)==-1) {mailTo = ""};
 In = Array('');
 if ((i=fromDBase(Dest,In,date,val,""))!=0) {return 'Erreur lecture: '+i.toString()};
 if ((i=splitMail(Dest,In,Mail))!=0) {return 'Erreur mail: '+i.toString()};
 var mailDest = Mail[0]; 
if (Dest=="Admin") {
 if (In[0].match(/\/#T\(gloEtat\):1\/#T/)) {return 'Erreur mail: 105'};
} else {
 In = Array('');
 if ((i=fromDBase(To,In,date,nom,""))!=0) {return 'Erreur lecture: '+i.toString()};
 if (In[0].match(/\/#T\(gloError\):2\/#T/)) {return 'Erreur mail: 110'};
 In = Array('');
 if ((i=fromDBase(Dest,In,date,val,""))!=0) {return 'Erreur lecture: '+i.toString()};
 if (!In[0].match(/\/#T\(resError\):(\w+)\/#T/)) {return 'Erreur mail: 106'};
 if (((To=="Admin")?"02345":"045").indexOf(RegExp.$1)==-1) {return 'Erreur mail: 107'};
 if (((To=="Admin")?"345":"4").indexOf(RegExp.$1)==-1) {mailDest = ""};
 if (mailTo=="") {mailDest = ""};
}
 if (Mail[0].indexOf(" ")!=-1) {Mail[0] = Mail[0].substr(0,Mail[0].indexOf(" "))};
 if ((i=tstEmail(Mail[0]))!=0) {return 'Erreur mail: '+i.toString()};
if ((Num[0]=="9")&&(To=="User")&&(Dest=="Admin")) {
 if ((i=PreContacter(Mail[0],x1,x2,val,nom))!=0) {return 'Erreur message: '+i.toString()};
} else {
 if ((i=Contacter(Mail[0],x1,x2))!=0) {return 'Erreur message: '+i.toString()};
}
 if ((i=cptEcrire(To,nom,Dest+val,Num,x1,x2,mailTo))!=0) {return ">"+i.toString()};
 Out[0] += "window.parent.de.Ltexte.locEvtContactFin(\""+Dest+val+"\",\""+mailDest+"\");\n";
 if ((i=toClient(x,To,Out,RTN))!=0) {return 'Erreur export: '+i.toString()};
 return '';
}