& ----> &

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Yoeri Achterbergen

Yoeri Achterbergen

19/03/2014 10:27:34
Quote Anchor link
Hallo,

Is het mogelijk om alle tekens op en site om te zetten naar een goede html taal?

Wij voeren soms artikelen in met & teken maar op de site gaat dat niet goed omdat html & wil.
Is dit met php of java te regelen dat dit automatisch word vertaald ?

Gr. Yoeri
 
PHP hulp

PHP hulp

26/04/2024 00:20:33
 
Michael -

Michael -

19/03/2014 10:31:10
Quote Anchor link
Kijk eens naar de functie htmlspecialchars()
Maar als je je database charset en je website charset allebei hebt ingesteld op het zelfde (utf8 bij voorbaat) dan zou het ook goed moeten gaan. :-)
Gewijzigd op 19/03/2014 10:42:03 door Michael -
 
Ivo P

Ivo P

19/03/2014 10:35:22
Quote Anchor link
dat charset verhaal gaat vooral op voor letters als ë of ó, maar niet voor & of <

daarvoor moet je wel htmlspecialchars gebruiken.
 
Yoeri Achterbergen

Yoeri Achterbergen

19/03/2014 11:26:23
Quote Anchor link
het probleem zit hem hierin:

Op de site hebben wij een contact formulier gemaakt. Dit word vertoon in PrettyPhoto (iframe)
De artikel omschrijving word uit de automatisch gegenereerde link gehaald

voorbeeld link: http://www.test.com/index3.php?&sku=Printer & Papier &iframe=true&width=800&height=400

Php pakt dit vervolgens op met

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $val = $_GET["sku"]; ?>


D.m.v. van een
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $val ?>
word de omschrijving naar ons gemaild.

Alleen na het & teken stop de omschrijving. Dus krijgen wij gemaild i.p.v. Printer & Papier:
Printer. (alles na de ampersand vervalt)
 
Michael -

Michael -

19/03/2014 11:32:14
Quote Anchor link
Geef eens wat code hoe die link wordt gegenereerd? Daar zou je bijv htmlspecialchars() of rawurlencode() moeten toepassen.
 
Ivo P

Ivo P

19/03/2014 11:38:36
Quote Anchor link
als het een url in moet, dan is het rawurlencode().
 
Yoeri Achterbergen

Yoeri Achterbergen

19/03/2014 12:08:23
Quote Anchor link
de link zit in de artpage.html:

www.test.comindex3.php?sku={$article.descriptionandmeasure}&iframe=true&width=800&height=400

de omschrijving van het artikel word in de main php gemaakt en word opgeroepen d.m.v.
{$article.descriptionandmeasure}
 
Ivo P

Ivo P

19/03/2014 12:20:26
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

$s
= 'www.test.com/index3.php?sku='.
          rawurlencode($article.descriptionandmeasure) .
     '&iframe=true&width=800&height=400';

?>


Maar het lijkt me zekerder om dergelijke teksten mee te geven met een id en dan in index3.php aan de hand van dat id de tekst op te halen. (mits je bij dezelfde databron kunt komen natuurlijk.

Dit soort teksten moet je ook minimaal al opvangen met htmlspecialchars() om te voorkomen dat iemand een link publiceert met

?sku=prachtige+printer<script>eviljavascript</script>&iframe=true

maar je loopt ook risico op teksten die jij helemaal niet op je site bedoelde te publiceren.

?sku=dit+product+is+niet+meer+leverbaar+ivm+fallisement+test.com&iframe=true
Gewijzigd op 19/03/2014 12:21:05 door Ivo P
 
Yoeri Achterbergen

Yoeri Achterbergen

19/03/2014 12:45:27
Quote Anchor link
Dit is wat er in de main php staat:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<?php
case "article":
         try{
           addBasketToTemplate($tpl, $currentLanguage, $lvShowPriceMode);
           $art = new Article($pg->aid);
           $article=$art->data;
           if ($article['has_variantparents'] == 1) { $art = new Article($article['variantparents']['variant_parent']); $article = $art->data; $pg->aid = $article['nr']; }
           $curr_lang='lang_'.$currentLanguage;
           $article['description']=$article['description'][$curr_lang];
           $article['descriptionandmeasure']=$article['descriptionandmeasure'][$curr_lang];
           $article['measure']=$article['measure'][$curr_lang];
           $article['urlitem']=$article['urlitem'][$curr_lang];
           if (isset($article['specification'])) { $article['specification']=$article['specification'][$curr_lang]; }
           if (isset($article['shortmemo'])) { $article['shortmemo'] = $article['shortmemo'][$curr_lang]; }
           if (isset($article['longmemo'])) { $article['longmemo'] = $article['longmemo'][$curr_lang]; }
           $curr_lang2='LV_ARTICLES_'.strtoupper($curr_lang);
           if (isset($article['lightbox']) && isset($article['lightbox']['lightbox_big'])) {
             $article['use_lightbox'] = 1;
             if (!is_array($article['lightbox']['lightbox_big']['picture'])){ $article['lightbox']['lightbox_big']['picture']=array(0=>$article['lightbox']['lightbox_big']['picture']); }
             if (!is_array($article['lightbox']['lightbox_small']['picture'])){ $article['lightbox']['lightbox_small']['picture']=array(0=>$article['lightbox']['lightbox_small']['picture']); }
           }
else { $article['use_lightbox'] = 0; }
             if (!isset($article['bottom_scripts'])) { $article['bottom_scripts'] = ''; }
           if ($article['use_variants']==0) {
             $article=$art->article_language_conversions($article,$art->get_stock_quantity($art['nr']),$currentLanguage);
           }
elseif ($article['use_variants']==1) {
             $article_variants=array();
             if (isset($article['variants']['variant_article'])) {
               if (!is_array($article['variants']['variant_article'])) { $article['variants']['variant_article']=array(0=>$article['variants']['variant_article']); }
               foreach ($article['variants']['variant_article'] as $v) {
                 $a=$art->get_another_product($v,1);
                 if ($a) {
                   $a=$art->article_language_conversions($a,$art->get_stock_quantity($a['nr']),$currentLanguage);
                   $a['descriptionandmeasure']=$a['descriptionandmeasure'][$curr_lang];
                   if (isset($a['shortmemo'])) { $a['shortmemo'] = $a['shortmemo'][$curr_lang]; }
                   if (isset($a['longmemo'])) { $a['longmemo'] = $a['longmemo'][$curr_lang]; }
                   if (isset($a['options_struct']['options_struct_item'][0]) && (sizeof($a['options_struct']['options_struct_item'][0]) == 0)) { unset($a['options_struct']); }
                   if (isset($a['text_struct']['text_struct_item'][0]) && (sizeof($a['text_struct']['text_struct_item'][0]) == 0)) { unset($a['text_struct']); }
                   $real_vat = 0;
                   if (isset($vatitems[$a['vat']])) { if (isset($vatitems[$a['vat']]['LV_PERCENTAGE'])) { $real_vat = $vatitems[$a['vat']]['LV_PERCENTAGE']; } }
                   $a['vat'] = $real_vat;
                   $a['price_currname'] = $a['price_currname'][$curr_lang];
                   $a['availability']['availability_text'] = $a['availability'][$curr_lang]['availability_text'];
                   if (isset($a['pictbiblio']['item'])) { $a['pictbiblio']['item'] = $art->get_picturebiblio($a['pictbiblio']['item']); }
                   $article_variants[]=$a;
                 }
               }
             }

             $tpl->assign('article_variants',$article_variants);
           }

           if (isset($article['related_products']['item'])) {
             if (!is_array(current($article['related_products']['item']))) { $article['related_products']['item']=array(0=>$article['related_products']['item']); }
             foreach ($article['related_products']['item'] as $k=>$v) {
               $a=$art->get_another_product($v['article_nr']);
               if ($a) {
                 if (is_array(current($a['LV_ARTICLES_GROUP']))) { $a_group=$a['LV_ARTICLES_GROUP']['LV_ARTICLES_ITEM'][0]; } else { $a_group=$a['LV_ARTICLES_GROUP']['LV_ARTICLES_ITEM']; }
                 $article['related_products']['item'][$k]['group_id'] = $a_group;
                 $article['related_products']['item'][$k]['descriptionandmeasure'] = $a['LV_ARTICLES_DESCRIPTIONANDMEASURE'][$curr_lang2];
                 $article['related_products']['item'][$k]['picturemini'] = $a['LV_ARTICLES_PICTUREMINI'];
                 $article['related_products']['item'][$k]['picturesmall'] = $a['LV_ARTICLES_PICTURESMALL'];
                 $article['related_products']['item'][$k]['price_currname'] = $a['LV_ARTICLES_PRICE_CURRNAME'][$curr_lang2];
                 $article['related_products']['item'][$k]['showprice_mode'] = $a['LV_ARTICLES_SHOWPRICE_MODE'];
                 $article['related_products']['item'][$k]['urlitem'] = $a['LV_ARTICLES_URLITEM'][$curr_lang2];
                 $article['related_products']['item'][$k]['nr'] = $a['LV_ARTICLES_NR'];
                 $real_vat = 0;
                 if (isset($vatitems[$a['LV_ARTICLES_VAT']])) { if (isset($vatitems[$a['LV_ARTICLES_VAT']]['LV_PERCENTAGE'])) { $real_vat = $vatitems[$a['LV_ARTICLES_VAT']]['LV_PERCENTAGE']; } }
                 $article['related_products']['item'][$k]['vat'] = $real_vat;
               }
             }
           }

           // Cross Marketing
           if (isset($article['cm']['cm_text'])) {
             $article['cm']['cm_text']=$article['cm']['cm_text'][$curr_lang];
             if (isset($article['cm']['cm_item'])) {
               if (!is_array($article['cm']['cm_item'])) { $article['cm']['cm_item']=array(0=>$article['cm']['cm_item']); }
               foreach ($article['cm']['cm_item'] as $v) {
                 $a=$art->get_another_product($v);
                 if ($a) {
                   if (is_array(current($a['LV_ARTICLES_GROUP']))) { $a_group=$a['LV_ARTICLES_GROUP']['LV_ARTICLES_ITEM'][0]; } else { $a_group=$a['LV_ARTICLES_GROUP']['LV_ARTICLES_ITEM']; }
                   $real_vat = 0;
                   if (isset($vatitems[$a['LV_ARTICLES_VAT']])) { if (isset($vatitems[$a['LV_ARTICLES_VAT']]['LV_PERCENTAGE'])) { $real_vat = $vatitems[$a['LV_ARTICLES_VAT']]['LV_PERCENTAGE']; } }
                   $article['cm']['products'][] = array( 'nr'=>$a['LV_ARTICLES_NR'], 'group_id'=>$a_group, 'picturesmall'=>$a['LV_ARTICLES_PICTURESMALL'], 'picturemini'=>$a['LV_ARTICLES_PICTUREMINI'], 'description'=>$a['LV_ARTICLES_DESCRIPTION'][$curr_lang2], 'measure'=>$a['LV_ARTICLES_MEASURE'][$curr_lang2], 'descriptionandmeasure'=>$a['LV_ARTICLES_DESCRIPTIONANDMEASURE'][$curr_lang2], 'urlitem'=>$a['LV_ARTICLES_URLITEM'][$curr_lang2], 'price_currname'=>$a['LV_ARTICLES_PRICE_CURRNAME'][$curr_lang2], 'price'=>$a['LV_ARTICLES_PRICE_SHOW'], 'showprice_mode'=>$a['LV_ARTICLES_SHOWPRICE_MODE'], 'vat'=>$real_vat, 'first_group'=>$a['first_group']);
                 }
               }
             }
           }

           if (isset($article['ecotaxes']['ecotax'])&&!is_array(current($article['ecotaxes']['ecotax']))) { $article['ecotaxes']['ecotax']=array(0=>$article['ecotaxes']['ecotax']); }
           if (!empty($article['recommendedprice'])) {
             if (is_array($article['recommendedprice'])) { $tpl->assign('INVALID_RECOMMENDED_PRICE','true'); } else { $tpl->assign('INVALID_RECOMMENDED_PRICE','false'); }
           }
else { $tpl->assign('INVALID_RECOMMENDED_PRICE','false'); }
           if (isset($conf->data['LV_OPTIONS']['LV_REVIEW_ENABLED']) && ($conf->data['LV_OPTIONS']['LV_REVIEW_ENABLED']==1)) { if (isset($article['review_total']) && ($article['review_total']>=1)) { $article['reviews'] = $art->get_reviews($pg->aid,strtoupper($currentLanguage)); } }
           $article=$art->setArticleAttributes($conf,$article,$attr,$currentLanguage);
           $real_vat = 0;
           if (isset($vatitems[$article['vat']])) { if (isset($vatitems[$article['vat']]['LV_PERCENTAGE'])) { $real_vat = $vatitems[$article['vat']]['LV_PERCENTAGE']; } }
           $article['vat'] = $real_vat;
           $article['availability']['availability_text'] = $article['availability'][$curr_lang]['availability_text'];
           if (($article['options_struct'] != '') && isset($article['options_struct']['options_struct_item'][0]) && (sizeof($article['options_struct']['options_struct_item'][0]) == 0)) { unset($article['options_struct']); }
           if (($article['text_struct'] != '') && isset($article['text_struct']['text_struct_item'][0]) && (sizeof($article['text_struct']['text_struct_item'][0]) == 0)) { unset($article['text_struct']); }
           $tpl->assign('article',$article);
           $tpl->assign('group_id',$group_id);
           $tpl->assign('group_id_level1',$group->level1);
           $art->get_another_product($pg->aid);
           $tpl->assign('LV_OPTIONS_SITETITLE', $art->xml['Logivert']['LV_META_TITLE']['LV_'.strtoupper($currentLanguage)]);
           $baseMetatags .= $art->xml['Logivert']['LV_META_TAGS']['LV_'.strtoupper($currentLanguage)];
           $tpl->assign('LV_METATAG', AddCanonicalTag($baseMetatags, $shop_root_dir, $action, $pg->aid, $art->data['urlitem'][$curr_lang], $currentLanguage));
           $tpl->assign('layout_include','page.art.html');
           $tpl->display('layout.html');
         }
catch (Exception $e) { lvredirect('index.php?action=home&lang='.strtoupper($currentLanguage)); }
         break;
?>


Hoe kan ik dan een id maken uit de database?
 
Ivo P

Ivo P

19/03/2014 13:16:12
Quote Anchor link
is het verboden om overzichtelijke code te produceren?

Het is jouw script en jouw database.

Ik schat zo in dat in de buurt van waar je nu de omschrijving ophaalt, je ook een id kunt vinden....

Toevoeging op 19/03/2014 13:17:30:

zou zo maar $pg->aid kunnen zijn trouwens.
maar afhankelijk van de class Article
 
Yoeri Achterbergen

Yoeri Achterbergen

21/03/2014 12:05:19
Quote Anchor link
Beste Ivo,

Mijn excuses voor de enorme code.
Als ik vanuit een andere map, wil connecten met een database hoe kan ik die dan aanroepen?
De aid is inderdaad de id van de artikelen.
 
E vH

E vH

21/03/2014 13:30:46
Quote Anchor link
"Is het mogelijk om alle tekens op en site om te zetten naar een goede html taal?"
Ja, dit is mogelijk, maar dit wil je niet.

"Wij voeren soms artikelen in met & teken maar op de site gaat dat niet goed omdat html &amp; wil. "
Als je de data goed opslaat (UTF-8), dan hoef jij niet de data te omvormen, zie hieronder

http://nl3.php.net/htmlentities

&

http://stackoverflow.com/questions/4143853/utf-8-problem-when-saving-to-mysql



Excuses, had inderdaad even door moeten lezen...
Gewijzigd op 21/03/2014 13:54:00 door E vH
 
Ivo P

Ivo P

21/03/2014 13:46:53
Quote Anchor link
@Elmar:

als je de rest van het topic leest, dan zie je dat het over een & in een url gaat, hetgeen dus niets met htmlentities of mysql te maken heeft.

@Yoeri:
new Article($pg->aid); legt waarschijnlijk zelf wel connectie met de databse?

Je kunt dan in je 2e script

new Article( filter_input(INPUT_GET, 'deparamtervanjouwkeuze', FILTER_VALIDATE_INT));

gebruiken.
 
Yoeri Achterbergen

Yoeri Achterbergen

21/03/2014 17:37:26
Quote Anchor link
Heb even wat testen gedaan, de aid=(art.nr} roep het artikel aan, de artikelen zijn genummerd.
Als de link bijvoorbeeld 'aid=158978' bevat dan roep hij uit de map data->articles artikel 158978 aan.

De aid werk alleen als de action=article meegegeven word in de de link.

Deze staat in een case.

Als ik in een andere map probeer een id te maken en om verbinden met de database te maken, komt het volgende:

www.test.com/index.php?action=aid=

hij vind dus de artikelen niet. Hoe is dit op te lossen?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.