|  | Posted by RaTT on 01/21/05 18:50 
Hi, 
 From what i can see you dont even need to call global, as your passing
 variables to the function ? this could be causing the script to
 confuse itself.
 
 hth
 
 
 On Fri, 21 Jan 2005 09:30:21 -0700, Jason <jason.gerfen@scl.utah.edu> wrote:
 > Jason wrote:
 > > Simple functions to check & fix if necessary invalid formating of a MAC
 > > address... I seem to be having problems with the global variable $mac
 > > not being returned from the fix_mac() function.  Any help is appreciated.
 > >
 > > <?php
 > > /*
 > >  * ex. 00:AA:11:BB:22:CC
 > >  */
 > > function chk_mac( $mac ) {
 >      global $mac;
 > >  if( eregi(
 > > "^[0-9A-Fa-f]{2}\:[0-9A-Fa-f]{2}\:[0-9A-Fa-f]{2}\:[0-9A-Fa-f]{2}\:[0-9A-Fa-f]{2}\:[0-9A-Fa-f]{2}$",
 > > $mac ) ) {
 > >   return 0;
 > >  } else {
 > >   return 1;
 > >  }
 > > }
 > >
 > > /*
 > >  * check validity of MAC & do replacements if necessary
 > >  */
 > > function fix_mac( $mac ) {
 > >  global $mac;
 > >  /* strip the dash & replace with a colon */
 > >  if( eregi(
 > > "^[0-9A-Fa-f]{2}\-[0-9A-Fa-f]{2}\-[0-9A-Fa-f]{2}\-[0-9A-Fa-f]{2}\-[0-9A-Fa-f]{2}\-[0-9A-Fa-f]{2}$",
 > > $mac ) ) {
 > >   $mac = preg_replace( "/\-/", ":", $mac );
 > >   return $mac;
 > >  }
 > >  /* add a colon for every two characters */
 > >  if( eregi( "^[0-9A-Fa-f]{12}$", $mac ) ) {
 > >   /* split up the MAC and assign new var names */
 > >   @list( $mac1, $mac2, $mac3, $mac4, $mac5, $mac6 ) = @str_split( $mac,
 > > 2 );
 > >   /* put it back together with the required colons */
 > >   $mac = $mac1 . ":" . $mac2 . ":" . $mac3 . ":" . $mac4 . ":" . $mac5 .
 > > ":" . $mac6;
 > >   return $mac;
 > >  }
 > > }
 > >
 > > // do our checks to make sure we are using these damn things right
 > > $mac1 = "00aa11bb22cc";
 > > $mac2 = "00-aa-11-bb-22-cc";
 > > $mac3 = "00:aa:11:bb:22:cc";
 > >
 > > // make sure it is global
 > > global $mac;
 > >
 > > // if mac submitted is invalid check & fix if necessary
 > > if( chk_mac( $mac1 ) != 0 ) {
 > >  $mac = fix_mac( $mac1 ); echo $mac1 . " converted to " . $mac . "<br>";
 > > }
 > > if( chk_mac( $mac2 ) != 0 ) {
 > >  $mac = fix_mac( $mac2 ); echo $mac2 . " converted to " . $mac . "<br>";
 > > }
 > > if( chk_mac( $mac3 ) != 0 ) {
 > >  $mac = fix_mac( $mac3 ); echo $mac3 . " converted to " . $mac . "<br>";
 > > }
 > >
 > > ?>
 > Still does not resolve the problem.  declaring $mac as global in the
 > chk_mac() function.
 >
 > --
 > Jason Gerfen
 > Student Computing
 > Marriott Library
 > 801.585.9810
 > jason.gerfen@scl.utah.edu
 >
 > "And remember... If the ladies
 >   don't find you handsome, they
 >   should at least find you handy..."
 >               ~The Red Green show
 >
 > --
 > PHP General Mailing List (http://www.php.net/)
 > To unsubscribe, visit: http://www.php.net/unsub.php
 >
 >
  Navigation: [Reply to this message] |