El 28 de agosto de 2011 00:13, Felix Perez
<[email protected]>escribió:

> El día 27 de agosto de 2011 03:25, rantis cares
> <[email protected]> escribió:
> > Listeros:
> >
> > Buenas noches tengan todos ustedes.
> >
> > El motivo de mi mail es por lo siguiente:
> >
> > Hace tiempo instale un servidor con apache, php y gnokii, enviaba
> > mensajes automaticos para revisar errores o fallo en la energia
> > electrica, etc...
> >
> > Ahora tengo la necesidad de meter un numero, un mensaje, esto lo he
> > realizado mediante un formulario html, donde use un "input name" lo
> > llame numero y despues un "textarea" donde va el mensaje. Mientras que
> > el boton de "Enviar SMS" se basa en <form method="post"
> > action="sms.php">
> >
> > Posteriormente, buscando en internet, me encontre que el php seria muy
> > sencillo, lo copie y lo guarde, lo subi a ese servidor para que cuando
> > se llene el formulario y se presione el boton "Enviar SMS" se ejecute
> > gnokii enviando el mensaje.
> >
> > Cuando yo ejecuto el comando directo en la consola de comandos del
> > servidor mediante ssh o si estoy frente a dicho servidor la accion se
> > realiza como lo muestro a continuacio:
> >
> >
> > echo "El sistema funciona bien" | gnokii --sendsms 5535423453
> >
> > Y el mensaje llega perfectamente a los pocos segundos y sin ningun
> > problema. Ahora que lo quiero hacer via web mediante el formulario y
> > el script php, no me arroja ningun error pero no lo envia. Tal vez el
> > script tiene algun error o algo por el estilo.
> >
> > ¿Algun comentario que pudiera guiarme para encontrar dicho problema?.
> >
> > El scrip php es el siguiente:
> >
> > <?php
> > //INICIO DEL SCRIPT PHP
> >
> > system('echo '.escapeshellarg('$mensaje').' | gnokii --sendsms
> > '.escapeshellarg('$numero'));
> >
> > ?>
> >
> > Al no funcionar el script anterior, lo midifique y quedo de la siguiente
> manera:
> >
> > <?php
> > //INICIO DEL SCRIPT PHP
> >
> > $numero=$_POST['numero'];
> > $mensaje=$_POST['mensaje'];
> >
> > system('echo '.escapeshellarg('$mensaje').' | gnokii --sendsms
> > '.escapeshellarg('$numero'));
> >
> > ?>
> >
> > Pero tampoco funciono.
> >
> > Gracias
> >
> > Rantiscares
> >
> > P.D. Espero que esto no sea OT.
> >
>
> una más:
>
> http://www.google.cl/#sclient=psy&hl=es&biw=1366&bih=608&source=hp&q=listas+php&pbx=1&oq=listas+php&aq=f&aqi=g1g-s1g2g-s1&aql=&gs_sm=e&gs_upl=934l3413l0l3531l10l9l0l0l0l0l640l3680l2-1.2.2.3l8l0&bav=on.2,or.r_gc.r_pw.&fp=70430f521998e5e5
>
>
> --
> usuario linux  #274354
> normas de la lista:  http://wiki.debian.org/es/NormasLista
> como hacer preguntas inteligentes:
> http://www.sindominio.net/ayuda/preguntas-inteligentes.html
>
>
> --
> To UNSUBSCRIBE, email to [email protected]
> with a subject of "unsubscribe". Trouble? Contact
> [email protected]
> Archive:
> http://lists.debian.org/caaizax4ukl4_yqezxyroygfju_rhswwhnfytp1b-mdvu2cg...@mail.gmail.com
>
>
Yo lo descubrí hace poco, que php no se puede usar con pipes (| ), y lo
resolvi haciendo un script en bash:

enviarsms.sh
#!/bin/sh
echo $1 | gnokii --sendsms $2

A eso le das permiso de ejecucion, por lo menos como www-data:

chown www-data:www-data enviarsms.sh
chmod ug+x enviarsms.sh

y desde el php:

<?php
//INICIO DEL SCRIPT PHP

$numero=$_POST['numero'];
$mensaje=$_POST['mensaje'];

system( dirname(__FILE__) .   '/enviarsms.sh  '.escapeshellarg('$mensaje') .
' ' . escapeshellarg('$numero'));

?>

Por otro lado fijate que PHP no este en safe_mode, que en ese caso no
funcionarian las funciones cms, exec, syste, etc.

-- 
El Tio ~ Programador, hacker y filósofo
web: http://blog.exodica.com.ar
Linked'in: http://www.linkedin.com/in/ogentilezza
Twitter: @exos <http://twitter.com/exos>, Indeti.ca:
@exos<http://identi.ca/exos>
Tels: [+54 11] 638-LINUX (54689) - [+54 9 11] 6799-4797

Responder a