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

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



  #4  
ישן 08-10-2009, 13:55
  waG waG אינו מחובר  
 
חבר מתאריך: 08.07.05
הודעות: 144
בתגובה להודעה מספר 3 שנכתבה על ידי yoavmatchulsky שמתחילה ב "אם אתה עושה print או echo..."

קודם כל כן אני בטוח שהנתונים עוברים כמו שצריך אבל זה לא הנקודה פה, הנקודה היא שאני רוצה להעביר מערך בתוך משתנה נסתר בטופס. עכשיו יואב נסיתי להשתמש בפונקציות JSON, אבל זה נתן לי שגיאה מוזרה
קוד PHP:
 all to undefined function: json_encode() 

אז נסתי עם הפונקציה השניה בדרך הזו
קוד PHP:
 $gvalues1 = array(
        
'name' => mysql_real_escape_string($_POST['name']),
        
'category' => mysql_real_escape_string($_POST['category']),
        
'sub_category' => mysql_real_escape_string($_POST['sub_category'])
        );
        

        
$gvalues serialize($gvalues1); 


ואז השטלתי אותו ככה בטופס
קוד PHP:
 <input type="hidden" name="gvalues" value="<?=$gvalues?>" /> 


וככה נסיתי להחזיר אותו למצבו הקודם
קוד PHP:
 $stam unserialize($_POST['gvalues']);
            
print_r($stam); 


אבל זה לא מדפיס כלום גם אם אני מדפיס אותו בצורה רגילה ולא כמערך ..
אני פשוט חושב שזה מיותר ליצור הרבה שדות ניסתרים בשביל הפרמטרים האלה


תודה רבה על התשובה!
_____________________________________



נערך לאחרונה ע"י waG בתאריך 08-10-2009 בשעה 14:01.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 08-10-2009, 15:17
  משתמש זכר yoavmatchulsky yoavmatchulsky אינו מחובר  
 
חבר מתאריך: 15.08.06
הודעות: 1,561
שלח הודעה דרך ICQ אל yoavmatchulsky שלח הודעה דרך MSN אל yoavmatchulsky Facebook profile
כמה תיקונים והסברים
בתגובה להודעה מספר 4 שנכתבה על ידי waG שמתחילה ב "קודם כל כן אני בטוח שהנתונים..."

אם גרסת ה PHP שלך היא פחות מ 5.2.0, אז אין לך את json_encode ו json_decode. אתה יכול להתקין ספריה חיצונית (או PECL) בשביל להשתמש בזה.

הנה קוד ששיפרתי קצת:
קוד PHP:
<?php

$gvalues 
= array(
  
'a' => 1,
  
'b' => 2,
  
'zz' => array(
    
=> 100,
    
=> 200,
  ),
 );

$gvalues_serialize htmlspecialchars(serialize($gvalues));

?>
<html>
<body>
<?php
if (!empty($_POST)) {
  
$post_gvalues $_POST['gvalues'];
  if (
get_magic_quotes_gpc()) {
    
$post_gvalues stripslashes($post_gvalues);
  }
  
  
$new_gvalues unserialize($post_gvalues);
  
  
var_dump($new_gvalues);
}
?>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="post">
<input type="hidden" name="gvalues" value="<?=$gvalues_serialize;?>" />
<input type="submit" />
</form>
</body>
</html>


הסברים:
אחרי ה serialize() הערך שרציתי לשים היה מלא במרכאות. כיוון שאני שם את זה בתוך מאפיין של אלמנט input, אז הערך יימצא בתוך מרכאות כפולות, ולכן אני לא יכול להשתמש בפנים במרכאות כפולות, אז השתמשתי בפונקציה htmlspecialchars שמקודדת את המרכאות ועוד אותיות בעייתיות.

בבדיקה של "האם נשלח", אני מוצא את הערך ואחרכך בודק אם get_magic_quotes_gpc(). זאת פונקציה שבודקת אם השרת משתמש בmagic_quotes_gpc שזה אומר שכל ערך שאתה מעביר ב POST, הוא מוסיף לו סלאשים לפני מרכאות. אם הוא עושה את זה, זה יכול להרוס את כל הסיריאליזציה של האובייקט שהעברנו. אז במקרה שהשרת כן משתמש בזה, אני מעביר את הערך דרך פונקצית stripslashes.
_____________________________________
!!אזהרה!!
ההודעה עלולה להכיל שברי אגוזים ו/או איברי דגים כלשהם
!!אזהרה!!

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

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

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

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

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



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

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

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

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