Para seguir con el tema de "OpenSMS" de modificaciones a Mensajitos.php que hizo rdoggsv, abro este para hablar sobre el soporte a Telefonica.
Noten que mxgxw puede tener una implementación totalmente distinta en su programa original, así que no le manden los probables errores de esta modificación.
Esto se hace con el fin de que puedan mejorar/actualizar/modificar su Mensajitos.php, aunque lo ideal es esperar el cambio "oficial" aprobado mxgxw
.
Gracias a
tc1421 por probarlo.
(aunque creo que
Guanaco ya tenia la solución
)
/modulos/Telefonica.php<?php
/**
TELEFONICA MOVILES EL SALVADOR, S.A. de C.V.
7-100-0000 7-149-9999
7-700-0000 7-719-9999
7-780-0000 7-784-9999
7-790-0000 7-794-9999
7-810-0000 7-839-9999
7-845-0000 7-849-9999
7-990-0000 7-998-9999
7-999-0000 7-999-9999
*/
function Telefonica_getOperator() {
return "Telefonica";
}
function Telefonica_checkPhone($pre) {
if((($pre>=71000000)&&($pre<=71499999))||
(($pre>=77000000)&&($pre<=77199999))||
(($pre>=77800000)&&($pre<=77849999))||
(($pre>=77900000)&&($pre<=77949999))||
(($pre>=78100000)&&($pre<=78399999))||
(($pre>=78450000)&&($pre<=78499999))||
(($pre>=79900000)&&($pre<=79989999))||
(($pre>=79990000)&&($pre<=79999999))) {
return true;
}
return false;
}
function Telefonica_sendSMS($telefono,$mensaje,$firma) {
$snoopy = new Snoopy;
// Opciones de Snoopy (Mensajitos se muestra como IExplore 6.0)
// Esto es por las paginas que bloquean a navegadores que no
// sean Internet Explorer
$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";
// URL referente:
$snoopy->referer = "http://216.184.96.114/sms/mensaje.php";
// URL para mensajes de Telef�nica
$submit_url = "http://216.184.96.114/sms/mensaje.php";
$snoopy->fetch($snoopy->referer);
//1era protección: Cookie -> PHPSessionID
//Si no concuerda entonces el mensaje es invalido
//Obtenemos las cookies
foreach($snoopy->headers as $i=>$val) {
if(strstr($val,"Set-Cookie")) {
preg_match("/Set\-Cookie: (.*)=(.*);/",$val,$matches);
$snoopy->cookies[$matches[1]] = $matches[2];
//echo $matches[1]."=".$matches[2];
}
}
//2da protección: Número al azar
//Al cargar la pagina esta contiene un numero que fue generado por el servidor (presumo) y hay que mandarlo de vuelta para validar el mensaje
$frandom = stripos($snoopy->results, "\"></td", stripos($snoopy->results,"random"));
$srandom = substr($snoopy->results, $frandom - 10, 10);
// Valores del formulario
$submit_vars["random"] = $srandom;
$submit_vars["to"] = "00503".$telefono;
$submit_vars["text"] = $mensaje;
//3ra proteccion: Conteo de caracteres
//Por algún motivo se necesita mandar el número de caracteres restantes, que es el resultado de el número maximo de
//caracteres por mensaje de telefonica menos la suma de los caracteres del mensaje más los de la firma.
$submit_vars["count"] = 120 - (strlen($mensaje) + strlen($firma));
$submit_vars["subject"] = $firma;
$submit_vars["submit"] = "Enviar";
$snoopy->submit($submit_url,$submit_vars);
/*
echo $submit_vars["random"]."<BR>";
echo $submit_vars["to"]."<BR>";
echo $submit_vars["text"]."<BR>";
echo $submit_vars["count"]."<BR>";
echo $submit_vars["subject"]."<BR>";
echo $submit_vars["submit"]."<BR>";
echo $snoopy->results."<BR>";
*/
$srandom = stripos($snoopy->results,"Enviando");
if ($srandom !== FALSE){
return true;
}
return false;
}
if (!function_exists("stripos")) {
function stripos($str,$needle,$offset=0)
{
return strpos(strtolower($str),strtolower($needle),$offset);
}
}
?>
PD: no me aweben por lo de
stripos que no hayaba como hacerle hasta que encontré esa función en internet