Lun Ago 01, 2005 5:49 pm
|
|
|
| CGI para paginas wap |
|
|
| Alguien sabe como se hace un cgi en perl u otro para una pagina wap, asi se puede enviar mensajes a email desde el celu..AYUDA...Gracias... |
|
|
|

Jue Ago 04, 2005 9:21 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4082
Ubicación: Valladolid, España
|
|
| Re: CGI para paginas wap |
|
|
| rusox escribió: | | Alguien sabe como se hace un cgi en perl u otro para una pagina wap, asi se puede enviar mensajes a email desde el celu..AYUDA...Gracias... | El sistema es el mismo que para HTML. La diferencia son las marcas que vas a utilizar para wap, que has de usar WML.
Cuando el celular se rellenen los campos y el usuario pulse el botón de enviar, se ejecutará el cgi, de la misma manera que si fuera una página web con un formulario.
El cgi debe leer los parámetros enviados, enviar el correo electrónico y crear una página de respuesta.
Depende de la forma que tengas para enviar el correo en el servidor, podrás utilizar Mail::Simple o Mail::Send.
Yo me hice un cgi wap hace años, para sacar la cartelera de cine de mi ciudad. Algunas partes importantes son:
| Código: |
#!/usr/bin/perl
$|=1; # No buffer de salida
use CGI;
$query=new CGI; # Leemos los parámetros
# enviados por el usuario
($arg= $query->param("arg")) =~ s/\0//go;
($cual= $query->param("cual")) =~ s/\0//go;
%salas = ();
# (Aqui se leía la cartelera y se prepara la salida en formato wml)
# Si el usuario había pulsado una opción, respondemos según
if ($arg eq "cines") {
print "Content-type: text/vnd.wap.wml\n\n";
print <<'EOD1';
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml1_1.1.xml">
<wml>
<card id="cines" title="Cines de Pucela">
<do type="accept" label="Ver Peliculas">
<go href="/cgi-bin/cines.pl?arg=pelis&cual=$(cine)"/>
</do>
<p><select name="cine" title="Cine:">
EOD1
$i=0;
foreach $cine (sort keys %salas) {
$i++;
print "<option value=\"$i\">$cine</option>\n";
}
print <<'EOD2';
</select></p>
<p><a href="/cgi-bin/cines.pl?arg=pelis&cual=$(cine)">Ver Peliculas</a></p>
<p><a href="/index.wml">Atras</a></p>
</card>
</wml>
EOD2
}
if ($arg eq "pelis") {
print "Content-type: text/vnd.wap.wml\n\n";
print <<'EOD3';
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml1_1.1.xml">
<wml>
<card id="pelis" title="Peliculas en Pucela">
<do type="prev" label="Ver Cines">
<prev/>
</do>
EOD3
# <go href="/cgi-bin/cines.pl?arg=cines"/>
$i=0;
foreach $cine (sort keys %salas) {
$i++;
if ($i == $cual) {
print "<p>Peliculas de la sala<br/>$cine<br/>\n";
print "<select iname=\"peli\" title=\"Proyecciones:\">\n";
foreach $peli (@{$salas{$cine}}) {
print "<option>$peli</option>\n";
}
print "<\/select><\/p>\n";
last;
}
}
print <<'EOD4';
</card>
</wml>
EOD4
}
exit;
|
Ves que es muy sencillo, ya que el contenido de las páginas wml está incluído en el própio código, y para que el celular lo reconozca como wml, las cabeceras http han de ser:
| Código: |
| Content-type: text/vnd.wap.wml |
Cuidado con los acentos y comillas. Con que se se escape uno mal puesto, el celular no sacará nada. |
|

Vie Ago 05, 2005 9:48 am
|
 |
eiial
Perlero Nuevo

|
Registrado: 20 Nov 2003
Mensajes: 48
|
|
|
|
|
Una aclaración extra es q debes incluir las mimes correspondiente a wml, en apache, por lo menos hace un tiempo no lo traian son estas:
addtype text/vnd.wap.wml wml
addtype image/vnd.wap.wbmp wbmp
addtype application/vnd.wap.wmlc wmlc
addtype text/vnd.wap.wmlscript wmls
addtype application/vnd.wap.wmlscriptc wmlsc
Saludos |
|
Powered by phpBB © 2001, 2005 phpBB Group
|