/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Kan man ikke bruge <br> i mysql databasefe~
Fra : Tine Müller


Dato : 12-07-07 20:56

Jeg kan ikke forstå, hvorfor der vises <br> istedet for et linjeskift på
denne side og når I klikker en marker
http://www.tinemuller.dk/googlemap/gaia/tutorial_I.htm. Har prøvet
forskellige ting, men intet virker.

Feltet hedder "firma" og er skrevet sådan i databasen:
Cand. psych., psykoterapeut, MPF*<br>Kirsten Lindved<br>GAIA-Instituttet

Nogen som har et forslag?



--
KH
Tine Müller

homepage: http://tine_muller.homepage.dk/



 
 
Johan Holst Nielsen (12-07-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 12-07-07 21:27

Tine Müller wrote:
> Jeg kan ikke forstå, hvorfor der vises <br> istedet for et linjeskift på
> denne side og når I klikker en marker
> http://www.tinemuller.dk/googlemap/gaia/tutorial_I.htm. Har prøvet
> forskellige ting, men intet virker.
>
> Feltet hedder "firma" og er skrevet sådan i databasen:
> Cand. psych., psykoterapeut, MPF*<br>Kirsten Lindved<br>GAIA-Instituttet
>
> Nogen som har et forslag?

Fordi der står

&lt; i stedet for < og &gt; i stedet for > i XML'en... ligner som om du
laver en htmlentities i til dine attribut værdier i din xml?

http://www.tinemuller.dk/googlemap/gaia/tutorial_testxml.php

Kan du sende koden til den fil?

Mvh
Johan

Tine Müller (12-07-2007)
Kommentar
Fra : Tine Müller


Dato : 12-07-07 23:02

"Johan Holst Nielsen" wrote
> Fordi der står
>
> &lt; i stedet for < og &gt; i stedet for > i XML'en... ligner som om du
> laver en htmlentities i til dine attribut værdier i din xml?
>
> http://www.tinemuller.dk/googlemap/gaia/tutorial_testxml.php
>
> Kan du sende koden til den fil?

Tak for dit svar, men jeg forstår det desværre ikke og ved ikke hvad
løsningen skal være?

Jeg har indsat i tutorial_testxml.php som jeg regner med er rigtigt, ikke?
Hvis jeg fjerner
$xmlStr=str_replace('<','&lt;',$htmlStr);
$xmlStr=str_replace('>','&gt;',$xmlStr);
så virker de andre felter ikke.

function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','&lt;',$htmlStr);
$xmlStr=str_replace('>','&gt;',$xmlStr);
$xmlStr=str_replace('"','&quot;',$xmlStr);
$xmlStr=str_replace("'",'&#39;',$xmlStr);
$xmlStr=str_replace("&",'&amp;',$xmlStr);
return $xmlStr;
}

/Tine





Johan Holst Nielsen (13-07-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 13-07-07 03:32

Tine Müller wrote:
> Jeg har indsat i tutorial_testxml.php som jeg regner med er rigtigt, ikke?
> Hvis jeg fjerner
> $xmlStr=str_replace('<','&lt;',$htmlStr);
> $xmlStr=str_replace('>','&gt;',$xmlStr);
> så virker de andre felter ikke.
>
> function parseToXML($htmlStr)
> {
> $xmlStr=str_replace('<','&lt;',$htmlStr);
> $xmlStr=str_replace('>','&gt;',$xmlStr);
> $xmlStr=str_replace('"','&quot;',$xmlStr);
> $xmlStr=str_replace("'",'&#39;',$xmlStr);
> $xmlStr=str_replace("&",'&amp;',$xmlStr);
> return $xmlStr;
> }


Jeg var temmelig træt igår - så tror jeg fik forklaret mig meget dårligt
:) Men fint med koden... det der er problemet er at du replacer først
f.eks. < til &lt; og derefter &lt; til &amp;lt; - dvs "decoden" i XML
parseren vil ikke virke... det nemme fix er blot at flytte str_replace
med & som den FØRSTE str_replace - så burde det virke :)

Altså noget ala
function parseToXML($htmlStr)
{
$xmlStr=str_replace("&",'&amp;',$xmlStr);
$xmlStr=str_replace('<','&lt;',$htmlStr);
$xmlStr=str_replace('>','&gt;',$xmlStr);
$xmlStr=str_replace('"','&quot;',$xmlStr);
$xmlStr=str_replace("'",'&#39;',$xmlStr);
return $xmlStr;
}


I øvrigt kan du gøre det samme som ovenstående blot med

$xmlStr = htmlspecialchars($xmlStr,ENT_QUOTES);

Mvh
Johan

Tine Müller (13-07-2007)
Kommentar
Fra : Tine Müller


Dato : 13-07-07 09:52

"Johan Holst Nielsen" wrote
> Jeg var temmelig træt igår - så tror jeg fik forklaret mig meget dårligt
> :) Men fint med koden... det der er problemet er at du replacer først
> f.eks. < til &lt; og derefter &lt; til &amp;lt; - dvs "decoden" i XML
> parseren vil ikke virke... det nemme fix er blot at flytte str_replace med
> & som den FØRSTE str_replace - så burde det virke :)
>
> Altså noget ala
> function parseToXML($htmlStr)
> {
> $xmlStr=str_replace("&",'&amp;',$xmlStr);
> $xmlStr=str_replace('<','&lt;',$htmlStr);
> $xmlStr=str_replace('>','&gt;',$xmlStr);
> $xmlStr=str_replace('"','&quot;',$xmlStr);
> $xmlStr=str_replace("'",'&#39;',$xmlStr);
> return $xmlStr;
> }
>
>
> I øvrigt kan du gøre det samme som ovenstående blot med
>
> $xmlStr = htmlspecialchars($xmlStr,ENT_QUOTES);


Når jeg bytter om på rækkefølgen vises der slet ikke nogen markers på
kortet.

Jeg er ved at blive sindssyg og har prøvet alt muligt, men som du jo nok har
regnet ud er jeg nybegynder, men jeg kan forstå at der er mange andre som
også har problemer med dette.

Det undrer mig at rækkefølgen er skrevet forkert, det er endda en programmør
ansat hos Google som har lavet denne tutorial som jeg arbejder med
http://code.google.com/support/bin/answer.py?answer=65622&topic=11369 - jeg
har dog lavet noget om i koderne, fordi med hendes koder kunne jeg
SELVFØLGELIG ikke få de danske æ ø å til at virke. Men ville da ønske er der
var nogen som kunne forklare hvordan man får BEGGE problematikkerne løst på
den bedste måde?

tutorial_testxml.php

<?php
require("tutorial_I.php");

//from Pamela's tutorial
/*function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','&lt;',$htmlStr);
$xmlStr=str_replace('>','&gt;',$xmlStr);
$xmlStr=str_replace('"','&quot;',$xmlStr);
$xmlStr=str_replace("'",'&#39;',$xmlStr);
$xmlStr=str_replace("&",'&amp;',$xmlStr);
return $xmlStr;
}
*/

function parseToXML($htmlStr)
{
$xmlStr=str_replace("&",'&amp;',$xmlStr);
$xmlStr=str_replace('<','&lt;',$htmlStr);
$xmlStr=str_replace('>','&gt;',$xmlStr);
$xmlStr=str_replace('"','&quot;',$xmlStr);
$xmlStr=str_replace("'",'&#39;',$xmlStr);
return $xmlStr;
}

// Opens a connection to a mySQL server
$connection=mysql_connect ($server, $username, $password);
if (!$connection) {
die('Not connected : ' . mysql_error());
}

// Set the active mySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}

// Select all the rows in the markers table
$query = "SELECT * FROM gaia WHERE 1";
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}

header("Content-type: text/xml");
/*header("Content-type: text/xml; charset: UTF-8");*/

// Start XML file, echo parent node
echo '<markers>';

// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
// ADD TO XML DOCUMENT NODE
echo '<marker ';

$encoded=$row['firma'];
$encoded=parseToXML($encoded);
$encoded=utf8_encode($encoded);
echo 'firma="' .$encoded. '" ';

$encoded=$row['adresse'];
$encoded=parseToXML($encoded);
$encoded=utf8_encode($encoded);
echo 'adresse="' .$encoded. '" ';

echo 'postnummer="' . $row['postnummer'] . '" ';

$encoded=$row['by'];
$encoded=parseToXML($encoded);
$encoded=utf8_encode($encoded);
echo 'by="' .$encoded. '" ';


echo 'lat="' . $row['lat'] . '" ';
echo 'lng="' . $row['lng'] . '" ';
echo '/>';
}


// End XML file
echo '</markers>';

?>


--
KH
Tine Müller

homepage: http://tine_muller.homepage.dk/




Johan Holst Nielsen (13-07-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 13-07-07 11:48

Tine Müller wrote:
>> Altså noget ala
>> function parseToXML($htmlStr)
>> {
>> $xmlStr=str_replace("&",'&amp;',$xmlStr);
>> $xmlStr=str_replace('<','&lt;',$htmlStr);
>> $xmlStr=str_replace('>','&gt;',$xmlStr);
>> $xmlStr=str_replace('"','&quot;',$xmlStr);
>> $xmlStr=str_replace("'",'&#39;',$xmlStr);
>> return $xmlStr;
>> }

Kan se den stadig replacer forkert... prøv at ændre funktionn til

function parseToXML($str) {
return htmlspecialchars($str,ENT_QUOTES);
}

--
Johan Holst Nielsen
Freelance PHP Developer - http://phpgeek.dk

Tine Müller (13-07-2007)
Kommentar
Fra : Tine Müller


Dato : 13-07-07 12:49

"Johan Holst Nielsen" wrote
> Kan se den stadig replacer forkert... prøv at ændre funktionn til
>
> function parseToXML($str) {
> return htmlspecialchars($str,ENT_QUOTES);
> }


Jeg har fået det til at virke BÅDE med æ ø å og <br>. Har arbejdet med det
hele dagen sammen med en engelsk gut.



<?php
require("tutorial_I.php");

// Opens a connection to a mySQL server
$connection=mysql_connect ($server, $username, $password);
if (!$connection) {
die('Not connected : ' . mysql_error());
}

// Set the active mySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}

// Select all the rows in the markers table
$query = "SELECT * FROM gaia WHERE 1";
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}

/*header("Content-type: text/xml; charset: UTF-8");*/
header("Content-type: text/xml");


// Start XML file, echo parent node
echo '<markers>';

// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
// ADD TO XML DOCUMENT NODE
echo '<marker ';

$encoded=$row['firma'];
$encoded=htmlspecialchars($encoded);
$encoded=utf8_encode($encoded);
echo 'firma="' .$encoded. '" ';

$encoded=$row['adresse'];
$encoded=htmlspecialchars($encoded);
$encoded=utf8_encode($encoded);
echo 'adresse="' .$encoded. '" ';

echo 'postnummer="' . $row['postnummer'] . '" ';

$encoded=$row['by'];
$encoded=htmlspecialchars($encoded);
$encoded=utf8_encode($encoded);
echo 'by="' .$encoded. '" ';


echo 'lat="' . $row['lat'] . '" ';
echo 'lng="' . $row['lng'] . '" ';
echo '/>';
}


// End XML file
echo '</markers>';

?>



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste