הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   בעיה קשה בסיישן (https://hosts.co.il/forums/showthread.php?t=35328)

forils 27-11-06 17:39

בעיה קשה בסיישן
 
http://www.dicw.net/1/index.php
זאתי המערכת שאני מתכנת עכשיו.

הבעיה היא שתכנסו לדף הזה למשל http://www.dicw.net/1/pages.php?ID=My&Page=Loginזה מראה שגיאה :
PHP קוד:

Fatal errorCannot redeclare us_check_security() (previously declared in /usr/home/matrixip/domains/dicw.net/public_html/1/config.php:26in /usr/home/matrixip/domains/dicw.net/public_html/1/config.php on line 24 

ואםן תכנסו לפה http://www.dicw.net/1/pages.php?ID=My זה לא יראה את השגיאה
וזה מראה את השגיאה בכל הדפים שיש בהם &Page=
עכשיו מה יכול להיות הבעיה.
ודרך אגב איך המערכת ?

miniature 27-11-06 17:43

כתוב כאן את שורה 24 / 26 בקובץ config.php

forils 27-11-06 17:49

אני יעתיק לכם אותה :
PHP קוד:

function us_check_security()
{
  if(!isset(
$_SESSION['us_valid_user']) || $_SESSION['us_valid_user']=='')
    return 
false;
  else
    return 
true;



-roee- 27-11-06 17:56

כנראה שקראת לפונקציה הזו פעמיים

בדוק את זה ומחק קריאה אחת שלך

forils 27-11-06 18:02

לא ניראה לי שהבנתי אותך

miniature 27-11-06 18:12

ציטוט:

נכתב במקור על ידי forils (פרסם 380670)
אני יעתיק לכם אותה :
PHP קוד:

function us_check_security()
{
  if(!isset(
$_SESSION['us_valid_user']) || $_SESSION['us_valid_user']=='')
    return 
false;
  else
    return 
true;



החלף ב:
PHP קוד:

function us_check_security() 

  if((!isset(
$_SESSION['us_valid_user']) || ($_SESSION['us_valid_user']=='')) {
    return 
false
  }
  else { 
    return 
true
  }



forils 27-11-06 18:16

עכשיו נותן את השגיאה הזאת בכל הדפים :
PHP קוד:

Parse errorsyntax errorunexpected '{' in /usr/home/matrixip/domains/dicw.net/public_html/1/config.php on line 26 


LosNir 27-11-06 18:17

ציטוט:

נכתב במקור על ידי miniature (פרסם 380683)
החלף ב:
PHP קוד:

function us_check_security() 

  if((!isset(
$_SESSION['us_valid_user']) || ($_SESSION['us_valid_user']=='')) {
    return 
false
  }
  else { 
    return 
true
  }



לא קשור, כאשר יש שורה אחת אחרי התנאי, אין צורך בסוגר מסולסל.

miniature 27-11-06 18:25

ציטוט:

נכתב במקור על ידי LosNir (פרסם 380689)
לא קשור, כאשר יש שורה אחת אחרי התנאי, אין צורך בסוגר מסולסל.

את זה הוספתי רק לסדר, את ההוספה המשמעותית יותר עשיתי בסוגריים שבתוך התנאי -> if ((x=1) || (y=2)) do bla bla

forils 27-11-06 18:26

טוב אבל מה עם הבעייה ?

miniature 27-11-06 18:27

מה יש בשורה 26 ב config.php ?

forils 27-11-06 18:28

את הקוד שאמרתה לי להחליף וזה בשורה :
PHP קוד:

  if((!isset($_SESSION['us_valid_user']) || ($_SESSION['us_valid_user']=='')) { 


miniature 27-11-06 18:34

אולי שכחת לסגור את ה if..?

forils 27-11-06 18:37

הוא סגור
PHP קוד:

function us_check_security() 

  if((!isset(
$_SESSION['us_valid_user']) || ($_SESSION['us_valid_user']=='')) {
    return 
false
  }
  else { 
    return 
true
  }



LosNir 27-11-06 18:42

ציטוט:

נכתב במקור על ידי forils (פרסם 380714)
הוא סגור
PHP קוד:

function us_check_security() 

  if((!isset(
$_SESSION['us_valid_user']) || ($_SESSION['us_valid_user']=='')) {
    return 
false
  }
  else { 
    return 
true
  }



זה נגרם כי אתה קורא לפונקציה שמיובאת ע"י INCLUDE
אין לי מושג למה זה ככה.. אבל אי אפשר פשוט לקרוא לפונקציה שמיובאת ע"י INCLUDE,
נסה את זה אפילו..

forils 27-11-06 18:45

בטח שאפשר .
זה קובץ config שאני מייבא אותו מכל דף ואני חייב אותו .

DCB 27-11-06 19:11

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

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

forils 27-11-06 19:33

יש פעמיים ינקלוד אבל לא לאותו קובץ ויש פעמיים את הפונקציה אבל לא באותו קובץ

DCB 27-11-06 20:02

ציטוט:

נכתב במקור על ידי forils (פרסם 380749)
יש פעמיים ינקלוד אבל לא לאותו קובץ ויש פעמיים את הפונקציה אבל לא באותו קובץ

וואפס... אם יש פעמיים את הפונקציה בקבצים שונים תבדוק שהם לא מתנגשים איפה שהוא...
כי השגיאה שמופיע לך היא, שכבר הכרזת על הפוקציה לפני.
ד"א אם האתר שלך בנוי בצורה כזאת:
PHP קוד:

if($_GET[id]=="home"){
   include (
config.php);
}
else if(
$_GET[id]=="about"){
   include (
config2.php);


ואתה תכנס לid=about
הוא עדיין יעשה אינקלוד לקובץ הראשון
אז יכול להיות שפה הבעיה שלך

sUP 27-11-06 21:04

חח בדיוק אחי..
מזה חבר'ה אם אתם לא יודעים אל תענו

אי אפשר לכתוב את אותה פונקציה בדף (ולא משנה אם זה דרך INCLUDE)
תוריד מאחד הקבצים את הפונקציה וזהו

forils 28-11-06 09:14

האתר שלי בנוי על דרך דומה .. SWICH יש את הSWICH בדף pages.php וגם בדף pages/my/index.php .
בדף הראשון ה pages.php יש את זה ככה :
PHP קוד:

<?php

    
include ("header.php"); 

  switch(
$ID) {

    case 
"News":
    include (
"pages/news/index.php"); 
    break;

    case 
"My":
    include (
"pages/my/index.php"); 
    break;

  }
?>

ובדף pages/my/index.php ששם יש את הבעיות הוא :
PHP קוד:

<?
    
switch($Page
    { 
        case 
"Signupf"
        include 
"signup1.php"
        break; 
        case 
"Logout"
        include 
"logout.php"
        break; 
        case 
"Signup"
        include 
"signup.php"
        break; 
        case 
"edit"
        include 
"details.php"
        break; 
        case 
"Login"
        include 
"login.php";   

    } 

  
session_start();

  include 
"config.php";
  include 
"lang/$language";

  if(!
us_check_security())
  {
    echo 
ERORC;
    exit;
  }

echo 
'נכנסתה בהצלחה';

?>

עכשיו..בכל הדפים שהוא עושה ינקלוד יש שם את הפונקציה us_check_security אבל אני חייב שהיא תהיה בכל הדפים האלה .


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

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