הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 08-07-07, 17:54   # 1
Nivi
חבר חדש
 
מיני פרופיל
תאריך הצטרפות: Oct 2006
הודעות: 47

Nivi לא מחובר  

בעיה במונה כניסות שהכנתי|PHP

טוב אז התחלתי ללמוד קצת php, והחלטתי שבתור התחלה אני אבנה איזה מונה כניסות, רציתי לשכלל אותו קצת אז אמרתי שאני יבנה מונה כניסות יחודיות.

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

זה הקוד של המערכת:
PHP קוד:
<?php
//התחברות למסד
        
$mysql_link mysql_connect("localhost" "tomerzvi_user" "password") or die(mysql_error());
        
mysql_select_db("tomerzvi_mone",$mysql_link) or die(mysql_error());

//מחיקת כתובות אייפי ישנות ממסד הנתונים
$time=time();
     
mysql_query("DELETE FROM `IpAddresses` WHERE  ($time-IpDate>86400)");

//בדיקה האם כתובת אייפי קיימת במסד
 
function check_ip(){
             
$flagIp=true;
             
$user_ip=$_SERVER["REMOTE_ADDR"];
             
$ip_result=mysql_query("SELECT * FROM `IpAddresses` ");
             while (
$ip_row=mysql_fetch_array($ip_result))
                          {
                            
$ipDb=$ip_row['UserIp'];
                            if(
$ipDb==$user_ip)
                             
$flagIp=false
                               break;
                         }
   return 
$flagIp;
}
//בדיקה האם עוגיה קיימת במחשב של המשתמש
 
function check_coockie(){
   
$flagCoockie=true;
              if(
$_COOCKIE["myCookie"]) $flagCoockie=false ;

     return 
$flagCoockie;

 }
 
//פונקציה המציגה את המונה
function Show_mone(){
   
$MoneF_result=mysql_query("SELECT `Mone` FROM `Monim`");
   
$MoneF_row=mysql_fetch_array($MoneF_result);
    echo 
"כמות הכניסות היא:".$MoneF_row['Mone'];
    echo 
"\n";
}
             if((
check_coockie) && (check_ip)){  // במקרה של כניסה ראשונה
        //הכנסת אייפי והשתלת עוגיה
                  
$user_ip=$_SERVER["REMOTE_ADDR"];
                  
$time=time();
                  
mysql_query("INSERT INTO `IpAddresses` (UserIp , IpDate) VALUES ('$user_ip','$time')");
                  
$name="Something"
                 
setcookie("myCookie",$name,time()+86400);
        
//עדכון והצגת מונה         
                    
mysql_query("UPDATE `Monim` SET Mone = Mone +1");
                      
Show_mone();
                    echo 
"זוהי כניסתך הראשונה לאתר ב24 השעות האחרונות";
             } else {  
//במקרה של כניסה שנייה             
    // הצגת מונה בלבד
                      
Show_mone();
                      echo 
"כבר נכנסת לאתר ב24 השעות האחרונות";
             }    
mysql_close();
?>
אם אתם רוצים אז מה שהדפדפן מציג זה:
http://tomerzv.220mb.com/MoneN.php

Last edited by Nivi; 08-07-07 at 17:55.. סיבה: תיקון של הקוד
  Reply With Quote
ישן 08-07-07, 17:58   # 2
Eran-s
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 2,609

Eran-s לא מחובר  

רק בדקתי את הבדיקת IP ועשית שם לא נכון עם התנאי.
תעשה את השאילתה עם WHERE UserIP='{$user_ip}'
ואז אם mysql_num_rows של השאילתה שווה 1 לעשות return false/true בהתאם לבדיקה שלך.
ומזמנים פונקציה עם () בסוף...
__________________
מפתח ומתחזק אתרים.
  Reply With Quote
ישן 08-07-07, 18:02   # 3
Nivi
חבר חדש
 
מיני פרופיל
תאריך הצטרפות: Oct 2006
הודעות: 47

Nivi לא מחובר  

ציטוט:
נכתב במקור על ידי Eran-s צפה בהודעה
רק בדקתי את הבדיקת IP ועשית שם לא נכון עם התנאי.
תעשה את השאילתה עם WHERE UserIP='{$user_ip}'
ואז אם mysql_num_rows של השאילתה שווה 1 לעשות return false/true בהתאם לבדיקה שלך.
ומזמנים פונקציה עם () בסוף...
תודה,
הבנתי את הרעיון שלך אני אנסה אותו עוד כמה דקות, אבל לא הבנתי למה מה שניסיתי לעשות לא עובד?
  Reply With Quote
ישן 08-07-07, 18:06   # 4
Meir
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Dec 2006
גיל: 34
הודעות: 383

Meir לא מחובר  

יש לך הרבה שגיאות:
1. בשאלתיה של המחיקה הראשונה אתה מבצע תנאי מחיקה אבל לא מגדיר את השדה שעליו יבוצע התנאי
2. הקריאה שלך לפונקציות לא נכונה, אתה כרגע עושה:

PHP קוד:
if((check_coockie) && (check_ip)) 
הקוד צריך להיות:

PHP קוד:
if(check_coockie() && check_ip()) 
תתקן את הדברים האלה.
__________________
רק אחרי שנמצאים בחושך, אפשר להעריך את האור.

Last edited by Meir; 08-07-07 at 18:08..
  Reply With Quote
ישן 08-07-07, 18:17   # 5
Nivi
חבר חדש
 
מיני פרופיל
תאריך הצטרפות: Oct 2006
הודעות: 47

Nivi לא מחובר  

יש לי בעיה עם 2 השורות האלה:


PHP קוד:
$ip_result=mysql_query("SELECT UserIp FROM `IpAddresses` WHERE `UserIp`=$user_ip");
             
$rows=mysql_num_rows($ip_result); 
מה לא תקין בהם?
זאת השגיאה:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/tomerzv/domains/tomerzv.220mb.com/public_html/MoneN.php on line 15
שורה 15 זה השורה הראשונה שכתובה כאן...
  Reply With Quote
ישן 08-07-07, 18:20   # 6
ASTeam
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Jun 2006
הודעות: 580

ASTeam לא מחובר  

ציטוט:
נכתב במקור על ידי Nivi צפה בהודעה
יש לי בעיה עם 2 השורות האלה:


PHP קוד:
$ip_result=mysql_query("SELECT UserIp FROM `IpAddresses` WHERE `UserIp`=$user_ip");
             
$rows=mysql_num_rows($ip_result); 
מה לא תקין בהם?
זאת השגיאה:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/tomerzv/domains/tomerzv.220mb.com/public_html/MoneN.php on line 15
שורה 15 זה השורה הראשונה שכתובה כאן...
תבדוק שהשורה קיימת במסד
שתיים תעשה ככה -
PHP קוד:
$ip_result=mysql_query("SELECT UserIp FROM IpAddresses WHERE UserIp = '$user_ip'); 
__________________

  Reply With Quote
ישן 08-07-07, 18:35   # 7
Nivi
חבר חדש
 
מיני פרופיל
תאריך הצטרפות: Oct 2006
הודעות: 47

Nivi לא מחובר  

ציטוט:
נכתב במקור על ידי ASTeam צפה בהודעה
תבדוק שהשורה קיימת במסד
שתיים תעשה ככה -
PHP קוד:
$ip_result=mysql_query("SELECT UserIp FROM IpAddresses WHERE UserIp = '$user_ip'); 
תודה רבה! עובד,
עכשיו בעיה נוספת שיש לי זה שהוא לא בודק האם העוגיה קיימת, ברגע שמחקתי את הטבלה עם כל כתובות האייפי, זה החשיב לי כניסה ולא בדק אם העוגיה קיימת...
  Reply With Quote
ישן 08-07-07, 19:43   # 8
Rom
Winner
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 1,359

Rom לא מחובר  

תשנה את הif בבדיקה של ההעוגיה, לבדיקה אם העוגיה קיימת בעזרת isset
__________________
בברכה, רום.
מתכנת אפליקציות אינטרנט.

אימייל: Rom.As10@gmail.com
מסנג'ר: Rom_as10@hotmail.com
  Reply With Quote
ישן 08-07-07, 19:54   # 9
Nivi
חבר חדש
 
מיני פרופיל
תאריך הצטרפות: Oct 2006
הודעות: 47

Nivi לא מחובר  

ציטוט:
נכתב במקור על ידי Rom צפה בהודעה
תשנה את הif בבדיקה של ההעוגיה, לבדיקה אם העוגיה קיימת בעזרת isset
ככה?
PHP קוד:
if(isset($_COOCKIE["myCookie"])) 
עדיין לא עובד, אבל תודה בכל זאת
  Reply With Quote
ישן 08-07-07, 20:38   # 10
Rom
Winner
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 1,359

Rom לא מחובר  

יש לך שגיאת כתיב..
if($_COOCKIE["myCookie"]) $flagCoockie=false ;

cookie
ולא
coockie
__________________
בברכה, רום.
מתכנת אפליקציות אינטרנט.

אימייל: Rom.As10@gmail.com
מסנג'ר: Rom_as10@hotmail.com
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 13:14.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ