У меня такая трабла появилась: На моем сайте в гостевой книге можно написать свою домашнюю страничку. Но я никак не могу придумать, как мне сделать обработку вводимого текста в ссылку. Если в поле для заполнения писать сайт с "http://", то все норма, а если без, то ссылка открывается неправильно. Тогда я стал добавлять к сайту http:// через скрипт, и попросил писать в гостевухе сайты без http:// , но все рано многие пишут с ним. Так вот: я в perl'е не силен, помогите написать часть скрипта так, чтобы любой способ записи приводился к виду http(ftp)://***.***.***/***.
Вот, часть скрипта моей гостевухи:
| Код | <HR><FORM action="guestbook.cgi" METHOD="POST"> <TABLE border=0> <TR><TD>Имя:</TD><TD colspan=3><INPUT NAME="Name"></TD></TR> <TR><TD>E-mail:</TD><TD colspan=3><INPUT NAME="Email"></TD></TR> [b]<TR><TD>Домашняя страничка:</TD><TD colspan=3><INPUT NAME="URL"></TD></TR>[/b] <TR><TD>Сообщение:</TD><TD colspan=3><TEXTAREA NAME="Message" rows=6 cols=64></TEXTAREA></TD></TR> <TR><TD>Настроение:</TD><TD><IMG src="$Mailgifs[0]"></TD><TD><IMG src="$Mailgifs[1]"></TD><TD><IMG src="$Mailgifs[2]"></TD></TR> <TR><TD> </TD><TD><INPUT TYPE="radio" NAME="Mood" VALUE="$Mailgifs[0]" checked></TD> <TD><INPUT TYPE="radio" NAME="Mood" VALUE="$Mailgifs[1]"></TD> <TD><INPUT TYPE="radio" NAME="Mood" VALUE="$Mailgifs[2]"></TD></TR> <TR><TD colspan=4><INPUT TYPE="submit" VALUE="Отослать"></TD> </TR> </TABLE></FORM> <HR><BR> HTML_generating open DATAFILE,"$datafile"|| die "Cannot open $datafile $!\n"; @GUESTDATA=<DATAFILE>; print @GUESTDATA; close DATAFILE; print "</BODY></HTML>"; } else{ foreach(@fields=split(/&/,$query)){ if(/^Name=(.*)/){$Name=&urldecode($1);} if(/^Email=(.*)/){$Email=&urldecode($1);} [b]if(/^URL=(.*)/){$URL=&urldecode($1);}[/b] if(/^Message=(.*)/){$Message=&urldecode($1);} if(/^Mood=(.*)/){$Mood=&urldecode($1);} } $MESSAGE=&strhtm($Message); if(-e $datafile){unless (-r $datafile && -w $datafile){die "Cannot access $datafile\n";}} $Newmsg="<font>$dat</font><br><br><IMG src=\"$Mood\"><BR><A href =\"mailto:$Email\">$Name</A>". [b] "(<A href=\"$URL\" target='_blank'>$URL</A>):<BR>\n$MESSAGE<HR>\n";[/b] open DATAFILE,"+<$datafile" || die "Cannot open $datafile $!\n"; @GUESTDATA=<DATAFILE>; @GUESTDATA=($Newmsg,@GUESTDATA); seek(DATAFILE,0,0); print DATAFILE @GUESTDATA; close DATAFILE;
|
ЗЫ Строки, где адрес обрабатывается я выделил. |