PHP in JavaScript
 
bujes 24. jul 2007 11:07:10 Pridružen od:
24. nov 2006
4501 objav
1560 176 21
#1

Hočem naridt skripto, ki bi naključne šale iz moje strani servirala na drugih straneh s pomočjo JavaScripta. Spisal sem kodo, ki bi morala delovat, ko odprem datoteko joke_show.php, ki php spremeni v javascript se lepo izpiše:


document.write("
<b>DVE MALICI</b><br>
Natakar, kako to, da ste mi prinesli dve malici, ko pa sem naro&#232;il samo eno? je vprašal gost v gorski ko&#232;i.
"Oh, že spet ta presneti odmev!" je zastokal natakar. <a href='http://smeh.kozolec.net'>Vec šal</a>")

Ko pa to stran kličem v stran js.htm, se pokaže prazna stran:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<script type="text/javascript" src="joke_show.php"></script></body>
</html>

joke_show.php:


<?
Header("content-type: application/x-javascript");

$db=mysql_connect ("localhost", "kozolec001", "*******")
or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ("kozolec001_portal");

$table = "sale";

$query = "SELECT * FROM $table";
$result1 = mysql_query($query);
$st = mysql_num_rows($result1);
$total= $st;

$id= rand(1,$total);

$query_1 = "SELECT * FROM $table WHERE id='$id'";
$result_1 = mysql_query($query_1);

while($sale=mysql_fetch_array($result_1))
{
$naslov = $sale['naslov'];
$vic = $sale['vic'];

echo "document.write(\"
<b>".$sale['naslov']."</b><br>
".$sale['vic']."<a href='http://smeh.kozolec.net'>Več šal</a>\")";
};

?>
všeč(0) ni všeč(0) spam(0)
 
Vini 24. jul 2007 11:07:34 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#2

bujes, javascript koda je neveljavna... iz stringa skini tiste newlines, pa bo vse v redu... takole:


echo "document.write(\"<b>".$sale['naslov']."</b><br>".$sale['vic']."<a href='http://smeh.kozolec.net'>Več šal</a>\");";

aja, pa tole si preberi, malo o bolj optimiziranem pridobivanju nakljucnega zapisa iz tabele...


všeč(0) ni všeč(0) spam(0)
 
bujes 24. jul 2007 12:07:42 Pridružen od:
24. nov 2006
4501 objav
1560 176 21
#3

Še vedno ne dela. www.kozolec.net/js.htm


všeč(0) ni všeč(0) spam(0)
 
Vini 24. jul 2007 12:07:54 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#4

Ker je se kar naprej invalid javascript :)


document.write("<b>Kakav</b><br>Kaj re?e blondinka ?e jo vprašaš za razliko med belo in rjavo kravo?
"Rjave dajejo kakav." <a href='http://smeh.kozolec.net'>Vec šal</a>");

za kravo? in pred "Rjave imas newline... tudi poskrbi, da bos imel escapane dvojne narekovaje ali pa v html entities... nekako takole:


echo "document.write(\"<b>".$sale['naslov']."</b><br>".htmlspecialchars(str_replace("\n", "", $sale['vic']))."<a href='http://smeh.kozolec.net'>Več šal</a>\");";
všeč(0) ni všeč(0) spam(0)
 
Vini 24. jul 2007 12:07:57 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#5

Aja, mogoce bi dal v htmlspecialchars() tudi $sale['naslov'], verjetno se lahko tudi tam pojavijo kaksni butasti znaki...


všeč(0) ni všeč(0) spam(0)
 
bujes 24. jul 2007 13:07:16 Pridružen od:
24. nov 2006
4501 objav
1560 176 21
#6

Še zmer ne dela...


všeč(0) ni všeč(0) spam(0)
 
Vini 24. jul 2007 13:07:53 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#7

Aha, ocitno imas se CR znak v stringu... Naredi raje takole:


echo "document.write(\"<b>".htmlspecialchars($sale['naslov'])."</b><br>".preg_replace('![\n\r]+!', '<br>', htmlspecialchars($sale['vic']))."<a href='http://smeh.kozolec.net'>Več šal</a>\");";

Tole gornje ti bo namesto newlinov dalo <br> tage...



Podobno zadevo bi sicer lahko povzrocil tudi s funkcijo nl2br(), ampak ta funkcija pusti newline znake v stringu...


všeč(0) ni všeč(0) spam(0)
 
bujes 24. jul 2007 15:07:09 Pridružen od:
24. nov 2006
4501 objav
1560 176 21
#8

Supr, zdj dela. Hvala! Te bom dodal v moj blogroll...prej k slej.



Zdj moram pa še tisto optimizacijo zrihtat...


všeč(0) ni všeč(0) spam(0)
 
Vini 24. jul 2007 15:07:15 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#9

Okej :) ....


všeč(0) ni všeč(0) spam(0)
 
bujes 24. jul 2007 21:07:56 Pridružen od:
24. nov 2006
4501 objav
1560 176 21
#10

Zdj je pa spet str problem: šumniki :S



Dokler so strani v windows-1250 je ql, če pa je kšn drug kodiranje je pa stranje. Kako pa nej to odpravm??


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se