20-06-2013, 00:21
|
|
|
|
חבר מתאריך: 15.04.06
הודעות: 18,034
|
|
הקדמה, הייתי במיון עם בעיה רפואית שבוע שעבר ומחר אני עדיין חייב להגיע בגללה לביקורת ולכן לא היה לי זמן לרשום תשובה מסודרת, אבל עכשיו ישבתי ורשמתי תגובה מסודרת.
כמה בעיות
א, כאשר הדף שמור כ xhtml מקבלים את שגיאה הבאה:
קוד:
This page contains the following errors:
error on line 36 at column 21: EntityRef: expecting ';'
Below is a rendering of the page up to the first error.
השורה הזאת של הקוד גורמת לשגיאה:
חשוב לציין שלא מצאתי מדוע ה xhtml נותן את ההודעה הזאת של השגיאה וכאשר ניסיתי לשלוח את כל החרוזות בלי משתנים שמכילים את המחרוזות השגיאה הזתא פשוט עברה לשורה הזאת:
קוד:
xmlhttp.open("POST", stringurl + strxmlstring + stringurl2 + strxmlstring2 ,true);
כאשר תחליף את stringurl בתוכן שהוא מקבל, strxmlstring שוב בתוכן שהוא מקבל, stringurl2 בתוכן שהוא מקבל ואת strxmlstring2 בתוכן שהוא מקבל והשגיאה נמצאת בתוכן של stringurl2.
ניסיתי לקרוא לזה y ובשמות אחרים ועדיין השגיאה נשארת זהה.
ב, כאשר הדף שמור כ html יש פלט, אבל שוב זה מדפיס את הקובץ הראשון בלבד לשני האיזורים ולא מדפיס את התוכן של הקובץ השני, אפילו ש p מכיל את השם של הקובץ השני.
הנה הקוד המלא של ה js: (כל הפרמטרים נשלחים יחדיו לפונקציה.)
קוד:
<script language="JavaScript">
onload = function()
{
loaddefault();
//function loaddefault1(strid,strxmlstring)
function loaddefault()
{
var strid = new String;
var strxmlstring = new String;
var strid2 = new String;
var strxmlstring2 = new String;
strid = "maindivsub1-2div";
strxmlstring = "htmlbar.xml";
strid2 = "maindivsub2-2div";
strxmlstring2 = "text.xml";
// alert(number);
// alert(strid);
// alert(strxmlstring);
var stringurl = new String;
stringurl= "loadphp.php?path=";
// dfd
var stringurl2 = new String;
stringurl2 = "&p=";
showxml(stringurl, strxmlstring, strid, stringurl2, strxmlstring2, strid2);
}
/* pringing the tags functions */
function showxml(stringurl, strxmlstring, strid, stringurl2, strxmlstring2, strid2)
{
if (stringurl=="")
{
document.getElementById(strid).innerHTML="xml error 1";
return;
}
if (stringurl2=="")
{
document.getElementById(strid2).innerHTML="xml error 2";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(strid).innerHTML=xmlhttp.r esponseText;
document.getElementById(strid2).innerHTML=xmlhttp. responseText;
}
}
xmlhttp.open("POST", stringurl + strxmlstring + stringurl2 + strxmlstring2 ,true);
xmlhttp.send();
}
}
</script>
הקוד של ה php:
קוד PHP:
<?php /*** create a SimpleXML object ***/ if( (! $xml = simplexml_load_file($_REQUEST["path"]) )) { echo "Unable to load XML file"; } else { $i=0; // categories -> items foreach($xml->children() as $items){ echo (++$i . '<br />');
censored
$str4 = $str1 . $str2 . $str3; echo ($str4); } }
/*** create a SimpleXML object ***/ if( (! $xml = simplexml_load_file($_REQUEST["p"]) )) { echo "Unable to load XML file"; } else { $i=0; // categories -> items foreach($xml->children() as $items){ echo (++$i . '<br />');
censored
$str4 = $str1 . $str2 . $str3; echo ($str4); } } ?>
ניסיתי להפריד את השורות האלה בקוד של ה js:
קוד:
document.getElementById(strid).innerHTML=xmlhttp.r esponseText;
document.getElementById(strid2).innerHTML=xmlhttp. responseText;
אבל זה עדיין מדפיס לי לשני ה div's רק את התוכן של הקובץ הראשון בדרך עליה אתה מדבר.
לגבי זה:
ציטוט:
אתה יכול לעשות בקשה אחת שתבקש את תוכן שני הקבצים, ולשלוח אותם מקודדים בחזרה ב JSON (למזלנו יש ב PHP פונקציה נחמדה שנקראת json_encode()), או משהו כזה, ואז בצד הלקוח לקחת כל אחד מחלקי התשובה, ולדחוף אותו למקום המתאים...
|
בשביל אני זה אני צריך לעשות המרה מ xml ל json בצד השרת לא?
לגבי זה:
ציטוט:
נ.ב. לפתוח קובץ על השרת על פי הנחיות הלקוח, זה רעיון רע מאוד מאוד. באופן כללי לתת שמות של קבצים על השרת זה רע כי קשה לאבטח קלטים שמגיעים מלקוח - אתה תמיד עלול לפספס משהו. יותר חכם לעשות שאם משתנה מסויים שווה למשהו מסויים, פתח קובץ בשם מסויים וכו'. ככה רק הקוד שלך קובע את שמות הקבצים שנפתחים, ובמקרה הגרוע ביותר, לא יחזור כלום אם הלקוח שולח בקשה עם ערך משתנה לא צפוי.
|
אתה מדבר על יצירה של קובץ דינאמי שעושה את העבודה מצד השרת ומחזיר את הערך בעצמו לצד הלקוח אחרי שהוא נוצר על ידי קובץ ה php שלי עכשיו?
_____________________________________
will you marry me nesli barda? Operating system: Linux The day Microsoft & apple makes a product that does not suck will be the day they start making vacuum cleaners. say no to Apple&Facebook&MS&Samsung IL&Nokia&Hot&Yes,but say yes to Google
|