[PHP] Html wordt omgezet in spaties

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 21:35

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Topicstarter
Momenteel ben ik bezig met het ontwikkelen van een site voor mijn studentenvereniging. Ik loop echter tegen een zeer vreemd probleem aan.

In de site draait een banner-systeem. Niet erg fancy, het trekt d.m.v. een random getal een banner uit een aantal opgegeven banners, en geeft de link plus de afbeelding als Html-string terug:

PHP:
1
2
return '<a href="' . vsprintf($settings['banners']['click_out_url'], $final_banner_id) .
                    '" target="_blank">[img]"'.$banners[[/img]</a>';


Tot zover werkt de boel prima. Ik kreeg het verzoek om ook een veld te maken, om html in te zetten die _voor_ de banner geoutput wordt. Geen probleem, zou je denken, een kwestie van een extra veld aanmaken in de database. Dat valt tegen. Bovenstaande code wordt:

PHP:
1
2
return $banners[ $final_banner_id ]['HeaderCode'] . '<a href="' . vsprintf($settings['banners']['click_out_url'], $final_banner_id) .
                    '" target="_blank">[img]"'.$banners[[/img]</a>';


Nu heb ik bij een banner de volgende HeaderCode ingevoerd:
code:
1
[img]"http://service.bfast.com/bfast/serve?bfmid=1821541&siteid=ONZE_REFERER_ID&bfpage=filmhuis"[/img]


Needless to say: dit plaatje telt alleen het aantal views.

Echter, de string in bovenstaand code-blok wordt niet weergegeven. De return-instructie geeft in plaats van de img-tag (die 134 tekens lang is) een setje spaties (die ook 134 tekens lang is).

Ik heb eerst wat print_r werk gedaan, en al vanaf het moment dat de string als variabele wordt ingeladen, is het een reeks spaties. Totdat je de IMG-tag "verminkt" (de eerste < eraf halen), want dan wordt het plotsklaps gewoon een string van 133 tekens lang ("IMG SRC..."). Als ik een andere HeaderCode invul, bijv. 'tralalalala', wordt deze wél goed weergegeven. Het lijkt er dus op dat er iets voor zorgt dat een HTML-tag weg wordt gefilterd. Echter, in de gehele verzameling scripts staat nergens iets in de trend van striptags oid (aldus de search van Homesite).

Ik ben intussen ten einde raad. Hoe komt het dat alleen HTML-tags in spaties worden veranderd, en dat andere strings wel gewoon worden weergegeven?

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Acties:
  • 0 Henk 'm!

Verwijderd

In de database staat het wel goed?

Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 21:35

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Topicstarter
Uiteraard.

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Acties:
  • 0 Henk 'm!

Verwijderd

Hoe doe je je query precies?

En als je bijv. in PhpMyAdmin de query uitvoert, krijg je dan wel de HTML-code te zien?

Acties:
  • 0 Henk 'm!

  • ZroBioNe
  • Registratie: Augustus 2001
  • Niet online
En wat geeft:
PHP:
1
2
echo $banners[ $final_banner_id ]['HeaderCode'];
print_r($banners[ $final_banner_id ]['HeaderCode']);


Of had je dat ook al bekeken in je print_r werk? :)
Misschien moet je is proberen alleen de
code:
1
$banners[ $final_banner_id ]['HeaderCode']
te echo'en, kijken wat ie dan doet.

Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 21:35

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Topicstarter
Verwijderd schreef op maandag 13 februari 2006 @ 14:48:
Hoe doe je je query precies?
En als je bijv. in PhpMyAdmin de query uitvoert, krijg je dan wel de HTML-code te zien?
De banners worden gescheiden door een komma in een veld (o.a. BannerContent) in de pagina-tabel (S_Pages) opgeslagen: "2,3,4". Vervolgens worden de waardes ge-explode naar array(2, 3, 4). Met een foreach() worden vervolgens de banners uit de database gehaald. Hierbij wordt dus ook het veld HeaderContent opgehaald.
ZroBioNe schreef op maandag 13 februari 2006 @ 14:54:
En wat geeft:
PHP:
1
2
echo $banners[ $final_banner_id ]['HeaderCode'];
print_r($banners[ $final_banner_id ]['HeaderCode']);


Of had je dat ook al bekeken in je print_r werk? :)
Misschien moet je is proberen alleen de
code:
1
$banners[ $final_banner_id ]['HeaderCode']
te echo'en, kijken wat ie dan doet.
Als je de IMG-tag intact laat, geeft ie twee maal de spatie-reeks weer. Als je de IMG-tag verminkt, geeft ie 1x de string weer (van de echo)... De HeaderContent wordt dus wél opgehaald.

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Acties:
  • 0 Henk 'm!

Verwijderd

Hmmms... Bekijk de source van je pagina eens :) Daar staat het waarschijnlijk wel :)

Wat een lelijke database-structuur... CSV in 1 veld, brrrrrrrr

Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 21:35

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Topicstarter
Verwijderd schreef op maandag 13 februari 2006 @ 15:29:
Hmmms... Bekijk de source van je pagina eens :) Daar staat het waarschijnlijk wel :)
Daar staat dus inderdaad alleen een reeks spaties :/

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.

Pagina: 1