Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Web » CGI para paginas wap  RESUELTO Responder al tema
Nuevo tema


Página 1 de 1  [ 2 mensajes ] 
 
Nota 2005-08-04 10:21 @473
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10216
Re: CGI para paginas wap  RESUELTO
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&amp;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&amp;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.


Nota 2005-08-05 10:48 @492

Perlero Nuevo
Registrado: 2003-11-21 00:51 @077
Mensajes: 19
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


Responder al tema  [ 2 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO