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

Siempre lo mismo con scripts

Estas en el tema de Siempre lo mismo con scripts en el foro de Programación General en Foros del Web. Cada vez que intento utilizar un script con CGI/Perl tengo, creo, el mismo problema... Este es un ejemplo: la instalación en el punto 4 dice ...
  #1 (permalink)  
Antiguo 16/05/2004, 11:51
Avatar de SEF
SEF
 
Fecha de Ingreso: noviembre-2003
Ubicación: Villa Luro, Ciudad Autónoma de Buenos Aires, Argentina.
Mensajes: 95
Antigüedad: 21 años
Puntos: 0
Siempre lo mismo con scripts

Cada vez que intento utilizar un script con CGI/Perl tengo, creo, el mismo problema...

Este es un ejemplo: la instalación en el punto 4 dice que modifique la línea con mi info: http://www.fuzzymonkey.org/newfuzzy/...ml#installftp:

Cita:
You may need to modify the first line of index.cgi, email.cgi, autodelete.pl, send.pl, and protected/index.cgi to point to where perl is located on your server. Basically, its just pound, exclamation point, then the path to the perl executable.

#!/usr/bin/perl (most common, and the default for this script)
#!/usr/local/bin/perl
#!/soft/script/bin/perl (University of Tennesse Knoxville)
En el panel de control de mi server dicen:

Cita:
Versión de Kernel: 2.4.20-30.7.legacy
Versión de Apache 1.3.29 (Unix)
Versión de Perl 5.8.1
Dirección de Perl: /usr/bin/perl
Dirección de sendmail: /usr/sbin/sendmail
Modulos de Perl instalados Click para ver
Y por ej, este sería el "index.cgi" que abría que modificar, pero no sé qué ni como: (Ver siguiente mensae)
  #2 (permalink)  
Antiguo 16/05/2004, 11:53
Avatar de SEF
SEF
 
Fecha de Ingreso: noviembre-2003
Ubicación: Villa Luro, Ciudad Autónoma de Buenos Aires, Argentina.
Mensajes: 95
Antigüedad: 21 años
Puntos: 0
Código:
#!/usr/bin/perl

use lib "./lib";
use CGI;
use strict;
use CGI::Carp qw(fatalsToBrowser);
use sitevariables;
use common;
use lang;



package dft;
our $cur = CGI::new();



print "Content-type:text/html\n\n";


our $mode = $cur->param('mode');
our $onpage = $cur->param('page');
our $content;



if ($mode eq "single"){
	$content .= viewsingle();
}elsif($mode eq "viewone"){
	$content .= viewone();
}else{
	$content .= viewall();
}




print cmn::printpage($svb::templatefile,$content);




sub viewall{

	my ($return,$filetype,$temp,$printfiles,@lines,$num);
	$num = 1;
	$return .= "\n<center>
<table width=100%>
	<tr>
		<td width=70%>
			<center>
			$svb::fontheader$svb::title</b></font>
			</center>
		</td>
		<td align=right>
			<form method=get action=search.cgi>
			<input type=text name=searchfor>
			<input type=submit value='$lang::search_blogs'>
			</form>
		</td>
	</tr>
	<tr>
		<td valign=top colspan=2>\n";

	open (INFILE, "./$svb::post_template")||cmn::dienice("$lang::read_file_error - ./$svb::post_template\: $!!");
	while (<INFILE>){
		$temp .= $_;
	}
	close INFILE;

	$temp =~ s/<!--*-->//;
	
	open (INFILE, "./data.blog")||cmn::dienice("$lang::read_file_error - ./data.blog\: $!!");
	@lines = <INFILE>;
	close INFILE;
	my $total = @lines;
	

	my $countpages = 1;
	if ($total > $svb::page){
		$return .= "<br><br><p align=right>$svb::fontsmall$lang::page <a href=index.cgi?page=$countpages>1</a> ";		
		while ($total-($svb::page*$countpages) > 0){
			$countpages++;
			$return .= "<a href=index.cgi?page=$countpages>$countpages</a> ";
		}
		$return .= "</font></p>";
	}


	
	@lines = reverse @lines;

	if(!@lines){
		$return .= "<div style='margin-left: 40px\;'>$svb::fontsmall$lang::noposts</font>"
	}

	my $count4;
	if($onpage > 1){
		while ($count4 < $svb::page*($onpage-1)){
			shift @lines;
			$count4++;
		}
	}
	foreach (@lines){
		if($num <= $svb::page){
		chomp ($_);
		my $temp2 = "\n\n
			<table>
				<tr>
					<td>
					$temp
					</td>
				</tr>
			</table>\n\n\n";
		my ($date,$title,$text) = split(/###/,$_);
		$text =~ s/\n/<br>\n/ig;
		my @files = glob("$svb::htmlsystempath/$date*");
		foreach (@files){
			$_ =~ s/.*\/(\d+-\d+\.[\w\d]+)/$1/ig;
			if($_ =~ /(\.wmv|\.mpg|\.mov|\.avi|\.rm|\.ra|\.asf|\.moov|\.movie)$/ig){
				$filetype .= "<a href=$svb::htmlpath/$_><img src=$svb::htmlpicpath/movie.png border=0 alt='$lang::movie'></a> ";
			}elsif($_ =~ /(\.jpg|\.gif|\.tif|\.png|\.bmp|\.jpeg)$/ig){
				$temp2 =~ s/\[picture\]/<img src=$svb::htmlpath\/$_ align=$svb::picalign>/ig;
			}elsif($_ =~ /(\.pcx|\.pict|\.pdf|\.ps|\.prn|\.eps)$/ig){
				$filetype .= "<a href=$svb::htmlpath/$_><img src=$svb::htmlpicpath/image.png border=0 alt='$lang::image'></a> ";
			}elsif($_ =~ /(\.doc|\.rtf|\.wps|\.txt|\.htm|\.html|\.shtml|\.pwd|\.wks|\.wpd|\.wri|\.hed|\.lwp|\.wp|\.pp|\.sxc|\.sxi)$/ig){
				$filetype .= "<a href=$svb::htmlpath/$_><img src=$svb::htmlpicpath/document.png border=0 alt='$lang::text_document'></a> ";
			}elsif($_ =~ /(\.tar|\.tar.gz\.tgz|\.bz2|\.bz|\.zip|\.cab)$/ig){
				$filetype .= "<a href=$svb::htmlpath/$_><img src=$svb::htmlpicpath/archive.png border=0 alt='$lang::archive'></a> ";
			}elsif($_ =~ /(\.c|\.cpp|\.cxx|\.h|\.o|\.p|\.pl|\.pm|\.cgi|\.php|\.asp|\.prg|\.sc|\.asm|\.cob
								|\.cpi|\.cv|\.sh|\.tsh|\.csh|\.scp)$/ig){
				$filetype .= "<a href=$svb::htmlpath/$_><img src=$svb::htmlpicpath/code.png border=0 alt='$lang::code'></a> ";
			}elsif($_ =~ /(\.wdb|\.adb|\.cdx|\.dbc|\.dbf|\.dbt|\.mdb|\.ntf|\.dif|\.slk|\.syl|\.wkq|\.wkr|\.xls)$/ig){
				$filetype .= "<a href=$svb::htmlpath/$_><img src=$svb::htmlpicpath/database.png border=0 alt='$lang::dbss'></a> ";
			}elsif($_ =~ /(\.au|\.mp3|\.wav|\.ogg|\.aif|\.wma|\.ra|\.ram|\.cda|\.mp2|\.snd|\.voc|\.mod|\.mid|\.midi)$/ig){
				$filetype .= "<a href=$svb::htmlpath/$_><img src=$svb::htmlpicpath/audio.png border=0 alt='$lang::audio'></a> ";
			}else{
				$filetype .= "<a href=$svb::htmlpath/$_><img src=$svb::htmlpicpath/unknown.png border=0 alt='$lang::unknown'></a> ";
			}
		} # foreach @files
		
		if(length($text) > $svb::textmax && $svb::textmax > 0){
			$text = substr($text,0,$svb::textmax);
			$text =~ s/\b\w+$/\.\.\./ig;
			$text =~ s/ $//ig;
			$text .= "...";
		}
		my $pdate = cmn::mydate($date);
		$temp2 =~ s/\[date\]/$pdate/ig;
		$temp2 =~ s/\[readmore\]/<a href=index.cgi?mode=viewone&blog=$date>$lang::fulltext<\/a>/ig;
		$temp2 =~ s/\[text\]/$text/ig;
		$temp2 =~ s/\[title\]/$title/ig;
		$temp2 =~ s/\[picture\]//ig;
		if (!$filetype){
			$filetype = "&nbsp;$lang::noattachedfiles";
		}
		$temp2 =~ s/\[attachedfiles\]/$filetype/ig;

		
		my $cstring;
		if (!(-e "./comments/$date.txt")){
			$cstring = "<a href=comments.cgi?blog=$date>$lang::postcomments<\/a>";	
		}else{
			$cstring = "<a href=comments.cgi?blog=$date> $lang::postcomments</a> - " . ifcomments($date) . " $lang::total"
		}

		$temp2 =~ s/\[comments\]/$cstring/ig;
		$return .= $temp2;
		undef $printfiles;
		undef $temp2;
		undef $filetype;
		$num++;
		} # if $num <= $svb::page
	} # foreach @lines

	my $countpages = 1;
	if ($total > $svb::page){
		$return .= "<p align=right>$svb::fontsmall$lang::page <a href=index.cgi?page=$countpages>1</a> ";		
		while ($total-($svb::page*$countpages) > 0){
			$countpages++;
			$return .= "<a href=index.cgi?page=$countpages>$countpages</a> ";
		}
		$return .= "</font></p>";
	}
	
	$return .= "
		</td>
	</tr>
</table>";

	return $return;

} # sub viewall




sub viewone{

	my ($return,$filetype,$temp,$printfiles,@lines);
	my $blog = $cur->param('blog');
	$return .= "\n<center>
<table width=100%>
	<tr>
		<td width=70%>
			<center>
			$svb::fontheader$svb::title</b></font>
			</center>
		</td>
		<td align=right>
			<form method=get action=search.cgi>
			<input type=text name=searchfor>
			<input type=submit value='$lang::search_blogs'>
			</form>
		</td>
	</tr>
	<tr>
		<td valign=top colspan=2>\n";

	open (INFILE, "./$svb::post_template")||cmn::dienice("$lang::read_file_error - ./$svb::post_template\: $!!");
	while (<INFILE>){
		$temp .= $_;
	}
	close INFILE;

	$temp =~ s/<!--*-->//;
	
	open (INFILE, "./data.blog")||cmn::dienice("$lang::read_file_error - ./data.blog\: $!!");
	@lines = <INFILE>;
	close INFILE;
	
	@lines = reverse @lines;

	foreach (@lines){
		chomp ($_);
		my $temp2 = "\n\n
		<br><br>
			<table>
				<tr>
					<td>
					$temp
					</td>
				</tr>
			</table>\n\n\n";
		my ($date,$title,$text) = split(/###/,$_);
		if($date == $blog){
			$text =~ s/\n/<br>\n/ig;
			my @files = glob("$svb::htmlsystempath/$date*");
			foreach (@files){
				$_ =~ s/.*\/(\d+-\d+\.[\w\d]+)/$1/ig;
				if($_ =~ /(\.wmv|\.mpg|\.mov|\.avi|\.rm|\.ra|\.asf|\.moov|\.movie)$/ig){
					$filetype .= "<a href=$svb::htmlpath/$_><img src=$svb::htmlpicpath/movie.png border=0 alt='$lang::movie'></a> ";
				}elsif($_ =~ /(\.jpg|\.gif|\.tif|\.png|\.bmp|\.jpeg)$/ig){
					$temp2 =~ s/\[picture\]/<img src=$svb::htmlpath\/$_ align=$svb::picalign>/ig;
				}elsif($_ =~ /(\.pcx|\.pict|\.pdf|\.ps|\.prn|\.eps)$/ig){
					$filetype .= "<a href=$svb::htmlpath/$_><img src=$svb::htmlpicpath/image.png border=0 alt='$lang::image'></a> ";
				}elsif($_ =~ /(\.doc|\.rtf|\.wps|\.txt|\.htm|\.html|\.shtml|\.pwd|\.wks|\.wpd|\.wri|\.hed|\.lwp|\.wp|\.pp|\.sxc|\.sxi)$/ig){
					$filetype .= "<a href=$svb::htmlpath/$_><img src=$svb::htmlpicpath/document.png border=0 alt='$lang::text_document'></a> ";
				}elsif($_ =~ /(\.tar|\.tar.gz\.tgz|\.bz2|\.bz|\.zip|\.cab)$/ig){
					$filetype .= "<a href=$svb::htmlpath/$_><img src=$svb::htmlpicpath/archive.png border=0 alt='$lang::archive'></a> ";
				}elsif($_ =~ /(\.c|\.cpp|\.cxx|\.h|\.o|\.p|\.pl|\.pm|\.cgi|\.php|\.asp|\.prg|\.sc|\.asm|\.cob
									|\.cpi|\.cv|\.sh|\.tsh|\.csh|\.scp)$/ig){
					$filetype .= "<a href=$svb::htmlpath/$_><img src=$svb::htmlpicpath/code.png border=0 alt='$lang::code'></a> ";
				}elsif($_ =~ /(\.wdb|\.adb|\.cdx|\.dbc|\.dbf|\.dbt|\.mdb|\.ntf|\.dif|\.slk|\.syl|\.wkq|\.wkr|\.xls)$/ig){
					$filetype .= "<a href=$svb::htmlpath/$_><img src=$svb::htmlpicpath/database.png border=0 alt='$lang::dbss'></a> ";
				}elsif($_ =~ /(\.au|\.mp3|\.wav|\.ogg|\.aif|\.wma|\.ra|\.ram|\.cda|\.mp2|\.snd|\.voc|\.mod|\.mid|\.midi)$/ig){
					$filetype .= "<a href=$svb::htmlpath/$_><img src=$svb::htmlpicpath/audio.png border=0 alt='$lang::audio'></a> ";
				}else{
					$filetype .= "<a href=$svb::htmlpath/$_><img src=$svb::htmlpicpath/unknown.png border=0 alt='$lang::unknown'></a> ";
				}
			} # foreach @files
Lo corté ahí pero sigue...

Última edición por SEF; 16/05/2004 a las 11:55
  #3 (permalink)  
Antiguo 16/05/2004, 11:54
Avatar de SEF
SEF
 
Fecha de Ingreso: noviembre-2003
Ubicación: Villa Luro, Ciudad Autónoma de Buenos Aires, Argentina.
Mensajes: 95
Antigüedad: 21 años
Puntos: 0
Código:
			my $pdate = cmn::mydate($date);
			$temp2 =~ s/\[date\]/$pdate/ig;
			$temp2 =~ s/\[readmore\]/<a href=index.cgi>$lang::back<\/a>/ig;
			$temp2 =~ s/\[text\]/$text/ig;
			$temp2 =~ s/\[title\]/$title/ig;
			$temp2 =~ s/\[picture\]//ig;
			$temp2 =~ s/\[attachedfiles\]/$filetype/ig;

			my $cstring;
			if (!(-e "./comments/$date.txt")){
				$cstring = "<a href=comments.cgi?blog=$date>$lang::postcomments<\/a>";	
			}else{
				$cstring = "<a href=comments.cgi?blog=$date> $lang::postcomments</a> - " . ifcomments($date) . " $lang::total"
			}
			$temp2 =~ s/\[comments\]/$cstring/ig;


			$return .= $temp2;
			undef $printfiles;
			undef $temp2;
			undef $filetype;
		} # if date == blog
	} # foreach @lines
	
	$return .= "
		</td>
	</tr>
</table><br><br><br>
<table width=80%><tr><td>
$svb::fontheader $lang::comments</font><center>
<table width=100% bgcolor=$svb::darkcolor><tr><td height=1></td></tr></table>";
	my @comments;
	if(!(-e "./comments/$blog.txt")){
		$return .= "</center>$svb::fontsmall This entry has no comments.<br><br><center>";
	}else{
		open(INFILE,"./comments/$blog.txt")||cmn::dienice("$lang::read_file_error\: comments file for $blog\: $!!");
		@comments = <INFILE>;
		close INFILE;
		$return .= "<table width=100%>";
		foreach(@comments){
			my ($date,$a,$name,$email,$comments) = split(/###/,$_); 
			$return .= "<tr><td><br>$svb::fontsmall<b>$name\:</b></font></td><td>&nbsp;";
			if($email =~ /^[\w\-\.]+\@[\w\-\.]+\.[\w\-\.]+$/i){
				$return .= "<a href=mailto:$email><img src=$svb::htmlpicpath/email.gif border=0></a>"
			}
			$return .= "</td></tr>
			<tr><td cellspan=2>$svb::fontsmall$comments</font></td></tr>";
		} # foreach comments
		$return .= "</table>";
	} # if the comments file exists
	$return .= "</td></tr></table></center>";
	return $return;


} # sub viewone

sub ifcomments {
	my $blog = $_[0];
	my $return;
	if(!(-e "./comments/$blog.txt")){
		$return = "";
	}else{
		open(INFILE,"./comments/$blog.txt")||cmn::dienice("$lang::read_file_error\: comments file for $blog\: $!!");
		my @comments = <INFILE>;
		close INFILE;
		$return = @comments;
	}
	return $return;
}
Ayuda por favor.
  #4 (permalink)  
Antiguo 17/05/2004, 07:05
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
pues lo que te dice es que no tiene la ubicación de perl en donde lo estás direccionando (/usr/bin/perl) pero en tu panel aparece esa dirección...
__________________
Esteban Quintana
  #5 (permalink)  
Antiguo 17/05/2004, 07:06
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
YO HABLARÍA CON TU ADMINISTRADOR DE SERVIDOR!!!!
__________________
Esteban Quintana
  #6 (permalink)  
Antiguo 17/05/2004, 17:26
Avatar de SEF
SEF
 
Fecha de Ingreso: noviembre-2003
Ubicación: Villa Luro, Ciudad Autónoma de Buenos Aires, Argentina.
Mensajes: 95
Antigüedad: 21 años
Puntos: 0
No entiendo... qué debería consultar con el administrador?
  #7 (permalink)  
Antiguo 17/05/2004, 17:51
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
deberías preguntarle si esa es realmente la dirección del intérprete de perl, porque el mismo servidor te dice que no la es cuando quieres ejecutar el script...Pero fíjate antes de que el script esté bien escript, que no tenga errores de sintaxis

SALUDOS
__________________
Esteban Quintana
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 14:25.