Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

CGI para paginas wap

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> CGI
Mensaje Lun Ago 01, 2005 5:49 pm
rusox
Invitado


CGI para paginas wap Responder citando

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...
Mensaje Jue Ago 04, 2005 9:21 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4123
Ubicación: Valladolid, España
Re: CGI para paginas wap Responder citando

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.
Mensaje Vie Ago 05, 2005 9:48 am
eiial
Perlero Nuevo
Perlero Nuevo
Registrado: 20 Nov 2003
Mensajes: 48
Responder citando

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
Publicar nuevo tema   Responder al tema    Foros de discusión -> CGI Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group