Jump to content

Why is this function returning a false value when it shouldn't be??


nicolanicola

Recommended Posts

This is in an include file.  I want it to check a value in an html form and see if it's just white space, is numbers, is empty etc.

 

<?php
function checkString($stringFieldName,$_GET){
    $output="\n<p> ";
    $validate=true;
    if(array_key_exists($stringFieldName,$_GET))
  {
        //trim any whitespace from values
        $string=trim($_GET[$stringFieldName]);
        //check if string value is empty
        if(empty($string)){
            $output.="\nYou haven't entered any data in string<br />";
            $validate=false;
        }
        if(is_numeric($string)){
            $validate=false;
            $output.="You have entered a number instead of text";
        }
    //if they have deleted values from url
  }else{
    $output.="\nYou have deleted the characters from the url\n";
    $validate=false;
  }
  echo $output."\n</p>";
}

 

I am using it in a php file, the code is here:

 
<?php
  echo "\n<p>";
  include 'validateText&Number.inc';
  checkString("surname",$_GET);
  if ($validate==false){
    echo "\nYou did not enter the name correctly.";  
  }
  else.................
  {

When I type in actual text it tells me I have not entered name correctly which therefore means $validate must be false.  I don't know how though it can be set to false because if the field just contains text, it isn't satisfying any of the conditions that lead to $validate=false.

 

Please help!!  Oh I'm a php newbie btw.

Make sure that you return $validate from your function

 

And don't pass $_GET as a parameter: it's a superglobal, which means it's actually in automatically scope from anywhere within your code

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.