|
|
#1 (permalink) |
![]() Fecha de Ingreso: marzo-2005
Mensajes: 127
|
Script scroll
|
|
|
|
|
|
#2 (permalink) |
|
$moderador{'Esteban'}
![]() ![]() |
okok, manos a la obra !!!
Lo principal será hacer el scroll en JS con un documento HTML que valla subiendo como las propagandas...Luego en un segundo paso administraremos ese HTML con PERL. 1er paso: crear una carpeta "scroll" en la carpeta defoult para los HTML...O sea que la dirección será http://www.dominio.com/scroll 2do paso: En el archivo index.html colocá el siguiente código
Código:
Y en el external.htm colocá<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Ejemplo de Scroll modificable dinámicamente - MonoSwim - Alextroy - Forosdelweb.com</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="5">
<tr>
<td><table width="100%" height="150" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td width="65%"><div align="center"><font color="#000000" size="3" face="Arial, Helvetica, sans-serif"><strong>
Script de scroll !!! </strong></font></div></td>
<td width="35%" bgcolor="#FFFFCC">
<!--<IFRAME> scroller- By Dynamic Drive-->
<!--For full source code and more DHTML scripts, visit http://www.dynamicdrive.com-->
<!--This credit MUST stay intact for use-->
<iframe id="datamain" src="external.htm" width=100% height=100% marginwidth=0 marginheight=0 hspace=0 vspace=3 frameborder=0 scrolling=no></iframe></td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>
Código:
Y bueno, hasta acá llegamos, Avisame si te funciona así seguimos adelante !!!<html>
<body bgcolor="#FFFFCC">
<div id="datacontainer" style="position:absolute;left:0;top:10;width:100%" onMouseover="scrollspeed=0" onMouseout="scrollspeed=cache">
<!-- ADD YOUR SCROLLER COMMENT INSIDE HERE--------------------->
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><b><font size="3" face="Verdana, Arial, Helvetica, sans-serif">Novedades</font></b></p>
<p align="left"><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><strong>Viajes
Exóticos </strong></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
Viaje a indonesia con todo pago, un paquete muy completo con
hotel 5 estrellas y viajes aéreos en primera.</font></p>
<p align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="3">Bariloche
- Fiesta de la Nieve </font></strong> <br>
Imperdible fiesta de 3 días a puro sky, snowboard
y las mejores fiestas en la base del cerro catedral</font></p>
<p align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="3">Sudáfrica
salvaje </font></strong><br>
Espectacular viaje a través de las exóticas
geografías de sudáfrica, un viaje a pura adrenalina, en un hotel
con todas las comodidades</font></p>
<p align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="3">Viaje
al fin del mundo</font><br>
</strong>Viaje a Usuahia con todo pago para realizar
todo el turismo aventura que esta ciudad ofrece, un viaje para realizar con
toda la familia.</font>
<!-- END SCROLLER CONTENT---------------------------------------->
<div>
<script language="JavaScript1.2">
//<iframe> script by Dynamicdrive.com
//Specify speed of scroll. Larger=faster (ie: 5)
var scrollspeed=cache=2
function initialize(){
marqueeheight=document.all? parent.document.all.datamain.height : parent.document.getElementById("datamain").getAttribute("height")
dataobj=document.all? document.all.datacontainer : document.getElementById("datacontainer")
dataobj.style.top=5
thelength=dataobj.offsetHeight
scrolltest()
}
function scrolltest(){
dataobj.style.top=parseInt(dataobj.style.top)-scrollspeed
if (parseInt(dataobj.style.top)<thelength*(-1))
dataobj.style.top=5
setTimeout("scrolltest()",50)
}
window.onload=initialize
</script>
</div></div></body>
</html>
<center><span style="width: 100%; font-family: helvetica; font-size: 6px; Filter: Alpha(Opacity=0,FinishOpacity=0, Style=1);">
Design downloaded from <a href="http://www.freewebtemplates.com" style="font-family: helvetica; font-size: 6px;">FreeWebTemplates.com</a><br>
Free web design, web templates, web layouts, and website resources!
</span></center><br><br>
Saludos |
|
|
|
|
|
#3 (permalink) |
![]() Fecha de Ingreso: marzo-2005
Mensajes: 127
|
Scroll
Ok, lo he hecho tal y como has dicho y va como la seda....
Ahora a por el formulario ¿no? Una cosa solo, digo yo que si escriben muchos mensajes tardará una eternidad en mostrarlos todos ¿no?. ¿como podriamos regular esto de alguna forma? Tal vez haciendo que se borren pasados unos minutos??? Bueno venga,que estoy adelantando acontecimientos, primero el formulario. ¿hay que hacerlo en una CGI? |
|
|
|
|
|
#4 (permalink) |
|
$moderador{'Esteban'}
![]() ![]() |
Si, será un CGI que administrará los mensajes que hay en el HTML, ahora cuando tenga un minuto de tiempo empiezo el script, la estructura para que vos la sigas...
Es que tengo mucho trabajo y hoy tengo un parcial y mañana otro...AUXILIO !!!!!!! Saludos |
|
|
|
|
|
#6 (permalink) |
![]() Fecha de Ingreso: marzo-2005
Mensajes: 127
|
script scroll
Hola amigo, ¿que tal fueron los parciales? espero que bien...
Cuando quieras y tengas un momento continuamos con lo del formulario para el scroll ¿de acuerdo? que estoy ansioso por empezar con los quebraderos de cabeza de Perl... |
|
|
|
|
|
#8 (permalink) |
|
$moderador{'Esteban'}
![]() ![]() |
Hola amigo, si pienses que me olvidé de vos !!!
Para empezar el script vamos a darle la primera funcionalidad, que será abrir y escribir el archivo external.htm y agregarle una línea al final del mismo...Con un mensaje cualquiera, es para estar seguros que el archivo lo abre bien y lo graba... El script sería más o menos así...
Código:
Guardá este script en el una carpeta como ser cgi-bin/scroll y ejecutalo a ver si funciona, hay que ver la dirección del archivo external que sea la correcta...#!/usr/bin/perl
use strict;
print "Content-type: text/html\n\n";
open (DATABASE, ">>../../scroll/external.htm") || print "No se puede abrir el archivo";
flock(DATABASE,2);
print DATABASE "<p>Nueva línea en el <b>archivo</b> con formato HTML</p>\n";
close (DATABASE) || print "Error al cerrar el archivo";
print "Línea agregada !!! FUNCIONA !!!";
exit(1);
Saludos PD: Disculpa la tardanza, ahora estoy más libre... |
|
|
|
|
|
#9 (permalink) |
![]() Fecha de Ingreso: marzo-2005
Mensajes: 127
|
script scroll
Hola, no te preocupes, ya me imaginé que estarias ocupado, aunque reconozco que estaba algo impaciente.
Bueno, lo he hecho tal y como me has dicho y creo que funciona correctamente. Cuando lo ejecuto me imprime la cadena: No se puede abrir el archivoError al cerrar el archivoLÃ*nea agregada !!! FUNCIONA !!!. ¿es esto lo que debe imprimir? Pero hay una cosa que no entiendo muy bien, ¿se supone que el script guarda en el fichero external.htm esa cadena? Porque lo he comprobado y a este fichero no se le ha añadido nada.... |
|
|
|
|
|
#10 (permalink) |
|
$moderador{'Esteban'}
![]() ![]() |
No se puede abrir el archivo, lo imprime cuando hay un error al abrir el archivo, seguramente la dirección del mismo está mal o no tiene los permisos chmod 766 Error al cerrar el archivo, oviamente lo coloca porque si no lo pudo abrir menos lo podrá cerrar... El mensaje que debe colocar es el de Línea agregada !!! FUNCIONA !!! y al abrir el external.htm debes ver que se agregó la línea...Checkea eso de los permisos y que la dirección sea la exacta... Saludos |
|
|
|
|
|
#11 (permalink) |
![]() Fecha de Ingreso: marzo-2005
Mensajes: 127
|
script scroll
No lo entiendo, he puesto permisos 755 al archivo scroll.pl y 766 a external.html ¿es así como deben estar?
He observado en el log de errores que cuando lo ejecuta y me escribe la cadena que antes te he comentado aparecen dos lineas: [error]flock() on closed filehandle DATABASE at scroll.pl line 8 [error]print() on closed filehandle DATABASE at scroll.pl line 9. |
|
|
|
|
|
#12 (permalink) |
|
$moderador{'Esteban'}
![]() ![]() |
Claro, te escribe eso porque no pudo abrir el archivo, con lo cual tampoco lo puede bloquear (flock() ) y tampoco escribir (print DATABASE)...
Está bien la dirección del archivo, con ../ vas al directorio padre... Hagamos una cosa, colocá open (DATABASE,">>external.htm") || print "No se puede abrir el archivo"; Y colocá el archivo external.htm en el mismo directorio que el script, ahí no puede haber problemas de direcciones... Checkea también que .htm y .html son distintos...Igual que mayúsculas y minúsculas... Saludos |
|
|
|
|
|
#13 (permalink) |
![]() Fecha de Ingreso: marzo-2005
Mensajes: 127
|
script scroll
Ok, ya dí con la tela...
Siento no poder seguir mirandolo ayer, pero esque como esto lo hago desde el curro a veces se ponen los jefes muy pesados con el tema del trabajo... Que tonteria ¿no? Bueno, pues resulta que desde la carpeta cgi-bin es necesario poner httpdocs en las rutas. Así que al final queda asi: ../../httpdocs/scroll/external.html. La verdad esque no termino de cogerle el truco a esto de las rutas, porque probé tambien con la ruta absolula y tampoco me lo aceptó. En fin, ya me muestra el mensaje de ¡¡FUNCIONA!! y he comprobado que se ha añadido la cadena al fichero. ¿que toca ahora? |
|
|
|
|
|
#14 (permalink) |
|
$moderador{'Esteban'}
![]() ![]() |
Perfecto !!! ahora un poco de teoría y luego te hago el script...Pero antes te digo como funciona para que lo entiendas...
Primero la ruta absoluta no te sirve si la colocás desde http, ya que es el sistema operativo y no la web la que abre el archivo, deberías de poner la ruta absoluta del sistema operativo que es algo raro como /usr/bin/apache/htdocs......Lo que en windows sería algo como c:/Mis Documentos/scroll/ Ahora en el script tenemos que hacer que cuando comienza tome las variables que le mandamos desde el formulario y las imprima en esta línea que le cargamos al archivo...Y en el index.html colocar el formulario con los campos para enviar el mensaje y el action de este formulario debe estar direccionado al script... Que campos querés que envíe el usuario cuando envía el formulario ? Podría ser Nombre y Mensaje !!! Decime y lo empiezo a hacer, se entiende la lógica ? Saludos |
|
|
|
|
|
#15 (permalink) |
![]() Fecha de Ingreso: marzo-2005
Mensajes: 127
|
script scroll
Si, se entiende perfectamente.
Habia pensado que como para acceder a la página primero habrá que validarse en la misma con un nombre de usuario y una contraseña, que el formulario coja automáticamente el nombre del usuario que se ha validado, esta seria la variable $usuario que se introduce en un CGI llamado validar.pl. Así que en teoria el único dato que introduciria el formulario seria el mensaje... De todas formas si de esta forma es demasiado complicado podriamos empezar como tu has dicho y luego ya se iria perfeccionando... ¿que crees que es mas conveniente? |
|
|
|
|
|
#16 (permalink) |
|
$moderador{'Esteban'}
![]() ![]() |
Pues para ir de a partes lo haría de la forma fácil, y luego le colocamos el nombre automáticamente y le podríamos colocar la fecha/hora también automáticamente...
Y si en el script de validar tiene status de usuarios también se podría colocar el status, algo así como la nacioalidad, la edad, o algún dato así... En 1 hora te subo el script... Saludos |
|
|
|
|
|
#17 (permalink) |
|
$moderador{'Esteban'}
![]() ![]() |
El script quedaría así:
Código:
En un rato te subo el index.html con el formulario...#!/usr/bin/perl
use strict;
#cargamos la información de entrada en la variable hash "inputs"
my %inputs = &input_data();
print "Content-type: text/html\n\n";
open (DATABASE, ">>../../httpdocs/scroll/external.html") || print "No se puede abrir el archivo";
flock(DATABASE,2);
print DATABASE "<p><b>$inputs{'autor'} dice</b> $inputs{'mensaje'}</p>\n";
close (DATABASE) || print "Error al cerrar el archivo";
#Imprimimos el mensaje de todo OK
print "Mensaje guardado correctamente";
# función que realiza la carga de información del formulario...
sub input_data {
my (@pairs,$buffer,%input_data);
if ($ENV{'REQUEST_METHOD'} eq 'GET') {
@pairs = split(/&/, $ENV{'QUERY_STRING'});
}elsif ($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
}else {
&error('leer','datos');
}
foreach my $pair (@pairs) {
my ($name, $value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$name =~ tr/\0//d;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/\0//d;
$value =~ s/\n//g;
$input_data{$name} = $value;
}
return(%input_data);
}
exit(1);
Saludos |
|
|
|
|
|
#18 (permalink) |
|
$moderador{'Esteban'}
![]() ![]() |
El index.html quedaría así...Claro que luego le tenés que cambiar el diseño a gusto...Pues esto está sin ningún formato...
Código:
Checkea que funcione todo y seguimos...<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Ejemplo de Scroll modificable dinámicamente - MonoSwim - Alextroy - Forosdelweb.com</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="5">
<tr>
<td><table width="100%" height="150" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td width="65%"><div align="center"><font color="#000000" size="3" face="Arial, Helvetica, sans-serif"><strong>
Script de scroll !!! </strong></font></div></td>
<td width="35%" bgcolor="#FFFFCC">
<!--<IFRAME> scroller- By Dynamic Drive-->
<!--For full source code and more DHTML scripts, visit http://www.dynamicdrive.com-->
<!--This credit MUST stay intact for use-->
<iframe id="datamain" src="external.html" width=100% height=100% marginwidth=0 marginheight=0 hspace=0 vspace=3 frameborder=0 scrolling=no></iframe></td>
</tr>
</table></td>
</tr>
</table>
<form action="http://www.tudominio.com/cgi-bin/scroll/scroll.pl" method="post" name="formulario" id="formulario">
<p>Nombre:<br>
<input name="autor" type="text" id="autor">
</p>
<p>Mensaje:<br>
<textarea name="mensaje" cols="40" rows="3" id="mensaje"></textarea>
</p>
<p>
<input type="submit" name="Submit" value="Enviar Mensaje">
</p>
</form>
<p> </p>
</body>
</html>
Saludos Última edición por monoswim; 20-may-2005 a las 06:20. |
|
|
|
|
|
#19 (permalink) |
![]() Fecha de Ingreso: marzo-2005
Mensajes: 127
|
script scroll
OK, Funciona!! y no me ha dado ningún error, Lo único es que he tenido que modificar una linea del formulario de index.html porque guardaba el mensaje pero no el nombre del usuario, concretamente esta:
<input type="text" name="autor" id="autor">. Solo tengo una duda, ¿porque has creado toda la funcion input_data()? ¿no habria sido mas sencillo usar el módulo CGI.PM? Imagino que si lo has hecho asi es por algo, claro... Bueno, cuado quieras seguimos. |
|
|
|
|
|
#20 (permalink) |
|
$moderador{'Esteban'}
![]() ![]() |
jajajaja, me confundí autor con nombre, coloqué nombre en uno y autor en otro...jaja, ahora lo modifico para que ya quede...
El input_data() o el CGI.PM...mmm...mmm...La verdad es que sería lo mismo, pero a mi me gusta más el input_data() porque sabés exactamente que tiene y podés formatear la info ahí mismo, por ejemplo, cuando en los foros colocas código entre [] ya sea code o img o algo así, estaría bueno colocarlo en tu script así los usuarios podrán colocar más formato a sus mensajes...como Negrita, Cursiva y esas cosas... Con que querés seguir ? colocando la fecha y hora de cada mensaje ? Saludos |
|
|
|
|
|
#21 (permalink) |
![]() Fecha de Ingreso: marzo-2005
Mensajes: 127
|
script scroll
Ok, lo de la fecha y la hora me parece buena idea.
No se si me dará tiempo a verlo hoy, porque estoy a punto de salir y en mi casa no tengo Internet, estoy cambiando la linea y aún no me han activado el nuevo servicio...voy a tener 1MB!! En fin, si no da tiempo hoy lo miraré el lunes ¿ok? buen fin de semana |
|
|
|
|
|
#22 (permalink) |
![]() Fecha de Ingreso: marzo-2005
Mensajes: 127
|
script scroll
Bueno, ya estamos aqui otra vez...y toda una apasionante semana laboral por delante...
Pues nada, que cuando quieras seguimos con es script. Queria comentar una cosa, cuando introdiuzco un nuevo mensaje mediante el formulario este no se añade a los demas mensajes que habian por defecto, sino que aparece de forma estática en la ventana scroll por encima de los anteriores, como si estuvies en una capa superior... Te comento esto porque no se si es debido a que aún no esté acabado o si es que he hecho algo mal. |
|
|
|