Re: verify problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ashley Sheridan wrote:
On Sat, 2009-03-07 at 13:42 +0000, Nathan Rixham wrote:
Ashley Sheridan wrote:
On Thu, 2009-03-05 at 19:58 -0800, Michael A. Peters wrote:
PJ wrote:
Nathan Rixham wrote:
Chris wrote:
PJ wrote:
And again, this works:
if (strlen($_POST["first_nameIN"]) == 0 ) {
            $obligatoryFieldNotPresent = 1; ...

this does not:

if (strlen($_POST["first_nameIN"]) > 0 ) &&
(strlen($_POST["last_nameIN"]) > 0 ) { echo $first_nameIN, " ",
$last_nameIN);
else (echo "error";)}

But, $first_nameIn and $last_nameIN do echo their contents without the
if clause and we see that the first if clause does work... what am I
doing wrong, again?
Firstly please learn to indent your code (I don't care if this is
just an example of your code, make it easier for everyone who's
trying to help you). It's much easier to read this:

if (strlen($_POST["first_nameIN"]) > 0 ) &&
   (strlen($_POST["last_nameIN"]) > 0 ) {
      echo $first_nameIN, " ", $last_nameIN;
} else {
  echo "error";
}

If you want help we're not going to spend a long time reformatting
your code to try and understand it.

Now to the problem.

Are both first_nameIN AND last_nameIN longer than 0 chars?

var_dump($_POST['first_nameIN']);
var_dump($_POST['last_nameIN']);

maybe you only filled in first_name or last_name but not both.

syntax.. your brackets are all over the place

your wrote:

if (strlen($_POST["first_nameIN"]) > 0 ) &&
   (strlen($_POST["last_nameIN"]) > 0 ) {
      echo $first_nameIN, " ", $last_nameIN;
} else {
  echo "error";
}

should be:

if( (strlen($_POST["first_nameIN"]) > 0) &&
(strlen($_POST["last_nameIN"]) > 0) ) {
    echo $first_nameIN, " ", $last_nameIN;
} else {
  echo "error";
}

weirdly spaced but easier to read version *throws coding standards out
the window*:

if(
   (strlen($_POST["first_nameIN"]) > 0)
  &&
   (strlen($_POST["last_nameIN"]) > 0)
  )
{
    echo $first_nameIN, " ", $last_nameIN;
}
else
{
    echo "error";
}

regards

Oooops, so it was only the parentheses... =-O
Thanks, it works now. I do find it confusing just when and where to put
the brackets...

I personally like to do an indent of 3 spaces and indent the closing bracket.

IE

while ($foo != $bar) {
    dosomestuff();
    dosomemorestuff();
    if ($frog > $ape) {
       dosomeotherstuff();
       } elseif ($lizard < $cat) {
       someaction();
       } else {
       $bar++;
       }
    $foo++;
    }

Most don't do it that - they use line breaks before the open bracket etc.

I don't remember where I learned it, looking at stuff I did in bash and expect (tcl) and perl way back when, I didn't do it that way - but it makes the most sense to me - because a closing bracket finishes the statement that started on the line the opening bracket is on.

I guess to each his own.

It may have been some fancy text editor I tried that did it the way automagically, or someone elses code I had to read, but damned if I remember.

I'm more a fan of lining up opening and closing brackets so they are at
the same indent level. It prevents one of the most popular errors caused
by omitting a bracket, brace or other in the wrong place. A few extra
line breaks in the code are not going to make a noticeable impact on the
file size of the script!


Ash
www.ashleysheridan.co.uk


yeah I do that with functions, methods, classes but not so much with if/for/while/switch statements..

here's the coding standards I always break (when compared against zend)

Private member variable must contain a leading underscore

Expected "if (...) {\n"; found "if(...) {\n"
Expected "} elseif (...) {\n"; found "} elseif(...) {\n"

Expected "foreach (...) {\n"; found "foreach(...) {\n"

Space found before comma in function call
Space after opening parenthesis of function call prohibited
Space before closing parenthesis of function call prohibited

but all of them are because I personally find

if( $x < $y ) {

} elseif( $x == $y ) {

}

more readable than:

if ($x < $y) {

} elseif ($x == $y) {

}

and
public function someMethod( $arg0 , $arg1 , $arg2 )
{

more readable than:
public function someMethod($arg0, $arg1, $arg2)
{

regards,
nath
It's the if/for/while's that I often have these problems with! For me,
doing a switch/case like this takes only a tiny bit more time than how
I've seen others do it, but has major benefits when code spans out into
several screens worth:

switch($action)
{
    case 'addCat':
    {
        // code
        break;
    }
    case 'editCat':
    {
        // code
        break;
    }
    case 'killCat':
    {
        // code
        break;
    }
}
Etc... I think some of the old style of coding where as little vertical
space is used as possible is a throwback from the days when program
listings were printed out for review afterwards, and found in
magazines/books for hobbyists to type in (I am going back a bit now!) I
do exactly the same with my HTML too, indenting block-level elements so
that everything is readable with a quick glance afterwards (how many
times have you forgot to close a div, or closed too many?) I think
there's a lot to be said for good indenting practices.


Ash
www.ashleysheridan.co.uk



likewise with the (x)html - tend to format it like an xml document, as for tab's it's 4 spaces all the way; and finally a couple of questions:

with html do you also indent the head child elements or just the elements in body?

do you indent procedural code the same as OO code

and.. require() include() or require '/path'; / include '/path';

?

regards

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux