Foros del Web » Programación para mayores de 30 ;) » Programación General »

Ayuda con un CGI XFileSharingPro!

Estas en el tema de Ayuda con un CGI XFileSharingPro! en el foro de Programación General en Foros del Web. Saludos... Necesito ayuda con un Script XFileSharingPro, lo he subido por ftp para instalarlo ya, a dos dominios diferentes y siempre cuando voy a instalarlo ...
  #1 (permalink)  
Antiguo 13/09/2010, 19:28
 
Fecha de Ingreso: septiembre-2010
Mensajes: 10
Antigüedad: 13 años, 7 meses
Puntos: 0
Ayuda con un CGI XFileSharingPro!

Saludos...

Necesito ayuda con un Script XFileSharingPro, lo he subido por ftp para instalarlo ya, a dos dominios diferentes y siempre cuando voy a instalarlo no me aparece con el diseño adecuado siempre deformado con codigo asi:

#!/usr/bin/perl use strict; use CGI::Carp qw(fatalsToBrowser); use lib \'.\'; use DBI; use XFileConfig; use Session; use CGI qw(param); my $ok = \"
OK\"; my $ses = Session->new; my $f = $ses->f; if($f->{site_settings}) { my @fields = qw(temp_dir upload_dir htdocs_dir); $f->{temp_dir} = \"$f->{cgi_path}/temp\"; $f->{upload_dir} = \"$f->{cgi_path}/uploads\"; $f->{htdocs_dir} = \"$f->{site_path}/files\"; my $conf; open(F,\"XFSConfig.pm\")||$ses->message(\"Can\'t read XFSConfig\"); $conf.=$_ while ; close F; for my $x (@fields) { my $val = $f->{$x}; $conf=~s/$xs*=>s*(S+)s*,/\"$x => \'$val\',\"/e; } open(F,\">XFSConfig.pm\")||$ses->message(\"Can\'t write XFSConfig\"); print F $conf; close F; } if($f->{save_sql_settings} || $f->{site_settings}) { my @fields = $f->{save_sql_settings} ? qw(db_host db_login db_passwd db_name pasword_salt) : qw(site_url site_cgi site_path); my $conf; open(F,\"XFileConfig.pm\")||$ses->message(\"Can\'t read XFileConfig\"); $conf.=$_ while ; close F; $f->{pasword_salt} = $ses->randchar(12); $f->{dl_key} = $ses->randchar(10); for my $x (@fields) { my $val = $f->{$x}; $conf=~s/$xs*=>s*(S+)s*,/\"$x => \'$val\',\"/e; } open(F,\">XFileConfig.pm\")||$ses->message(\"Can\'t write XFileConfig\"); print F $conf; close F; $ses->redirect(\'install.cgi\'); } if($f->{create_sql}) { my $db = $ses->db; open(FILE,\"install.sql\")||$ses->message(\"Can\'t open create.sql\"); my $sql; $sql.=$_ while ; $sql=~s/CREATE TABLE/CREATE TABLE IF NOT EXISTS/gis; $db->Exec($_) for split(\';\',$sql); $db->Exec(\"INSERT INTO Users (usr_login,usr_email,usr_password,usr_created,usr_ adm) VALUES (?,?,ENCODE(?,?),NOW(),1)\",$f->{usr_login},$f->{usr_email},$f->{usr_password},$c->{pasword_salt}); $ses->redirect(\'install.cgi\'); } print\"Content-type:text/htmlnn\"; print\"
XFileSharingPro Installation Script
\"; print\"1) Permissions Check

\"; my $perms = { \'logs.txt\' => 0666, \'ipn_log.txt\' => 0666, \'fs.cgi\' => 0755, \'index.cgi\' => 0755, \'ipn.cgi\' => 0755, \'cron.pl\' => 0755, \'dl.pl\' => 0755, \'upload.cgi\' => 0755, \'upload_status.cgi\' => 0755, \'api.cgi\' => 0755, \'XFileConfig.pm\' => 0666, \'XFSConfig.pm\' => 0666, \'temp\' => 0777, \'uploads\' => 0777, \"$c->{site_path}/files\" => 0777, \"$c->{site_path}/captchas\" => 0777, }; my @arr; for(keys %{$perms}) { next unless -e $_; chmod $perms->{$_}, $_; my $chmod = (stat($_))[2] & 07777; my $chmod_txt = sprintf(\"%04o\", $chmod); push @arr, \"$_ : $chmod_txt : \".( $chmod == $perms->{$_} ? \'OK\' : \"ERROR: should be \".sprintf(\"%04o\",$perms->{$_}).\"\" ); } chmod 0666, \"$c->{site_path}/.htaccess\" if -f \"$c->{site_path}/.htaccess\"; print join \'
\', @arr; if( grep{/ERROR/}@arr ) { print\"

Fix errors above and refresh this page\"; } else { print\"

All permissions are correct.$ok\"; } print\"\"; print\"2) MySQL Settings

\"; my $dbh=DBI->connect(\"DBI:mysql:database=$c->{db_name};host=$c->{db_host}\",$c->{db_login},$c->{db_passwd}) if $c->{db_name} && $c->{db_host}; if($dbh) { print\"MySQL Settings are correct. Can connect to DB.$ok\"; } else { print<

MySQL Host:

MySQL DB Username:

MySQL DB Password:

MySQL DB Name:


EOP ; } print\"\"; print\"3) MySQL tables create & Admin account

\"; if(!$dbh) { print\"Fix MySQL settings above first.\"; } else { my $sth=$dbh->prepare(\"DESC Files\"); my $rc=$sth->execute(); if($rc) { print\"Tables created successfully.$ok\"; } else { print<
Admin login:

Admin password:

Admin E-mail:


EOP ; } } print\"4) Site URL / Path Settings

\"; if($c->{site_url} && $c->{site_cgi} && -d $c->{site_path}) { print\"Settings are correct.$ok\"; print\"

Login as admin and add FileServer now: $c->{site_url}/login.html\"; } else { my $path = $ENV{DOCUMENT_ROOT}; my ($cgipath) = $ENV{SCRIPT_FILENAME}=~/^(.+)//; my $url_cgi = \'http://\'.$ENV{HTTP_HOST}.$ENV{REQUEST_URI}; $url_cgi=~s//[^/]+$//; my $url = \'http://\'.$ENV{HTTP_HOST}; $url = $c->{site_url}||$url; $url_cgi = $c->{site_cgi}||$url_cgi; $path = $c->{site_path}||$path; print<
htdocs folder URL:
No trailing slash
cgi-bin folder URL:
No trailing slash
cgi-bin disk path:

htdocs disk path:


EOP ; } print\"


Espero que me ayuden, necesito eso, por favor, recomienden que puedo hacer.
  #2 (permalink)  
Antiguo 14/09/2010, 01:09
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 18 años
Puntos: 11
Respuesta: Ayuda con un CGI XFileSharingPro!

¿Has probado a subirlo en modo binario, en lugar de en ASCII?
__________________
JF^D Perl Programming en Español
  #3 (permalink)  
Antiguo 14/09/2010, 08:21
 
Fecha de Ingreso: septiembre-2010
Mensajes: 10
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Ayuda con un CGI XFileSharingPro!

bueno, hare eso a ver por que ya lo he subido automatico y ASCII...
  #4 (permalink)  
Antiguo 14/09/2010, 08:40
 
Fecha de Ingreso: septiembre-2010
Mensajes: 10
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Ayuda con un CGI XFileSharingPro!

bueno, tambien ya lo subi asi de forma binaria..
y sigue haciendo lo mismo...
  #5 (permalink)  
Antiguo 15/09/2010, 05:53
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 18 años
Puntos: 11
Respuesta: Ayuda con un CGI XFileSharingPro!

Un momento... subir, lo estás subiendo... pero... ¿cómo lo estás "viendo"?

Si se trata de una petición HTTP, con un navegador web, ten en cuenta que es muy distinto el aspecto de verlo como texto presentado en el navegador web, a ver el código fuente de ese mismo fichero.

Por lo que veo en las primeras líneas, parece que estás haciendo eso. Recuerda: si quieres ver el verdadero aspecto de un fichero de texto usando un navegador web, debes ir a la opción del navegador de ver el fuente (o código fuente) de la página.

Si te sale error al ejecutarlo, estaría bien ver ese error.

Pues eso... ¿cómo lo estás viendo?
__________________
JF^D Perl Programming en Español
  #6 (permalink)  
Antiguo 15/09/2010, 19:55
 
Fecha de Ingreso: septiembre-2010
Mensajes: 10
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Ayuda con un CGI XFileSharingPro!

bueno como te dije lo he estado subiendo por el programa de FTP FlashFXP, en modo binario y ASCII y nada.

Cuando le doy aver el codigo fuente este es el codigo k me sale de la pagina install.cgi :

#!/usr/bin/perl
use strict;
use CGI::Carp qw(fatalsToBrowser);
use lib '.';
use DBI;
use XFileConfig;
use Session;
use CGI qw(param);
my $ok = "<br><b style='background:#1a1;color:#fff;padding:2px;'>OK </b>";

my $ses = Session->new;
my $f = $ses->f;

if($f->{site_settings})
{
my @fields = qw(temp_dir upload_dir htdocs_dir);
$f->{temp_dir} = "$f->{cgi_path}/temp";
$f->{upload_dir} = "$f->{cgi_path}/uploads";
$f->{htdocs_dir} = "$f->{site_path}/files";
my $conf;
open(F,"XFSConfig.pm")||$ses->message("Can't read XFSConfig");
$conf.=$_ while <F>;
close F;
for my $x (@fields)
{
my $val = $f->{$x};
$conf=~s/$x\s*=>\s*(\S+)\s*,/"$x => '$val',"/e;
}
open(F,">XFSConfig.pm")||$ses->message("Can't write XFSConfig");
print F $conf;
close F;
}

if($f->{save_sql_settings} || $f->{site_settings})
{
my @fields = $f->{save_sql_settings} ? qw(db_host db_login db_passwd db_name pasword_salt) : qw(site_url site_cgi site_path);
my $conf;
open(F,"XFileConfig.pm")||$ses->message("Can't read XFileConfig");
$conf.=$_ while <F>;
close F;
$f->{pasword_salt} = $ses->randchar(12);
$f->{dl_key} = $ses->randchar(10);
for my $x (@fields)
{
my $val = $f->{$x};
$conf=~s/$x\s*=>\s*(\S+)\s*,/"$x => '$val',"/e;
}
open(F,">XFileConfig.pm")||$ses->message("Can't write XFileConfig");
print F $conf;
close F;
$ses->redirect('install.cgi');
}

if($f->{create_sql})
{
my $db = $ses->db;
open(FILE,"install.sql")||$ses->message("Can't open create.sql");
my $sql;
$sql.=$_ while <FILE>;
$sql=~s/CREATE TABLE/CREATE TABLE IF NOT EXISTS/gis;
$db->Exec($_) for split(';',$sql);
$db->Exec("INSERT INTO Users (usr_login,usr_email,usr_password,usr_created,usr_ adm) VALUES (?,?,ENCODE(?,?),NOW(),1)",$f->{usr_login},$f->{usr_email},$f->{usr_password},$c->{pasword_salt});
$ses->redirect('install.cgi');
}


print"Content-type:text/html\n\n";
print"<HTML><BODY style='font:13px Arial;'><h2>XFileSharingPro Installation Script</h2>";
print"<b>1) Permissions Check</b><br><br>";
my $perms = {
'logs.txt' => 0666,
'ipn_log.txt' => 0666,
'fs.cgi' => 0755,
'index.cgi' => 0755,
'ipn.cgi' => 0755,
'cron.pl' => 0755,
'dl.pl' => 0755,
'upload.cgi' => 0755,
'upload_status.cgi' => 0755,
'api.cgi' => 0755,
'XFileConfig.pm' => 0666,
'XFSConfig.pm' => 0666,
'temp' => 0777,
'uploads' => 0777,
"$c->{site_path}/files" => 0777,
"$c->{site_path}/captchas" => 0777,
};
my @arr;
for(keys %{$perms})
{
next unless -e $_;
chmod $perms->{$_}, $_;
my $chmod = (stat($_))[2] & 07777;
my $chmod_txt = sprintf("%04o", $chmod);
push @arr, "<b>$_</b> : $chmod_txt : ".( $chmod == $perms->{$_} ? 'OK' : "<u>ERROR: should be ".sprintf("%04o",$perms->{$_})."</u>" );
}

chmod 0666, "$c->{site_path}/.htaccess" if -f "$c->{site_path}/.htaccess";
print join '<br>', @arr;
if( grep{/ERROR/}@arr )
{
print"<br><br><u>Fix errors above and refresh this page</u>";
}
else
{
print"<br><br>All permissions are correct.$ok";
}


print"<hr>";

print"<b>2) MySQL Settings</b><br><br>";
my $dbh=DBI->connect("DBI:mysql:database=$c->{db_name};host=$c->{db_host}",$c->{db_login},$c->{db_passwd}) if $c->{db_name} && $c->{db_host};
if($dbh)
{
print"MySQL Settings are correct. Can connect to DB.$ok";
}
else
{
print<<EOP
Can't connect to DB with current settings: $DBI::errstr<br><br>

<Form method="POST">
<input type="hidden" name="save_sql_settings" value="1">
MySQL Host:<br>
<input type="text" name="db_host" value="$c->{db_host}"><br>
MySQL DB Username:<br>
<input type="text" name="db_login" value="$c->{db_login}"><br>
MySQL DB Password:<br>
<input type="text" name="db_passwd" value="$c->{db_passwd}"><br>
MySQL DB Name:<br>
<input type="text" name="db_name" value="$c->{db_name}"><br><br>
<input type="submit" value="Save MySQL Settings">
</Form>
EOP
;
}

print"<hr>";

print"<b>3) MySQL tables create & Admin account</b><br><br>";

if(!$dbh)
{
print"Fix MySQL settings above first.";
}
else
{
my $sth=$dbh->prepare("DESC Files");
my $rc=$sth->execute();
if($rc)
{
print"Tables created successfully.$ok";
}
else
{
print<<EOP
<form method="POST">

<input type="hidden" name="create_sql" value="1">
Admin login:<br><input type="text" name="usr_login"><br>
Admin password:<br><input type="text" name="usr_password"><br>
Admin E-mail:<br><input type="text" name="usr_email"><br><br>
<input type="submit" value="Create MySQL Tables & Admin Account">
</form>
EOP
;
}
}

print"<hr><b>4) Site URL / Path Settings</b><br><br>";
if($c->{site_url} && $c->{site_cgi} && -d $c->{site_path})
{
print"Settings are correct.$ok";
print"<br><br><b>Login as admin and add FileServer now: <a href='$c->{site_url}/login.html'>$c->{site_url}/login.html</a></b>";
}
else
{
my $path = $ENV{DOCUMENT_ROOT};
my ($cgipath) = $ENV{SCRIPT_FILENAME}=~/^(.+)\//;
my $url_cgi = 'http://'.$ENV{HTTP_HOST}.$ENV{REQUEST_URI};
$url_cgi=~s/\/[^\/]+$//;
my $url = 'http://'.$ENV{HTTP_HOST};

$url = $c->{site_url}||$url;
$url_cgi = $c->{site_cgi}||$url_cgi;
$path = $c->{site_path}||$path;
print<<EOP
<form method="POST">

<input type="hidden" name="site_settings" value="1">
htdocs folder URL:<br>
<input type="text" name="site_url" value="$url" size=48> <small>No trailing slash</small><br>
cgi-bin folder URL:<br>
<input type="text" name="site_cgi" value="$url_cgi" size=48> <small>No trailing slash</small><br>
cgi-bin disk path:<br>
<input type="text" name="cgi_path" value="$cgipath" size=48><br>
htdocs disk path:<br>
<input type="text" name="site_path" value="$path" size=48><br>

<br>
<input type="submit" value="Save site settings">
</form>
EOP
;

}

print"<hr><b>5) Manually Remove install files</b><br><br>install.cgi<br>install.sql<br>convert.cg i<br>convert.sql";

<div style="text-align: center;"><div style="position:relative; top:0; margin-right:auto;margin-left:auto; z-index:99999">
<!-- Publicidad Alojalo.net -->
<script language='JavaScript' type='text/javascript' src='http://ads.publiwww.com/js/publi.js'></script>
<noscript>Sitio Hospedado por <a href='http://www.alojalo.net' target='_blank'>Alojalo.net</a> un servicio de <a href='http://www.altivium.com' target='_blank'>Altivium S.L.</a> </noscript>

<!-- Powered by Publiwww.com --><br />
<i>
<a target="_blank" href="http://www.alojalo.net">
<font color="#3399FF" style="font-size: 9pt; text-decoration:none">
Hosting Gratis - Alojalo.net</font></a></i><br>
<iframe src="http://www.mercadolibre.com.mx/jm/item?site=MLM&id=46828681" width="480px" height="60px"></iframe>
</div></div>
  #7 (permalink)  
Antiguo 16/09/2010, 02:37
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 18 años
Puntos: 11
Respuesta: Ayuda con un CGI XFileSharingPro!

Obviando la última parte publicitaria, en HTML, que el servidor web ha añadido, como parte del acuerdo que mantienes con ellos, el programa es correcto.

Solo necesitas asegurarte que al programa le acompañan los módulos que necesita para funcionar:
strict - seguro que ya está
CGI::Carp - es muy posible que ya esté instalado
lib - seguro que ya está
DBI - es posible que esté instalado
XFileConfig - en este módulo es donde está el corazón del programa, así que tendrás que instalarlo
Session - creí que se refería al módulo de gestión de sesiones de Apache, pero me temo que no. No sé qué módulo es este
CGI - seguro que ya está instalado.

Los módulos que tengas que subir, te basta con dejarlos en el mismo directorio que está el programa (esa es la razón de la existencia del use lib '.';).

P.D. Ahora que lo reviso... el programa podría estar "cortado" justo en la parte donde aparece el anuncio publicitario.
__________________
JF^D Perl Programming en Español
  #8 (permalink)  
Antiguo 16/09/2010, 09:32
 
Fecha de Ingreso: septiembre-2010
Mensajes: 10
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Ayuda con un CGI XFileSharingPro!

bueno, este Script llamado XfileSharing Prog aun no esta instalado, por eso cuando lo hiba a instalar esto es lo que me sale, todo esos codigos de programacion, si esta bueno, por que asi fue que lo descargue para subirlo, no le he modificado nada, solo lo he subido.

bueno, si esta cortado como dices hay en la parte publicitaria, que crees que pudiera ir? por que soy novato en esto de CGI.
  #9 (permalink)  
Antiguo 16/09/2010, 10:11
 
Fecha de Ingreso: septiembre-2010
Mensajes: 10
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Ayuda con un CGI XFileSharingPro!

aah, en la carpeta de los modulos solo encuentro las siguientes carpetas:
CGI
GD
HTML
TIME
...
  #10 (permalink)  
Antiguo 16/09/2010, 10:39
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 18 años
Puntos: 11
Respuesta: Ayuda con un CGI XFileSharingPro!

Intenta ejecutarlo, y nos dices si sale un error.
__________________
JF^D Perl Programming en Español
  #11 (permalink)  
Antiguo 16/09/2010, 16:24
 
Fecha de Ingreso: septiembre-2010
Mensajes: 10
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Ayuda con un CGI XFileSharingPro!

es que no puedo ejecutarlo, porque todavia no lo he instalado...por los codigos que salen
  #12 (permalink)  
Antiguo 17/09/2010, 03:27
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 18 años
Puntos: 11
Respuesta: Ayuda con un CGI XFileSharingPro!

La instalación de un CGI consiste en colocarlo en un determinado sitio que sabes que el servidor web, en lugar de devolverlo tal cual al usuario, lo va a ejecutar; y del resultado de la ejecución, eso es lo que verá el usuario.

Así que solo te falta subir, además del programa, los módulos de los que depende, y lanzar su ejecución con una petición HTTP. Como el programa hace uso de CGI::Carp qw(fatalsToBrowser) los fallos saldrán en la pantalla del navegador.
__________________
JF^D Perl Programming en Español
  #13 (permalink)  
Antiguo 17/09/2010, 10:39
 
Fecha de Ingreso: septiembre-2010
Mensajes: 10
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Ayuda con un CGI XFileSharingPro!

bueno, me he fijado que todos los cgi que subo a este servidor web, ninguno se me ejecutan correctamente, no tan solo este, todos aparecen asii..

bueno como es estado investigando sera que este servidor no soporta CGI?, o hay que instalar otra cosa para esto?.. se lo pregunto por que veo que usted es un experto en esto.
  #14 (permalink)  
Antiguo 17/09/2010, 13:51
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 18 años
Puntos: 11
Respuesta: Ayuda con un CGI XFileSharingPro!

Lo normal es que haya que guardar los cgi en una carpeta especial, y/o tener una extensión.

Por ejemplo, la gran mayoría de las veces, esa carpeta se llama cgi-bin/, así que deberemos mover los programas allí. O que la extensión sea .cgi. Entonces los tendremos que renombrar.

Todo depende de lo que te indique tu alojamiento de Internet. Debes preguntarles a ellos.

Cuando lo sepas, puedes probar mi CGI mínimo, para comprobar que funciona correctamente.
__________________
JF^D Perl Programming en Español
  #15 (permalink)  
Antiguo 17/09/2010, 20:08
 
Fecha de Ingreso: septiembre-2010
Mensajes: 10
Antigüedad: 13 años, 7 meses
Puntos: 0
De acuerdo Respuesta: Ayuda con un CGI XFileSharingPro!

bueno, cuando probe el CGI Minimo los codigos salieron iguales asi:

#!/usr/bin/perl # CGI MINIMO # JoaquÃ*n Ferrero. 2006. # Este cgi sirve para comprobar si el servidor funciona con Perl+CGI # use CGI qw(:standard ); use CGI::Carp qw(fatalsToBrowser); print header, start_html('CGI MINIMO'), h1('CGI MINIMO'), hr, p('Si ves este texto es que SÍ está funcionando bien.'), hr; # AquÃ* sacamos la lista de los parámetros # en caso de que le haya sido pasado alguno my @parametros = param(); foreach my $par ( @parametros ) { print p($par); print blockquote(param( $par )); } print end_htm

Bueno, tendré que preguntar a ver si ese hosting, soporta eso.

Pues mucha gracia por todo el tiempo y la ayuda que me has brindado durante esta semana, en esto. Se Le Agradece de corazon!.

Gracias por todo!

Etiquetas: cgi
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:03.