napoler / ganon

Automatically exported from code.google.com/p/ganon
0 stars 0 forks source link

Defect interpreting a quotes enclosed php instruction #62

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What will reproduce the problem?

<a href="/Docs/Elements/details/<?php echo $link ?>"><?php echo 'aaa' ?></a>

What is the expected output? 

Probably the same line?

What do you see instead?

<a href="/Docs/Elements/details/&lt;?= $item-&gt;mainfield ?&gt;"><?php echo 
$item->Name ?></a>

Which version are you using?

Latest. ganon_rev78

Please provide any additional information below.

I think it doesn't expect PHP code inside an attribute, probably adding a check 
would fix it. Posting here in case someone had the same problem (and hopefully 
a solution :), as ganon has proven to be THE software I was looking for. 

Original issue reported on code.google.com by gaston...@gmail.com on 7 Jul 2014 at 10:45

GoogleCodeExporter commented 9 years ago
Hey, I reckon this is a nasty hack and might cause problems with certain code, 
but as I just needed for 1 specific issue and I'm around the clock here, I 
wanted to share my temp solution (If I ever come back at this and build a more 
elegant solution, for sure I'll post it here!)

gan_tokenizer.php, at next_pos function, right after $str = substr...  I added 
a check to see if the contained string has a <, if it does, then just looks for 
the closing tag: ?>. moves the pos right after that one, then continues:

if ($problem = stripos($str,'<') !== false) { // Found a <
    $newpos = stripos($this->doc, '?>', $this->pos + 1);
    $p = stripos($this->doc, $needle, $newpos);
    $len = $p - $this->pos - 1;
    if ($len > 0) {
        $str = substr($this->doc, $this->pos + 1, $len);
    }
}

And I also took out the htmlspecialchars from attributes_toString function (do 
you guys really need it there?)

Anyway, ganon is GREAT! I can't thank you enough for your effort.

Original comment by gaston...@gmail.com on 8 Jul 2014 at 4:38

GoogleCodeExporter commented 9 years ago
Hi, this is not fault. Input format for ganon should be HTML file, not template 
file.
This is not defect.

Original comment by i...@standa-david.com on 28 Jul 2014 at 5:54