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

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



  #1  
ישן 15-04-2005, 19:40
  mz_nikon mz_nikon אינו מחובר  
 
חבר מתאריך: 15.04.05
הודעות: 84
מערכת סקרים

אני בונה מערכת סקרים ב-php ,בלי mysql עם פאנל ניהול נוח וקל לשימוש.
כרגע לשימוש בשפה האנגלית אך עם הזמן בעוד שפות...[עברית ועוד]
כרגע אני מסתבך עם 2 דברים.

1.זיהוי מצביע על-פי IP.

אני רוצה להוסיף מנגנון שבעצם יקבל את ה-ip של המצביע וישמור אותו בקובץ txt,לדוגמה:
ips.txt
כמובן שלפני זה צריכה להיות בדיקה אם כבר ה-ip הזה נמצא בקובץ txt.
אני יודע שישנה בעיה של ip משתנה שאז בעצם מישהו שלא הצביע כביכול ידפק.
אבל אין לי ראש ל-sessions או cookies שדרך אגב קלים לפריצה.


2.הצבעות

החלק השני הינו שמירת מספר ההצבעות הכללי ומספר ההצבעות לכל אפשרות הצבעה.
ושמירתם בתוך פנקס רשימות.בכל הצבעה אני צריך לעשות +1...אבל אני לא ממש יודע\זוכר איך.
האם להעזר ב-count ?

הנה הלוגיקה שלפיה בניתי את המערכת,תעירו ותאירו ותגיבו:

*בדיקת ip קיימת מתוך ips.txt
*אם כן-->הוצאת פלט "כבר הצבעת לסקר זה"
*אם לא--> המשך הצבעה ושמירת ה-ip

*בדיקת אפשרויות פתיחת קבצי ה-txt.

קוד PHP:
<?php
$filename 
'votes.txt';
$c_votes "+1\n";
 
 
if (
is_writable($filename)) {
 
if (!
$handle fopen($filename'a')) {
         echo 
"Cannot open file ($filename)";
         exit;
}
 
if (
fwrite($handle$c_votes) === FALSE) {
     echo 
"Cannot write to file ($filename)";
     exit;
}
 
echo 
"Success, wrote ($c_votes) to file ($filename)";
 
fclose($handle);
 
} else {
echo 
"The file $filename is not writable";
}
?>


*לאחר מכן, חשיפת התוצאות .
לדוגמה:

האם בלה בלה ?

א.בלה בלה 58
ב.בלה בלה בלה 27
ג.בלה 38

הצביעו: [מספר המצביעים הכללי]

[מספר המצביעים,לא אחוזים]


תודה רבה לעוזרים,
mz_Nikon
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 16-04-2005, 03:34
  Fixxxer Fixxxer אינו מחובר  
 
חבר מתאריך: 21.09.02
הודעות: 408
בתגובה להודעה מספר 1 שנכתבה על ידי mz_nikon שמתחילה ב "מערכת סקרים"

קודם כל אני חייב להגיד, אם אתה עושה את זה כחלק מרעיון של מערכת לאתר ללא מסד נתונים, או כחלק מתהליך תירגול אז אחלה. אבל במידה ואתה מעדיף את המסד נתונים באמצעות קבצי טקסט על מסד נתונים כגון mysql הבחירה, לדעתי, לא משהו בהתחשב בנוחות, המהירות והבטיחות שיש למסדי נתונים מקצועיים כנגד קבצי טקסט.
עוד משהו, בקשר לאייפי. מערכות שרוצות לשחק אותה בטוח במקום להשתמש בשיטה אחת כדי להגן על המערכת, משתמשים בכולן. לשים ג םsession גם cookies וגם בדיקת IP. כמובן שזה עדיין פריץ אבל לפחות המשתמש יהיה חייב ליהיות ממש ממש משועמם בשביל לבצע עקיפה של הבדיקה וככה אתה מונע את הרוב המוחלט של המקרים הנ"ל.

אז מה שאתה צריך בעיקרון זה עזרה בעבודה עם קבצים טקסט. דקל רשם על זה כבר מדריך טוב, אז אין טעם שאני אמציא את הגלגל: http://nix.co.il/201.
בקשר לאיך לבצע את הIP אני חושב שהמדריך יסביר לך בדיוק, הרי מה שצריך זה לעבור שורה שורה ולהשוות עם הIP הנוכחי, ובמידה ולא קיים להוסיפו ולהודיע לסקריפט הראשי. בנוגע לסקר עצמו, הייתי ממליץ לך לעשות את זה בדרך הבאה:
תן לכל סקר id אשר יופיע בתחילת כל מחרוזת של סקר. תעשה כך שכל סקר יובדל מהשני ע"י תו ירידת שורה, והוא בעצמו יתפוס רק שורה אחת. זה יקל על הקריאה. השאלות עצמן והכותרת יפרדו ע"י תו מיוחד שיזוהה ויקבע על-ידך (משהו כגון: | # ^). ואת הניקוד אתה מוסיף אחרי אותו תו מפריד לאחר כל שורת מחרוזת. ככה, לפחות לדעתי, זה יקל על הקריאה של הסקר בעמצעות הסקריפט וזה יסדר אותו בצורה מאורגנת. (העיקרון של התו המפריד הוא כדי שתוכל לקחת כל שורה ובאמצעות אותו תו לפרק אותה למערך, שיהיה לך יותר נוח לעבוד עם הנתונים).

אם יש לך עוד שאלות, אתה מוזמן לשאול.

נ.ב.
אין טעם "להקפיץ" הודעות, בדר"כ לוקח יותר משעתיים לקבל תשובה ויש לחכות שמישהו שיוכל לעזור לך יראה את ההודעה. אין מצב שתשאר ללא עזרה או לפחות תגובה מצידנו.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 16-04-2005, 13:42
  mz_nikon mz_nikon אינו מחובר  
 
חבר מתאריך: 15.04.05
הודעות: 84
בתגובה להודעה מספר 4 שנכתבה על ידי mz_nikon שמתחילה ב "הבנתי את בקשר לבעיה..."

אני עדיין לא הצלחתי לפתור את הבעיה שלי עם קידום המשתנה ב-1 ושמירתו בפנקס הרשימות.
הנה הקוד שלי:
ההודעות שגיאה וההצלחה באנגלית מכיוון שהמערכת אמורה להיות בשפה האנגלית, אני מאמין שלא תיתקלו בקושי להבין כמה מילים פשוטות באנגלית.

קוד PHP:
 $filename="votes.txt";

 

if (isset (
$_POST["option"]) == false )



echo (
'voting faild!');

}

else



if(
is_writeable($filename))

{

$fp fopen("votes.txt","+r"); 

$fl fread($fpfilesize($filename)); 

$c_votes=$fl
$c_votes
=$c_votes++
fwrite($fp,"$c_votes"); 
fclose($fp);  
echo 
$filename;
//prob here//
echo ('Your vote added in succses!');

echo 
$c_votes;

 

else

{

echo 
"This file isnt write able!";

}




בהתחלה הגדרתי משתנה בשם filename שערכו הוא שם הקובץ רשימות [votes.txt],
לאחר מכ הצבתי תנאי שיבדוק אם המצביע בחר בכלל אפשרות כלשהי מתוך האפשרויות[סימון כפתור רדיו], אם לא סומן כפתור רדיו אחד ישנה תוצאת פלט: voting faild!.
אחרת יש צורך בבדיקת הקובץ votes.txt, הם ניתן לכתוב בו, שימוש ב-[is_writeable] ,
אם כן המשתנה $fp אמור לפתוח את הקובץ ו-$fl שווה לתוכן פנקס הרשימות.

$c_votes=$fl
$c_votes=$c_votes++
fwrite($fp,"$c_votes");
fclose($fp);

הקוד הזה[הקטן מלמעלה] אמור לתת למשתנה [c_votes] את הערך של fl הלא הוא תוכן הפנקס רשימות, לאחר מכן לקדם את המשתנה ב-1, בעזרת אופרטור ++ ואז לכתוב בקובץ את הערך החדש.

מה הבעיה אז אם יש בכלל?
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #7  
ישן 16-04-2005, 14:23
  mz_nikon mz_nikon אינו מחובר  
 
חבר מתאריך: 15.04.05
הודעות: 84
בתגובה להודעה מספר 1 שנכתבה על ידי mz_nikon שמתחילה ב "מערכת סקרים"

נתקעתי בבעיה חדשה.
מכיוון שאני צריך לתת הרשאה לקובץ votes.txt החלטתי להשתמש בפונקציה chamod/
עכשיו מחקתי את התנאי שבודק אם ישנה הרשאה לכתיבה וקריאה כך שהקוד שנשאר הוא:
קוד PHP:
<?php

/**

* PHP polls system

* MasterZone

* @version 1.0.4.82

* @copyright Ofir Baruch & MasterZone(2005-2006) 

**/





$_SERVER['REMOTE_ADDR'];

$filename="votes.txt";

$directory="c:\phpdev\www\warcraft\en\vote.php";

chmod("$directory",0777);

$fp fopen("$filename","+r"); 

$fl=fread($fp,filesize($filename));

$c_votes=$fl;

$c_votes=$c_votes++;

fwrite($fp,$c_votes);

fclose($fp);

if (isset (
$_POST["option"]) == false )



echo (
'voting faild!');

}

else



echo (
'Your vote added in succses!');

echo 
"Your are the $c_count voter";





  

 
?>


אבל כאשר אני מריץ את הקוד אני מקבל את השגיאות הבאות:

קוד:
Warning: fopen("votes.txt", "+r") - No error in c:\phpdev\www\warcraft\en\vote.php on line 17 Warning: stat failed for votes.txt (errno=2 - No such file or directory) in c:\phpdev\www\warcraft\en\vote.php on line 18 Warning: fread(): supplied argument is not a valid File-Handle resource in c:\phpdev\www\warcraft\en\vote.php on line 18 Warning: fwrite(): supplied argument is not a valid File-Handle resource in c:\phpdev\www\warcraft\en\vote.php on line 21 Warning: fclose(): supplied argument is not a valid File-Handle resource in c:\phpdev\www\warcraft\en\vote.php on line 22 voting faild!



*בקשר לתוצאת הפלט "voting faild!", זה בגלל שלא סימנתי אף אחת מן אפשרויות הסקר.

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

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

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

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

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



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

הדף נוצר ב 0.10 שניות עם 10 שאילתות

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

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