You are here: Re: [PHP] Register Globals (more) « PHP « IT news, forums, messages
Re: [PHP] Register Globals (more)

Posted by "Richard Lynch" on 06/18/25 11:31

On Thu, November 3, 2005 10:00 pm, John Taylor-Johnston wrote:
> Patience please :)
>
> See my html below. Basically, if type=checkbox is checked, I'm trying
> to build $to string in mail().
>
>>parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING
>> or T_VARIABLE or T_NUM_STRING line 4
>
> How do I rebuild this peice of code to be register_globals=off
> friendly?
> Just when I thought I was getting good. This keeps up, I'm changing
> back the php.ini myself.

Hang in there!

> John
>
>
>
> 1>for ($i = 1; $i <= $_POST["NMax"]; $i++)
> 2>{
> 3> $CheckVariable = "\{$_POST['Check$i']}";

You don't want ' around Check$i because $ has no special meaning
inside of ''. Only \ and ' mean anything special to ''.



> 4> eval("\$CheckVariable = \"$CheckVariable\";");

Woof.

You could save a WHOLE bunch of trouble making a change (below) and
doing:

$names = $_POST['names'];
$emails = $_POST['emails'];
$checks = isset($_POST['checks']) ? $_POST['checks'] : array();
foreach($names as $i => $name){
$email = $emails[$i];
$check = isset($checks[$i]);
echo "$name: $email ($check)<br />\n";
}

Even so, you sure don't need eval() even if you want to keep
everything else the same:

$name = $_POST["name$i"];
$email = $_POST["email$i"];
//HTTP doesn't send anything for un-checked checkboxes.
$check = isset($_POST["check$i"]);

> 5> $nameVariable = "\{$_POST['name$i']}";
> 6> eval("\$nameVariable = \"$nameVariable\";");
> 7> $emailVariable = "\{$_POST['email$i']}";
> 8> eval("\$emailVariable = \"$emailVariable\";");
> 9>
> 10>#echo ${"Check$i"};
> 11>#echo "$CheckVariable $emailVariable - $i<br>";
> 12>
> 13>if ($CheckVariable)
> 14>$to .= "\"$nameVariable\" <".$emailVariable.">,";

$to .= "\"$name\" <$email>,";

> 15>
> 16>}
> 17>
> 18>echo $to;
>
>
> <INPUT TYPE="checkbox" NAME="Check1" VALUE="John" CHECKED>"John"

Change this to:
NAME="check[1]"

> <input type="hidden" name="name1" value="John">

NAME="name[1]"

> <input type="hidden" name="email1" value="John_cy@foo.com">

NAME="email[1]"

> <br>
> <INPUT TYPE="checkbox" NAME="Check2" VALUE="Alessandra"

NAME="check[2]"

> CHECKED>"Alessandra"
> <input type="hidden" name="name2" value="Alessandra">

NAME="name[2]"

> <input type="hidden" name="email2" value="alessandra_cy@foo.com">

NAME="email[2]"

> <br>
> ...

....

> <input type="hidden" name="NMax" value="29">

You may not even need this any more...

The arrays are going to be as big as they need to be, and no bigger.

Like a woman's skirt should be. :-)

--
Like Music?
http://l-i-e.com/artists.htm

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация