Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^4: puzzled by pages

by grashoper (Monk)
on Jun 11, 2008 at 04:06 UTC ( [id://691377]=note: print w/replies, xml ) Need Help??


in reply to Re^3: puzzled by pages
in thread puzzled by pages

I don't understand why this is not working, if my url is sef.mlxhelp.com it fails, if its www.mlxhelp.com it works.. what gives can anyone clarify why this fails? why does it even look at the prefix part?
sub transform { if (!$Session->{'isAuthenticated'}) { if ($Request->ServerVariables("SERVER_NAME")->item()=~/(\mlxhelp +*)\.com/) { $Response->write("this is what I got $1"); $trns=$Server->MapPath("Transforms/pLogin.xsl"); return $trns; } if ($Request->ServerVariables("SERVER_NAME")->item()=~/(\tem +pohelp*)\.com/) { $Response->write("this is what I got $1"); $trns=$Server->MapPath("Transforms/tpLogin.xsl"); return $trns; } }

Replies are listed 'Best First'.
Re^5: puzzled by pages
by kyle (Abbot) on Jun 11, 2008 at 15:02 UTC

    In a regular expression, "\t" is a tab character, and I'm not sure what "\m" is, if anything.

    use Test::More 'tests' => 2; ok( 'sef.mlxhelp.com' =~ /(\.mlxhelp)\.com/, q{'sef.mlxhelp.com' matches} ); ok( 'www.mlxhelp.com' =~ /(\.mlxhelp)\.com/, q{'www.mlxhelp.com' matches} );

    Note that these will always put ".mlxhelp" in $1 when they match because the capturing parentheses are around that literal string.

      what I am after here is capturing what url they are requesting and if it matches then supplying a login page for that particular account, since I don't want to do this 115 times, I was hoping to find a way to match it without iterating over all these possibles, I am not sure if module test:: will run on perl 5.6.1 and am very hesitant to add anything to the perl install as this is a production box. excellent point about the \t I forgot about that. I can't figure out how to get it to even echo what the url is if I type it manually can someone please tell me what I am doing wrong. there may be more than one way to do it, but I would like to find the one that works the good news is I already have discovered several that don't
      sub transform { if (!$Session->{'isAuthenticated'}) { #Following statement checks if site is www prefix if so it check +s tempo or mlxhelp and uses appropriate stylesheet #for each this only checks www. prefix need another to check the + rest of the potential matches if ($Request->ServerVariables("SERVER_NAME")->item()=~/(\w+)\.co +m/) { $domain = $1; #$Response->write("This is the domain"); if ($1 eq 'tempohelp') { my $trns= $Server->MapPath("Transforms/tpLogin.xsl"); return $trns; } if ($1 eq 'mlxhelp') { $Response->write("This is the domain $1"); my $trns=$Server->MapPath("Transforms/pLogin.xsl"); return $trns; } } #closes wwww prefix check.. if (!(substr($Request->ServerVariables("SERVER_NAME")->item(),0,3) + eq "www") && !(substr($Request->ServerVariables("SERVER_NAME")->item +(),0,3) eq "mlx") && !(lc($Request->ServerVariables("SERVER_NAME")->i +tem()) eq "localhost")) { $Request->ServerVariables("SERVER_NAME")->item() =~ /([\w]*)\./; $str .= ".$1."; $Response->write("this is $str"); }

        At this point, I think perhaps it's time to insert some debugging statements and see what's really going on in there.

        if (!$Session->{'isAuthenticated'}) { $Response->write( 'session is authenticated' ); my $server_name = $Request->ServerVariables("SERVER_NAME")->item() +; $Response->write( "server name is '$server_name'" ); # ... etc ... }

        Get yourself a list of server names that you'll want to match and then take them into a separate small test program to make sure you can get what you want out of them.

        my $server_name = 'www.example.com'; my ( $prefix, $domain ) = ( $server_name =~ m{ \A (\w+) \. (\w+) \. com }xms ); print "prefix: '$prefix'\n"; print "domain: '$domain'\n";

        Also, my use of Test::More was just for demonstration. It's normally used for testing, not for anything else.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://691377]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (4)
As of 2024-04-25 22:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found