לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 20-06-2013, 00:21
צלמית המשתמש של linuxsboot
  linuxsboot linuxsboot אינו מחובר  
 
חבר מתאריך: 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.

השורה הזאת של הקוד גורמת לשגיאה:
קוד:
stringurl2 = "&p=";

חשוב לציין שלא מצאתי מדוע ה 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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 04:41

הדף נוצר ב 0.05 שניות עם 11 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר