• Publicidad

Re: CGI para paginas wap

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

CGI para paginas wap

Notapor rusox » 2005-08-01 18:49 @826

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...
rusox
 

Publicidad

Re: CGI para paginas wap

Notapor explorer » 2005-08-04 10:21 @473

rusox escribiste: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: Seleccionar todo
#!/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: Seleccionar todo
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.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor eiial » 2005-08-05 10:48 @492

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


Volver a Web

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados