Sivakatirswami wrote: > > Pierre: > > Your praises of Metacard as a long running process on a web server linked to > a PHP front end etc. are very intriguing. Unfortunately for the untutored it > is bit of a mystery... I looked at the archives of Metacard but they only go > back to Nov 2001 and so your Posts with samples scripts and more thorough > explanations... I can't find them. Do you have a FAQ on this somewhere with > examples, diagram and a few scripts, sample HTML pages? > > Hinduism Today > > Sivakatirswami > Editor's Assistant/Production Manager > [EMAIL PROTECTED] > www.HinduismToday.com, www.HimalayanAcademy.com, > www.Gurudeva.org, www.hindu.org > > _______________________________________________ > metacard mailing list > [EMAIL PROTECTED] > http://lists.runrev.com/mailman/listinfo/metacard
First : Do you have a linux box with apache, php and mc installed on it ? (If yes, it will be a piece of cake to explain how to run MC as a WAS). Second : How to get MC running in a long process mode, even in console mode (without XWindows) > Pierre Sahores wrote: > > > > Just alike you start other console apps from the bash prompt. To test > > this, just launch, from the shell, a new "test.mc" stack that only > > contains : > > > > on openstack > > put "Hello World" > > end openstack > > > > in typing "/home/pierre/startcmc &" at the prompt where startmc, set > > with an executable permission, contains : > > > > #!/home/pierre/mc > > on startup > > open stack "/home/pierre/test.mc" > > end startup > > > > If all is right done, you will see the "Hello World" ansered at > > prompt... and, in opening "KSysGuard", you will see the "startmc" line > > entry, as a still running process... > > > > > doesn't it need X? > > > > No. You need just an rc.d (level 3) bash starter script pointing to the > > stack you want to launch in the background (see the list archives). The > > only metatalk feature unavailable in console mode is the "idle" > > function. Is'n it great (Thanks again and again, Scott...) ? > > > This is really nice, thanks for the tip. > > > > Have fun, Pierre Sahores > > > > WEB & VPN applications & databases servers > > Inspection académique de Seine-Saint-Denis > > Qualifier & produire l'avantage compétitif > Andu > Tree : Put this in the stack script of your first MC-based WAS > on newconnect s # reading the request from a new socket > read from socket s for 1 line with message "serverread" > end newconnect > > on serverread x,y # processing the request > global PostIn,Retour,Debut,Lepath > put urldecode(y) into PostIn # données POST reçues de wmc.xml > put cr into char (length(PostIn))-1 to (length(PostIn)) of PostIn > put empty into Retour > set itemdelimiter to "&" > doswitcher > write Retour to socket x > close socket x # x = adresse IP & "|" & n° d'ordre du socket fils reçu de wmc.xml > repeat > if the num of lines in (opensockets()) > 1 then close socket line 2 of >(opensockets()) else exit repeat > end repeat > end serverread > > on socketTimout > end socketTimout > > on doswitcher > global PostIn,Retour > set itemDelimiter to "&" > if char 1 to 6 of item 1 of PostIn is "TEST=1" > then Comtest1 > else if char 1 to 6 of item 1 of PostIn is "TEST=2" > then Comtest2 > end doswitcher > > on PreOpenStack > if the short name of this stack is not "WMCEC" then pass PreOpenStack > put " Please, wait. WMC-3 server loading..." > set twelveHourTime to false > put "WMC-3 TCP/IP SEARCH/DB/APP'S server up since" && the short date & "," && the >short time > set the socketTimeoutInterval to "10" > if the windows is "WMCEC" > then accept connections on port "732" with message "newconnect" > else accept connections on port "7321" with message "newconnect" > open file Lepath & "LOGia931.txt" for append > openstack > end PreOpenStack > > on openstack > if the windows is not "WMCEC" then > set the rect of window "message box" to "504,60,936,87" > set the rect of window "WMCEC" to "504,113,936,237" > if "home" is in the windows > then hide window "home" > end if > if the windows contains "Atelier" then close stack "Atelier" > end openstack > > on Comtest1 > global Retour > put "Hello Metacardians !" into Retour > end Comtest1 > > on Comtest2 > global PostIn,Retour > put PostIn into Retour > end Comtest2 > Four : the PHP sockets-listener cgi-script (wmc.php) > <? > > if ($REQUEST_METHOD == POST) { > > $headers = $HTTP_POST_VARS; > while (list($header, $value) = each($headers)) $exAE .= "$header=$value&"; > $exAE = urlencode($exAE); > $activapp = substr($exAE,0,5); > > if ($activapp == "TEST=") { > > $connection = fsockopen("localhost", "765", &$error_number, >&$error_description, "30"); > if ($connection) { > set_socket_blocking($connection, true); > fputs($connection,""); > fputs($connection,"$exAE"."\r\n"); > fpassthru($connection); > } > else { > $connection = fsockopen("localhost", "7654", &$error_number, >&$error_description, "30"); > if ($connection) { > set_socket_blocking($connection, true); > fputs($connection,""); > fputs($connection,"$exAE"."\r\n"); > fpassthru($connection); > } > else print("erreur numéro $error_number >($error_description)<BR>\n"); > } > } > > elseif ($activapp == "PROD=") { // if you wants to have a second WAS running >beside the first one, on its own socket port... > > $connection = fsockopen("localhost", "732", &$error_number, >&$error_description, "30"); > if ($connection) { > set_socket_blocking($connection, true); > fputs($connection,""); > fputs($connection,"$exAE"."\r\n"); > fpassthru($connection); > } > else { > $connection = fsockopen("localhost", "7321", &$error_number, >&$error_description, "30"); > if ($connection) { > set_socket_blocking($connection, true); > fputs($connection,""); > fputs($connection,"$exAE"."\r\n"); > fpassthru($connection); > } > else print("erreur numéro $error_number >($error_description)<BR>\n"); > } > } > } > else print("<HTML><HEAD><TITLE>ERROR: File Not Found</TITLE></HEAD>". > "<BODY background='/gif/fond-maison.gif'><H1>File Not Found</H1><P>". > "<H3>The file you have requested does not exist on this server.</H3>". > "</BODY></HTML><BR>\n"); > > } > > ?> Five : Just build a simple webmc.php html form containing this > <html><head></head><body> > <table><tr><td> > <FORM ACTION="wmc.xml" METHOD="POST"> > <INPUT TYPE="HIDDEN" NAME="ia732" VALUE="1"> > <INPUT TYPE="HIDDEN" VALUE="#MTNV#" NAME="CCL"> > <INPUT TYPE="HIDDEN" VALUE="<? print("$REMOTE_ADDR"); ?>" NAME="IPC"> > <input type="password" name="TDR" size="12"><b> > <spacer type=block height=1 width=15> > <input type="password" name="TDS" size="12"> > <spacer type=block height=1 width=15> > </td><td align=left valign=bottom width=40%> > <input type=submit value=" Valider "> > </td></tr></table> > </form></body></html> Just the basics... Ask for more if those explanations are not clear enough, else have fun and thanks to Scott to be Scott ;-) Regards, Pierre Sahores WEB & VPN applications & databases servers Inspection académique de Seine-Saint-Denis Qualifier & produire l'avantage compétitif _______________________________________________ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard