PHP Classes
elePHPant
Icontem

File: jsrsServer.inc.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of yo keller  >  metaForm  >  jsrsServer.inc.php  >  Download  
File: jsrsServer.inc.php
Role: Auxiliary script
Content type: text/plain
Description: corresponding jsrs php server library
Class: metaForm
Generate and validate forms from XML definitions
Author: By
Last change:
Date: 10 years ago
Size: 3,935 bytes
 

Contents

Class file image Download
<?php

//
// jsrsServer.inc.php - javascript remote scripting server include
//
// Orginal Author: Brent Ashley [jsrs@megahuge.com]
// PHP version : Sébastien Cramatte [sebastien@webeclaireur.com]
// Pierre Cailleux [cailleux@noos.fr]
// Date : May 2001
//
// see jsrsClient.js for version info
//
// see license.txt for copyright and license info

function jsrsDispatch($validFuncs , $verb=0){
 
$func = jsrsBuildFunc($validFuncs);
  if(
$verb) $s_echo = "jsrsDispatch -- func: $func <br />\n";
  if (
$func != ""){
   
$retval = "";
   
    eval(
"\$retval = " . $func . ";");
   
    if(
$verb){
       
$s_echo .= "jsrsDispatch -- retval: $retval <br />\n";
   
jsrsLog($s_echo);
    }
    if (
strlen($retval)>0){
     
jsrsReturn($retval."");
    } else {
     
jsrsReturn("");
    }
  } else {
    if(
$verb){
       
$s_echo .= "jsrsDispatch -- retval: $retval <br />\n";
   
jsrsLog($s_echo);
    }
   
jsrsReturnError("function builds as empty string");
  }
}

function
jsrsReturn($payload) {
  global
$C;
  if(isset(
$_POST['C'])) $C = $_POST['C'];
  if(isset(
$_GET['C'])) $C = $_GET['C'];
 
  Print (
     
"<html><head></head><body onload=\"p=document.layers?parentLayer:window.parent;p.jsrsLoaded('"
   
. $C . "');\">jsrsPayload:<br>"
   
. "<form name=\"jsrs_Form\"><textarea name=\"jsrs_Payload\" id=\"jsrs_Payload\">"
   
. jsrsEscape($payload) . "</textarea></form></body></html>");
    exit();
}

function
jsrsEscape($str){
 
// escape ampersands so special chars aren't interpreted
 
$tmp = ereg_replace( "&", "&amp;", $str );
 
// escape slashes with whacks so end tags don't interfere with return html
 
return ereg_replace( "\/" , "\\/",$tmp);
}

/////////////////////////////
//
// user functions


function jsrsReturnError($str){
  global
$C;
  if(isset(
$_POST['C'])) $C = $_POST['C'];
  if(isset(
$_GET['C'])) $C = $_GET['C'];
 
 
 
// escape quotes
 
$cleanStr = ereg_replace("\'","\\'",$str);
 
 
// !!!! --- Warning -- !!!
 
$cleanStr = "jsrsError: " . ereg_replace("\"", "\\\"", $cleanStr);
  print (
"<html><head></head><body "
        
. "onload=\"p=document.layers?parentLayer:window.parent;p.jsrsError('" . $C . "','" . urlencode($str) . "');\">"
        
. $cleanStr . "</body></html>" );
  exit();
}

function
jsrsArrayToString( $a, $delim ){
 
// user function to flatten 1-dim array to string for return to client
 
$d = "~";
  if (!isset(
$delim)) $d = $delim;
  return
implode($a,$d);
}


function
jsrsBuildFunc($validFuncs) {
 
$F = '';
  if(isset(
$_POST['F'])) {
   
$F = $_POST['F'];
   
$method = 'post';
  }
  if(isset(
$_GET['F'])) {
    
$F = $_GET['F'];
    
$method = 'get';
  }
 
 
$func = "";

 
 if (
$F != "") {
 
$func = $F;
 
     
 
// make sure it's in the dispatch list
 
if (strpos(strtoupper($validFuncs),strtoupper($func))===false)
    
jsrsReturnError($func . " is not a valid function" );
  
  
$func .= "(";
  
   switch(
$method){
      case
'post':
        foreach(
$_POST['P'] as $index => $value){
         
$func .= '"'.substr($value, 1, strlen($value)-2).'",';
        }
        break;
      case
'get':
        foreach(
$_GET['P'] as $index => $value){
         
$func .= '"'.substr($value, 1, strlen($value)-2).'",';
        }
        break;
   }
   if (
substr($func,strlen($func)-1,1)==",")
   
$func = substr($func,0,strlen($func)-1);

   
$func .= ")";
  }
 
 return
$func;
}

function
jsrsEvalEscape($thing) {
 
$tmp = ereg_replace($thing,"\r\n","\n");
 return
$tmp;
}

function
jsrsVBArrayToString($a,$delim) {
 
// --- not use in PHP see jsrsArrayToString method
 
return jsrsArrayToString($a,$delim);
}

function
jsrsLog($s,$delim='',$f=''){
   
$d = (empty($delim))?'!##!':$delim;
   
$d = $d."\n";
    if (empty(
$f))$f = 'jsrsLog.txt';
   
$fp = fopen($f,'a');
   
fwrite($fp,$s.$d);
   
fclose($fp);
}
?>