בעיה עם REMOTE_ADDR

erezhod

New member
בעיה עם REMOTE_ADDR

שלום, בניתי מערכת סקרים, עכשיו אני רוצה להכניס את הIP של המשתמש לטבלה בכדי שלא יוכל להצביע שוב, הבעיה היא שכשאני משתמש ב:
$HTTP_REMOTE_ADDR; or $REMOTE_ADDR; or $_GET['REMOTE_ADDR']; or $_GET['HTTP_REMOTE_ADDR'];​
אז תמיד אבל תמיד הוא אומר לי שהמשתנה הזה לא מוגדר, מה הוא עושה צחוק?! מה הבעיה!?
 

erezhod

New member
תודה אחי זה עובד אבל

זה לא האייפי של השרת עצמו?
 

אמיר ט

New member
לא

המשתנה הגלובלי $_SERVER מכיל פרטים על השרת ועל הפניה שנעשתה לשרת המשתנה מכיל את הIP של הלקוח כמובן, אבל אם יש פרוקסי אז רוב הסיכוים שתקבל את הIP של הפרוקסי לכן ישנו משתנה בשם
$_SERVER['X_FORWARDED_FOR']​
אשר יכיל את הIP של הלקוח במקרה שהוא נמצא מאחורי פרוקסי.
 

erezhod

New member
תודה רבה, ועוד משהו

אתה יודע אולי איך מחשבים אחוזים מתוך מספר מסויים בPHP? תודה.
 

אמיר ט

New member
זה כבר לא PHP זה MTM

או בשפת העם מתמטיקה
נניח :
$Num = 123; //המספר שמהווה את החלק שאתה רוצה לדעת כמה הוא באחוזים $Total = 1000; //החלק השלם (סתם לקחתי 1000) $Percent = (($Num * 100) / $Total);​
על המספר שקיבלת אתה יכול להריץ CEIL או ROUND כדי לעגל את העניינים.
 

erezhod

New member
ואם אני רוצה לשים את זה בסקר

אז הtotal הוא 100 נכון? אבל השאלה היא בכמה אני צריך לכפול (אני לא ממש טוב במתימטיקה :) )
 

אמיר ט

New member
אוקי...

דבר ראשון תלמד מתמטיקה
זה חשוב
דבר שני... בסקר יש לך 100%, איך זה עובד... : נגיד והצביעו 321 איש, ויש לך 4 תשובות אפשריות בסקר אז אתה עובר תשובה תשובה ובודק כמה הצביעו עבור כל תשובה ואז נגיד לתשובה הראשונה הצביעו 100 איש, אז האחוזים יהיו :
(100 * 100) / 321​
או בעברית, [החלק] כפול 100 חלקי [השלם] ואז נגיד והכנסת את זה בתוך משתנה בשם $X אתה עושה Round($X) או Ceil($X) זה רק עניין אם לעגל למעלה או למטה. רק דגש אחד, את התשובה אחרונה תעשה חישוב אחר, תחסיר ממאה אחוז את שאר האחוזים ואז ההפרש יהיה האחוזים המדויקים של התשובה הזאת. הבעיה היא בגלל שאתה מעגל למעלה או למטה יכול ונותר מצב שיש מעבר ל 100% אחוז אם מחברים את האחוזים, או להפך אין אפילו 100% בחישוב הכללי של האחוזים. זה מאזן את המצב.
 

erezhod

New member
תודה הצלחתי והאמת היא

שאני דיי טוב במתימטיקה, אבל אני ממש ממש גרוע באחוזים כי אני פשוט... לא זוכר את זה!!!
תודה רבה רבה על העזרה. ארז.
 
למעלה