a php relay to either rev cgi or onrev

Pierre Sahores psahores at free.fr
Tue Jul 28 15:02:02 EDT 2009


Perhaps usefull about the same subject :

<http://www.javascriptkit.com/javatutors/externalphp.shtml>

Pierre

--
Pierre Sahores
mobile : 06 03 95 77 70
www.sahores-conseil.com


Le 28 juil. 09 à 09:41, Pierre Sahores a écrit :

> Hi Friends,
>
> Nicolas,
>
> You just need to insert a simple line of javascript in your "irev"  
> script to call a "php" piece of code from it.
>
> About a working example see : <http://www.woooooooords.com/contact.irev 
> > where the reCAPTCHA part relies on 3 simple php sniplets and the  
> rest of the page on irev.
>
> In calling from a simple js snipplet directly inserted in your  
> revTalk code the first php sniplet, you go outside of the rev loop  
> of your process ;
> Then, the first php sniplet call the main php function (second php  
> sniplet) you need to handle and have the return catched-back as your  
> needed irev readable $_vars
> At this point, and it's up to you..., you can have a thirst php  
> sniplet called from the second one, etc..., as long as you need to  
> bind more php libs functions to the php part of your process.
>
>
> Feel free to adapt the reCAPTCHA process working example as a  
> starter point :
>
>
> the irev form :
>
> <link rel="stylesheet" type="text/css" href="Blog/stylesheet_1.css" />
>
> <fieldset>
>
> <table>
> <tr>
> <td><label for="nom">Nom *</label></td>
> <td><input class="textInput" type="text" name="nom" id="nom"></td>
> </tr>
> <tr>
> <td><label for="entreprise">Entreprise *</label></td>
> <td><input class="textInput" type="text" name="entreprise"  
> id="entreprise"></td>
> </tr>
> <tr>
> <td><label for="activite">Activité *</label></td>
> <td><input class="textInput" type="text" name="activite"  
> id="activite"></td>
> </tr>
> <tr>
> <td><label for="adresse">Adresse</label></td>
> <td><input class="textInput" type="text" name="adresse"  
> id="adresse"></td>
> </tr>
> <tr>
> <td><label for="ville">Ville</label></td>
> <td><input class="textInput" type="text" name="ville" id="ville"></td>
> </tr>
> <tr>
> <td><label for="codepostal">Code postal</label></td>
> <td><input class="textInput" type="text" name="codepostal"  
> id="codepostal"></td>
> </tr>
> <tr>
> <td><label for="email">Email *</label></td>
> <td><input class="textInput" type="text" name="email" id="email"></td>
> </tr>	
> <tr>
> <td><label for="telephone">Téléphone *</label></td>
> <td><input class="textInput" type="text" name="telephone"  
> id="telephone"></td>
> </tr>
> <tr>
> <td><label for="objet">Objet *</label></td>
> <td><select size="1" name="objet" id="objet" style="font-size:11px;  
> color:gray;">
> <option selected>Choisir dans la liste</option>
> <option value="inédits pour sites de jeux en ligne">lots  
> inédits pour sites de jeux en ligne</option>
> <option value="inédits pour sites à vocation  
> commerciale">lots inédits pour sites à vocation commerciale</option>
> <option value="inédits pour sites  d'information">lots inédits  
> pour sites d'information</option>
> <option value="inédits pour sites  d'information locale">lots  
> inédits pour sites d'information locale</option>
> <option value="inédits pour sites pédagogiques">lots  
> inédits pour sites pédagogiques</option>
> <option value="inédits pour presse de jeux">lots inédits pour  
> presse de jeux</option>
> <option value="inédits pour presse gratuite">lots inédits pour  
> presse gratuite</option>
> <option value="inédits pour presse de loisirs">lots inédits  
> pour presse de loisirs</option>
> <option value="inédits pour presse généraliste">lots inédits  
> pour presse généraliste</option>
> <option value="inédits pour presse locale">lots inédits pour  
> presse locale</option>
> <option value="autre demande">autre demande</option>
> </select></td>
> </tr>	
> <tr>
> <td><label for="detail">Détail</label></td>
> <td><textarea id="detail" name="detail" rows="3"></textarea></td>
> </tr>
> <tr><td colspan=2 height=20></td></tr>
> <tr><td colspan=2 align=right>
> <script type="text/javascript">include('./recaptchaloader.php')</ 
> script>
> </td></tr>
> <tr><td colspan=2 height=12></td></tr>
> <tr><td colspan=2 align=right>
> <input type="submit" value="Envoyer" name="contact_report"  
> class="bouton"> ## irev handled submit button
> </td></tr></table>
>
> </fieldset>
>
>
> the first .php sniplet used to bind the php $_vars to the irev  
> handled submit button :
>
> <?php
>
> 	require_once('recaptchatmp.php');
> 	
> ?>
>
>
> the second .php sniplet :
>
>
> <?php
>
> require_once('recaptchalib.php');
>
> // Get a key from http://recaptcha.net/api/getkey
> $publickey = "your_revcaptcha_public_key_goes_there";
> $privatekey = "your_revcaptcha_private_key_goes_there";
>
> # the response from reCAPTCHA
> $resp = null;
> # the error code from reCAPTCHA, if any
> $error = null;
>
> # was there a reCAPTCHA response?
> if ($_POST["recaptcha_response_field"]) {
>        $resp = recaptcha_check_answer ($privatekey,
>                                        $_SERVER["REMOTE_ADDR"],
>                                         
> $_POST["recaptcha_challenge_field"],
>                                         
> $_POST["recaptcha_response_field"]);
> }
>
> echo recaptcha_get_html($publickey, $error);
>
> ?>
>
>
> witch call the 'recaptchalib.php' as the thirst one, etc...
>
>
> the submit button irev function handler
>
>
> function sc_contact_report
> 	repeat for each key k in $_POST
> 		if "lang_flag_mem" is not in k and "contact_report" is not in k  
> and \
> 			"recaptcha_challenge_field" is not in k and  
> "recaptcha_response_field" is not in k
> 		then put k & ":" && $_POST[k] & cr & cr after aaa
> 	end repeat
> 	put $_POST[telephone] into phonectl
> 	filter phonectl with "*[0-9]*"
> 	if $_POST[nom] is "" or $_POST[entreprise] is "" or  
> $_POST[activite] is "" or phonectl is "" \
> 		or "@" is not in $_POST[email] or $_POST[objet] is ""
> 	then return "<fieldset class=contact><table>" & \
> 	 	sc_info_alert2("Merci de renseigner l'ensemble des champs suivis  
> du caractère" && quote & "*" & quote && \
> 	 	"avant de poursuivre.<br><br><br>") & "</table></fieldset>" & \
> 		"<table><tr><td height=40></td></tr></table>"
> 	else if the num of words in $_POST[recaptcha_response_field] is not  
> "2"
> 	then return "<fieldset class=contact><table>" & \
> 		sc_info_alert2("Merci de raffraichir et de compléter le  
> challenge" && quote & "reCAPTCHA" & quote && \
> 		"avant de poursuivre.<br><br><br>") & "</table></fieldset>" & \
> 		"<table><tr><td height=40></td></tr></table>"
> 	else
> 		set httpheaders to "Content-Type: application/x-www-form- 
> urlencoded" & cr & cr
> 		post ("privatekey=your_revcaptcha_private_key_goes_there" & \
> 			"&remoteip=" & $_server[remote_addr] & "&challenge=" &  
> $_POST[recaptcha_challenge_field] & \
> 			"&response=" & $_POST[recaptcha_response_field]) to url "http://api-verify.recaptcha.net/verify 
> "
> 		if "true" is in it and "success" is in it then
> 			get mail("sc at woooooooords.com","[CONTACT] Demande d'information  
> services WOOOOOOOORDS.COM... [CONTACT]",aaa,"sc at woooooooords.com")
> 			return "<fieldset class=contact><table>" & \
> 				sc_info_alert("Cher(e)" && $_POST[nom] & ",<br><br>Votre demande  
> d'information nous est bien parvenue." && \
> 				"Elle sera examinée pour suites à donner sous 48h/ 
> jours ouvrables.<br><br>Bien cordialement,<br><br>" & \
> 				"Pierre-Jean Sahores<br>responsable de  
> publication<br><br><br><br>",$_server[http_referer]) & "</table></ 
> fieldset>" & \
> 				"<table><tr><td height=40></td></tr></table>"
> 		else
> 			return "<fieldset class=contact><table>" & \
> 	 			sc_info_alert2("Merci de raffraichir et de compléter le  
> challenge" && quote & "reCAPTCHA" & quote && \
> 	 			"avant de poursuivre.<br><br><br>") & "</table></fieldset>" & \
> 				"<table><tr><td height=40></td></tr></table>"
> 		end if
> 	end if
> end sc_contact_report
>
>
>
> Hope this can help you to setup your irev driven php process
>
> Kind Regards,
>
> Pierre
>
> --
> Pierre Sahores
> mobile : 06 03 95 77 70
> www.sahores-conseil.com
>
>
> Le 28 juil. 09 à 07:59, Bernard Devlin a écrit :
>
>> Years ago Pierre Sahores built an application server based on Rev.   
>> He
>> used Apache/PHP as the front end, then used socket connections  
>> between
>> PHP and Rev so that a long-running Rev process could interact with
>> databases, and return the results via PHP to Apache.
>>
>> There is a lot to recommend in his design.  He has a tutorial (in
>> french and english) here:
>> http://www2.sahores-conseil.com/insead/index_en.html
>>
>> I can imagine you may not need the whole infrastructure he had in
>> mind, but getting the Apache/PHP/Rev stuff to work sounds like it
>> might be what you want, and from what I remember when I followed his
>> tutorial a couple of years ago, it was all straightforward.
>>
>> Bernard
>>
>> On Tue, Jul 28, 2009 at 4:07 AM, Nicolas Cueto<niconiko at gmail.com>  
>> wrote:
>>> After much testing and frustation, I've discovered that the on-rev
>>> server is unable to read the $_POST array when sent by WAP/WML-based
>>> Japanese cellphones to an .irev script.
>>>
>>> As a workaround, I've make a .php script that can read in $_POST.  
>>> The
>>> next step is using php to forward the $_POST data to an .irev or
>>> rev-cgi script -- assuming of course that such a thing is possible.
>>> But, I really want to avoid having to learn (any more!) php, so am
>>> instead posting this somewhat off-topic request for help.
>>>
>>> Has someone tried to use php to relay data to .irev/rev-cgi?
>>>
>>> Thanks.
>>>
>>> --
>>> Nicolas Cueto
>>> _______________________________________________
>>> use-revolution mailing list
>>> use-revolution at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your  
>>> subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>>
>> _______________________________________________
>> use-revolution mailing list
>> use-revolution at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your  
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>
>
>
>





More information about the use-livecode mailing list