SitePoint Sponsor

User Tag List

Results 1 to 15 of 15
  1. #1
    SitePoint Enthusiast
    Join Date
    Nov 2013
    Posts
    33
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    can't figure out why I'm not getting errors

    I used a tutorial to do this and it is posting fine but the error checks aren't working

    Code:
    <?php 
    include_once 'core/init.php';
    $general->logged_out_protect();
    //////Displaying Data/////////////
     $article_id=$_GET['article_id']; // Collecting data from query string
     if(!is_numeric($article_id)){ // Checking data it is a number or not
     echo "Data Error"; 
     exit;
     }
    ?>
    <!doctype html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<link rel="stylesheet" type="text/css" href="css/style.css" >
        <title>Settings</title>    
    </head>
    <body>
    	<div id="container">
    		<?php include 'includes/menu.php'; ?>
    		<?php
    	    if (isset($_GET['success']) && empty($_GET['success'])) {
    	        echo '<h3>Your details have been updated!</h3>';	        
    	    } else{
    
                if(empty($_POST) === false) {		
    			$errors = array();
    
    				if (isset($_POST['name']) && !empty ($_POST['name'])){
    					if (ctype_alpha($_POST['name']) === false) {
    					$errors[] = 'Please enter your Name with only letters!';
    					}	
    				}
    if (isset($_POST['email']) && !empty ($_POST['email'])){
    				if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) {
                $errors[] = 'Please enter a valid email address';
            }
    	}
    				      $name 	= htmlentities(trim($_POST['name']));
                                     $email 	= htmlentities(trim($_POST['email']));
    					$bio 			= htmlentities(trim($_POST['bio']));
    					
    					$users->update_user($name, $email, $bio, $user_id);
    					header("Location: settings.php?success&article_id=$article_id");
    					exit();
    				
    				} else if (empty($errors) === false) {
    					echo '<p>' . implode('</p><p>', $errors) . '</p>';	
    				}	
                }
        		?>
             
        		<h2>Settings.</h2> <p><b>Note: Information you post here is made viewable to others.</b></p>
                <hr />
    
                <form action="" method="post" enctype="multipart/form-data">
                             
                	<div id="personal_info">
    	            	<h3 >Change Profile Information </h3>
    	                <ul>
    	                    <li>
    	                        <h4>Name:</h4>
    	                        <input type="text" name="name" value="<?php if (isset($_POST['name']) ){echo htmlentities(strip_tags($_POST['name']));} else { echo $user['name']; }?>">
    	                    </li>     
    <li>
    	                        <h4>Email:</h4>
    	                        <input type="text" name="email" value="<?php if (isset($_POST['email']) ){echo htmlentities(strip_tags($_POST['email']));} else { echo $user['email']; }?>">
    	                    </li>     
    	                     <li>
    	                        <h4>Bio:</h4>
    	                        <textarea name="bio"><?php if (isset($_POST['bio']) )
    {
    echo htmlentities(strip_tags($_POST['bio']));
    } else {
     echo $user['bio'];
     }?></textarea>
    	                    </li>
    	            	</ul>    
                	</div>
                	<div class="clear"></div>
                	<hr />
                		<span>Update Changes:</span>
                        <input type="submit" value="Update">
                   
                </form>
        </div>
    </body>
    </html>
    <?php
    //}
    ?>

  2. #2
    Programming Team silver trophybronze trophy
    Mittineague's Avatar
    Join Date
    Jul 2005
    Location
    West Springfield, Massachusetts
    Posts
    17,253
    Mentioned
    196 Post(s)
    Tagged
    2 Thread(s)
    Try after putting this at the beginning
    PHP Code:
    <?php
    error_reporting
    (E_ALL);
    ini_set('display_errors'true);

  3. #3
    SitePoint Mentor bronze trophy
    John_Betong's Avatar
    Join Date
    Aug 2005
    Location
    City of Angels
    Posts
    1,888
    Mentioned
    74 Post(s)
    Tagged
    6 Thread(s)
    Try this debugging funtion:
    PHP Code:

    <?php 
    error_reporting
    (-1);
    ini_set('display_errors'1);

    // debug ==========
    function dd($value$vd=FALSE)
    {
       echo 
    '<pre>';
         if( 
    $vd):
           
    var_dump($value);
         else:
           
    print_r($value);
         endif;
       echo 
    '</pre>';
       die;
    }

    include_once 
    'core/init.php';
    $general->logged_out_protect();
    //////Displaying Data/////////////


    dd$_GET ); // rem to proceed


     
    $article_id=$_GET['article_id']; // Collecting data from query string
     
    if(!is_numeric($article_id)){ // Checking data it is a number or not
     
    echo "Data Error"
     exit;
     }
    ?>
    Last edited by John_Betong; Jan 30, 2014 at 21:07. Reason: added var_dump(); and formatting
    Learn how to be ready for The New Move to Discourse

    How to make Make Money Now with a *NEW* look

    Be sure to congratulate Wolfshade on earning Member of the Month for August 2014

  4. #4
    SitePoint Enthusiast
    Join Date
    Nov 2013
    Posts
    33
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by John_Betong View Post
    Try this debugging funtion:
    PHP Code:

    <?php 
    error_reporting
    (-1);
    ini_set('display_errors'1);

    // debug ==========
    function dd($value$vd=FALSE)
    {
       echo 
    '<pre>';
         if( 
    $vd):
           
    var_dump($value);
         else:
           
    print_r($value);
         endif;
       echo 
    '</pre>';
       die;
    }

    include_once 
    'core/init.php';
    $general->logged_out_protect();
    //////Displaying Data/////////////


    dd$_GET ); // rem to proceed


     
    $article_id=$_GET['article_id']; // Collecting data from query string
     
    if(!is_numeric($article_id)){ // Checking data it is a number or not
     
    echo "Data Error"
     exit;
     }
    ?>
    Sorry, maybe I didn't explain right. The problem is that on submit of the form if I enter ??<<???//// in as the name or email it doesn't throw an error and it should which means the validation isn't working.

  5. #5
    Programming Team silver trophybronze trophy
    Mittineague's Avatar
    Join Date
    Jul 2005
    Location
    West Springfield, Massachusetts
    Posts
    17,253
    Mentioned
    196 Post(s)
    Tagged
    2 Thread(s)
    Taking only a quick look for now it looks like a problem with your code logic.

    Take a look at where $errors is being assigned and where the conditionals are testing for it.

  6. #6
    SitePoint Mentor bronze trophy
    John_Betong's Avatar
    Join Date
    Aug 2005
    Location
    City of Angels
    Posts
    1,888
    Mentioned
    74 Post(s)
    Tagged
    6 Thread(s)
    Quote Originally Posted by myliberty View Post
    Sorry, maybe I didn't explain right. The problem is that on submit of the form if I enter ??<<???//// in as the name or email it doesn't throw an error and it should which means the validation isn't working.
    The function dd( $val ) displays the $val parameter and then halts program execution.

    Try calling dd($_POST); immediately after the the function. If the $_POST parameters are what you expected then REM // dd($_POST); and then use the dd(,,,); to trace your program execution.

    PHP Code:
    <?php  
    error_reporting
    (-1); 
    ini_set('display_errors'1); 

    // debug ========== 
    function dd($value$vd=FALSE

       echo 
    '<pre>'
         if( 
    $vd): 
           
    var_dump($value); 
         else: 
           
    print_r($value); 
         endif; 
       echo 
    '</pre>'
       die; 


    dd$_POST ); // REM when values are correct then use the function again to trace execution.

    include_once 'core/init.php'

    $general->logged_out_protect(); 
    //////Displaying Data///////////// 


    dd$_GET ); // rem to proceed 


     
    $article_id=$_GET['article_id']; // Collecting data from query string 
     
    if(!is_numeric($article_id)){ // Checking data it is a number or not 
     
    echo "Data Error";  
     exit; 
     } 
    ?>
    Learn how to be ready for The New Move to Discourse

    How to make Make Money Now with a *NEW* look

    Be sure to congratulate Wolfshade on earning Member of the Month for August 2014

  7. #7
    SitePoint Enthusiast
    Join Date
    Nov 2013
    Posts
    33
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by John_Betong View Post
    The function dd( $val ) displays the $val parameter and then halts program execution.

    Try calling dd($_POST); immediately after the the function. If the $_POST parameters are what you expected then REM // dd($_POST); and then use the dd(,,,); to trace your program execution.

    PHP Code:
    <?php  
    error_reporting
    (-1); 
    ini_set('display_errors'1); 

    // debug ========== 
    function dd($value$vd=FALSE

       echo 
    '<pre>'
         if( 
    $vd): 
           
    var_dump($value); 
         else: 
           
    print_r($value); 
         endif; 
       echo 
    '</pre>'
       die; 


    dd$_POST ); // REM when values are correct then use the function again to trace execution.

    include_once 'core/init.php'

    $general->logged_out_protect(); 
    //////Displaying Data///////////// 


    dd$_GET ); // rem to proceed 


     
    $article_id=$_GET['article_id']; // Collecting data from query string 
     
    if(!is_numeric($article_id)){ // Checking data it is a number or not 
     
    echo "Data Error";  
     exit; 
     } 
    ?>
    Not really understanding but what I get is expected
    Array
    (
    [article_id] => 1
    )

    Like I said the form submits fine it's the validating that doesn't work.

  8. #8
    SitePoint Mentor bronze trophy
    John_Betong's Avatar
    Join Date
    Aug 2005
    Location
    City of Angels
    Posts
    1,888
    Mentioned
    74 Post(s)
    Tagged
    6 Thread(s)
    Quote Originally Posted by myliberty View Post
    Not really understanding but what I get is expected
    Array
    (
    [article_id] => 1
    )

    Like I said the form submits fine it's the validating that doesn't work.
    Your script has quite a few if(...) validations. Which particular one do you mean?

    May I suggest inserting the following line which will show the script line number and then halt the script. Once you have established your script is working as expected up to that line then remove the line and move on to the next possible problematic validation.

    PHP Code:

      
    echo '<br />'__LINE__dd$testVar); die; 

    // revised script
    PHP Code:
    <?php  
    include_once 'core/init.php';
    $general->logged_out_protect();
    //////Displaying Data/////////////
    $article_id=$_GET['article_id']; // Collecting data from query string
    if(!is_numeric($article_id)){ // Checking data it is a number or not
      
    echo "Data Error"
    exit;
    }
    ?>
    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <link rel="stylesheet" type="text/css" href="css/style.css" >
    <title>Settings</title>    
    </head>
    <body>
      <div id="container">
        <?php include 'includes/menu.php'?>
        <?php
          
    if (isset($_GET['success']) && empty($_GET['success'])) {
              echo 
    '<h3>Your details have been updated!</h3>';          
          }else{
            if(empty(
    $_POST) === false) {   
              
    $errors = array();

              if (isset(
    $_POST['name']) && !empty ($_POST['name'])){
                if (
    ctype_alpha($_POST['name']) === false) {
                  
    $errors[] = 'Please enter your Name with only letters!';
              } 
            }

            if (isset(
    $_POST['email']) && !empty ($_POST['email'])){
              if (
    filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) {
                        
    $errors[] = 'Please enter a valid email address';
              }
            }
            
    $name   htmlentities(trim($_POST['name']));
                                   
    $email   htmlentities(trim($_POST['email']));
            
    $bio      htmlentities(trim($_POST['bio']));

            
    $users->update_user($name$email$bio$user_id);
            
    header("Location: settings.php?success&article_id=$article_id");
            exit();

            } else if (empty(
    $errors) === false) {
              echo 
    '<p>' implode('</p><p>'$errors) . '</p>';  
            } 
          }
        
    ?>
             
        <h2>Settings.</h2> 
        <p><b>Note: Information you post here is made viewable to others.</b></p>
        <hr />

        <form action="" method="post" enctype="multipart/form-data">
          <div id="personal_info">
            <h3 >Change Profile Information </h3>
            <ul>
              <li>
                <h4>Name:</h4>
                <input type="text" name="name" value="<?php if (isset($_POST['name']) ){echo htmlentities(strip_tags($_POST['name']));} else { echo $user['name']; }?>">
              </li>     
              <li>
                <h4>Email:</h4>
                <input type="text" name="email" value="<?php if (isset($_POST['email']) ){echo htmlentities(strip_tags($_POST['email']));} else { echo $user['email']; }?>">
              </li>     
              <li>
                <h4>Bio:</h4>
                <textarea name="bio">
                  <?php if (isset($_POST['bio']) )
                  {
                    echo 
    htmlentities(strip_tags($_POST['bio']));
                  }else{
                    echo 
    $user['bio'];
                  }
                  
    ?>
                </textarea>
              </li>
            </ul>    

            <div class="clear">
            </div>

            <hr />
            <span>Update Changes:</span>
            <input type="submit" value="Update">
          </div><!-- div id="personal_info" -->
        </form>

      </div><!-- div id="container" -->

    </body>
    </html>
    Learn how to be ready for The New Move to Discourse

    How to make Make Money Now with a *NEW* look

    Be sure to congratulate Wolfshade on earning Member of the Month for August 2014

  9. #9
    SitePoint Enthusiast
    Join Date
    Nov 2013
    Posts
    33
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    none of the validating is working

    Quote Originally Posted by John_Betong View Post
    Your script has quite a few if(...) validations. Which particular one do you mean?

    May I suggest inserting the following line which will show the script line number and then halt the script. Once you have established your script is working as expected up to that line then remove the line and move on to the next possible problematic validation.

    PHP Code:

      
    echo '<br />'__LINE__dd$testVar); die; 

    // revised script
    PHP Code:
    <?php  
    include_once 'core/init.php';
    $general->logged_out_protect();
    //////Displaying Data/////////////
    $article_id=$_GET['article_id']; // Collecting data from query string
    if(!is_numeric($article_id)){ // Checking data it is a number or not
      
    echo "Data Error"
    exit;
    }
    ?>
    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <link rel="stylesheet" type="text/css" href="css/style.css" >
    <title>Settings</title>    
    </head>
    <body>
      <div id="container">
        <?php include 'includes/menu.php'?>
        <?php
          
    if (isset($_GET['success']) && empty($_GET['success'])) {
              echo 
    '<h3>Your details have been updated!</h3>';          
          }else{
            if(empty(
    $_POST) === false) {   
              
    $errors = array();

              if (isset(
    $_POST['name']) && !empty ($_POST['name'])){
                if (
    ctype_alpha($_POST['name']) === false) {
                  
    $errors[] = 'Please enter your Name with only letters!';
              } 
            }

            if (isset(
    $_POST['email']) && !empty ($_POST['email'])){
              if (
    filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) {
                        
    $errors[] = 'Please enter a valid email address';
              }
            }
            
    $name   htmlentities(trim($_POST['name']));
                                   
    $email   htmlentities(trim($_POST['email']));
            
    $bio      htmlentities(trim($_POST['bio']));

            
    $users->update_user($name$email$bio$user_id);
            
    header("Location: settings.php?success&article_id=$article_id");
            exit();

            } else if (empty(
    $errors) === false) {
              echo 
    '<p>' implode('</p><p>'$errors) . '</p>';  
            } 
          }
        
    ?>
             
        <h2>Settings.</h2> 
        <p><b>Note: Information you post here is made viewable to others.</b></p>
        <hr />

        <form action="" method="post" enctype="multipart/form-data">
          <div id="personal_info">
            <h3 >Change Profile Information </h3>
            <ul>
              <li>
                <h4>Name:</h4>
                <input type="text" name="name" value="<?php if (isset($_POST['name']) ){echo htmlentities(strip_tags($_POST['name']));} else { echo $user['name']; }?>">
              </li>     
              <li>
                <h4>Email:</h4>
                <input type="text" name="email" value="<?php if (isset($_POST['email']) ){echo htmlentities(strip_tags($_POST['email']));} else { echo $user['email']; }?>">
              </li>     
              <li>
                <h4>Bio:</h4>
                <textarea name="bio">
                  <?php if (isset($_POST['bio']) )
                  {
                    echo 
    htmlentities(strip_tags($_POST['bio']));
                  }else{
                    echo 
    $user['bio'];
                  }
                  
    ?>
                </textarea>
              </li>
            </ul>    

            <div class="clear">
            </div>

            <hr />
            <span>Update Changes:</span>
            <input type="submit" value="Update">
          </div><!-- div id="personal_info" -->
        </form>

      </div><!-- div id="container" -->

    </body>
    </html>
    I am trying to validate the name is a name and that the email is valid but it will not error if it's not on either of them that is what I am trying to get working. Like I said this was a tutorial I followed for a user area. I get
    Code:
       Your details have been updated!
    even if there should be an error

  10. #10
    SitePoint Mentor bronze trophy
    John_Betong's Avatar
    Join Date
    Aug 2005
    Location
    City of Angels
    Posts
    1,888
    Mentioned
    74 Post(s)
    Tagged
    6 Thread(s)
    Quote Originally Posted by myliberty View Post
    I am trying to validate the name is a name and that the email is valid but it will not error if it's not on either of them that is what I am trying to get working. Like I said this was a tutorial I followed for a user area. I get
    What did you try and what values did you enter?

    Can you supply a link to the Tutorial. maybe others have had problems and they are now resolved.

    Try modifying your script so that you know what values are being passed:
    PHP Code:
    // lines to insert
      
    echo '<br />$name = '   $name;
      echo 
    '<br /> $mail = '    $email;
      echo 
    '<br />$bio = '       $bio;
      echo 
    '<br />$user_id = ' $user_id;
      die;

    // about line 42
            
    $users->update_user($name$email$bio$user_id); 
            
    header("Location: settings.php?success&article_id=$article_id"); 
            exit(); 
    Learn how to be ready for The New Move to Discourse

    How to make Make Money Now with a *NEW* look

    Be sure to congratulate Wolfshade on earning Member of the Month for August 2014

  11. #11
    From space with love silver trophy
    SpacePhoenix's Avatar
    Join Date
    May 2007
    Location
    Poole, UK
    Posts
    5,072
    Mentioned
    103 Post(s)
    Tagged
    0 Thread(s)
    Without seeing your code that interacts with the database or the tutorial that you based it on, i can't see what database server software you're using or what extension you're using to interact with the database but it you're using the mysql_* extension then please be aware that the mysql_* extension is now deprecated as of the current version of PHP and will very likely be removed from the next 5.x version and will likely not be in PHP 6.x (when it eventually is released). You should migrate over to either the mysqli_* extension or to PDO. PDO is a better choice as it doesn't tie you down so much to a particular database server software.

    Once you have migrated you should use Prepared Statements to prevent SQL Injection attacks. Have a read of this article from the PHP manual, it shows how to use prepared statements with PDO and also explains the principle.
    Community Team Advisor
    Forum Guidelines: Posting FAQ Signatures FAQ Self Promotion FAQ
    Help the Mods: What's Fluff? Report Fluff/Spam to a Moderator

  12. #12
    SitePoint Enthusiast
    Join Date
    Nov 2013
    Posts
    33
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by SpacePhoenix View Post
    Without seeing your code that interacts with the database or the tutorial that you based it on, i can't see what database server software you're using or what extension you're using to interact with the database but it you're using the mysql_* extension then please be aware that the mysql_* extension is now deprecated as of the current version of PHP and will very likely be removed from the next 5.x version and will likely not be in PHP 6.x (when it eventually is released). You should migrate over to either the mysqli_* extension or to PDO. PDO is a better choice as it doesn't tie you down so much to a particular database server software.
    Once you have migrated you should use Prepared Statements to prevent SQL Injection attacks. Have a read of this article from the PHP manual, it shows how to use prepared statements with PDO and also explains the principle.
    Here is a link to the tutorial I used http://www.sunnytuts.com/article/log...ed-php-and-pdo

  13. #13
    SitePoint Mentor bronze trophy
    John_Betong's Avatar
    Join Date
    Aug 2005
    Location
    City of Angels
    Posts
    1,888
    Mentioned
    74 Post(s)
    Tagged
    6 Thread(s)
    I had a look at the tutorial and was not impressed. Also the comments were not fully answered.

    I managed to get the demo to work after amending numerous errors.

    Here is the users table structure that does save, validate, display members, etc.

    Copy and paste the SQL into your "http://localhost/phpMyAdmin" and at least your user table will be good.

    PHP Code:

    DROP TABLE 
    IF EXISTS users;
    CREATE TABLE IF NOT EXISTS users (
      
    id int(11unsigned zerofill NOT NULL AUTO_INCREMENT,
      
    username varchar(18NOT NULL,
      `
    passwordvarchar(512NOT NULL,
      
    email varchar(64NOT NULL,
      
    email_code varchar(64NOT NULL,
      `
    timeint(11NOT NULL,
      
    confirmed int(4NOT NULL,
      
    ip varchar(32NOT NULL,
      
    PRIMARY KEY (id)
    ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=
    Learn how to be ready for The New Move to Discourse

    How to make Make Money Now with a *NEW* look

    Be sure to congratulate Wolfshade on earning Member of the Month for August 2014

  14. #14
    SitePoint Guru bronze trophy
    Join Date
    Feb 2013
    Posts
    772
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    My take on it.
    PHP Code:
        <?php
        
    if (isset($_GET['success']) && empty($_GET['success'])) {
            echo 
    '<h3>Your details have been updated!</h3>';          
        }else{
            if(isset(
    $_POST)) {   
                
    $errors = array();
                if (isset(
    $_POST['name']) && !empty ($_POST['name'])){
                    if (
    ctype_alpha($_POST['name']) === false) {
                        
    $errors[] = 'Please enter your Name with only letters!';
                    } 
                }
            
                if (isset(
    $_POST['email']) && !empty ($_POST['email'])){
                    if (
    filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) {
                        
    $errors[] = 'Please enter a valid email address';
                    }
                }
                
                
    $name   htmlentities(trim($_POST['name']));
                
    $email   htmlentities(trim($_POST['email']));
                
    $bio      htmlentities(trim($_POST['bio'])); 
                
                
    //Then check $errors array to show errors or make update
                
    if (!empty($errors)) {
                    echo 
    '<p>' implode('</p><p>'$errors) . '</p>';  
                }else{
                    
    $users->update_user($name$email$bio$user_id);
                    
    header("Location: settings.php?success&article_id=$article_id");
                    exit();        
                }        
            }
        }
        
    ?>

  15. #15
    SitePoint Enthusiast
    Join Date
    Nov 2013
    Posts
    33
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Drummin View Post
    My take on it.
    PHP Code:
        <?php
        
    if (isset($_GET['success']) && empty($_GET['success'])) {
            echo 
    '<h3>Your details have been updated!</h3>';          
        }else{
            if(isset(
    $_POST)) {   
                
    $errors = array();
                if (isset(
    $_POST['name']) && !empty ($_POST['name'])){
                    if (
    ctype_alpha($_POST['name']) === false) {
                        
    $errors[] = 'Please enter your Name with only letters!';
                    } 
                }
            
                if (isset(
    $_POST['email']) && !empty ($_POST['email'])){
                    if (
    filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) {
                        
    $errors[] = 'Please enter a valid email address';
                    }
                }
                
                
    $name   htmlentities(trim($_POST['name']));
                
    $email   htmlentities(trim($_POST['email']));
                
    $bio      htmlentities(trim($_POST['bio'])); 
                
                
    //Then check $errors array to show errors or make update
                
    if (!empty($errors)) {
                    echo 
    '<p>' implode('</p><p>'$errors) . '</p>';  
                }else{
                    
    $users->update_user($name$email$bio$user_id);
                    
    header("Location: settings.php?success&article_id=$article_id");
                    exit();        
                }        
            }
        }
        
    ?>
    I just re did the whole thing. So much for tutorials. But it's all working now. Thanks for all your help.


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •