PDA

View Full Version : Help with a while please..


steadicamop
05-26-2008, 04:56 PM
Hey guys, I'm stuck solid on something at the mo, I understand in theory how it should work, but just can't figure it out. I have these two bits of code:

session_start();
if (!isset($_SESSION['secure'])) {
if (!$_GET['clicked']) {
$numimgs = $vbulletin->options['eic_numimgs'];
$answer_position = rand(1,$numimgs);
$d = dir($vbulletin->options['eic_imgpath']);
while (false !== ($entry = $d->read()))
if ($entry != '.' && $entry != '..' && $entry != 'show.php' && $entry != '.htaccess' && $entry != 'Thumbs.db')
$answers[] .= $entry;
$amount = count($answers);
$the_answer = rand(1,$amount);
for($i=1;$i<$numimgs;$i++) {
if ($answer_position == $i) $show_image[] = $the_answer;
$tmp = rand(1,$amount);
while ($tmp == $the_answer || (is_array($show_image) && in_array($tmp,$show_image))) $tmp = rand(1,$amount);
$show_image[] = $tmp;
}
if ($answer_position == $i) $show_image[] = $the_answer;
$d->close();

$_SESSION['answer_position'] = $answer_position;
$_SESSION['show_images'] = $show_image;
$question = substr($answers[$the_answer-1],0,-4);
}
else {
if ($_GET['clicked'] == $_SESSION['answer_position']) $_SESSION['secure'] = 1;
else $badchoice = 1;
}
if (!isset($_SESSION['secure'])) {
eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('image_verification') . '");');
}
}

That's the main chunk of code, I also have this:

$t = 1;
while($t <= $vbulletin->options['eic_numimgs'])
{
$numings = $t;
eval('$imagebits = "' . fetch_template('imagebits') . '";');
$t = $t+1;
}

Now, I'm not too sure the code above is correct but basically, what I need to happen is for the imagetbits template to be called as many times as dictated in $vbulletin->options['eic_numimgs'] (say 5 for example).

The main chunk of code also counts the same amount of times (5), but I can't combine both and make it work ... it only ever appears once! What do I need to do to get this working?

Cheers!

Jason

Lynne
05-26-2008, 07:40 PM
Try:
eval('$imagebits .= "' . fetch_template('imagebits') . '";');

(.= not just =)

Dismounted
05-27-2008, 07:13 AM
What Lynne is saying, by the way, is remember to concatenate. :)

Lynne
05-27-2008, 04:24 PM
What Lynne is saying, by the way, is remember to concatenate. :)
Yeah, exactly. :)

(Sorry, I have no formal programming background and don't always know the terminology.)

steadicamop
05-27-2008, 05:12 PM
Thanks ... I see that error now, but I'm having major issues trying to include that in the while .... so it loops the template as many times as set in $eic_numimgs -- it won't show - at all.

Any advice?

Cheers

Jason