a php relay to either rev cgi or onrev

Pierre Sahores psahores at free.fr
Tue Jul 28 03:41:50 EDT 2009


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