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

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

חיים 07-04-07 12:19

האם זה אפשרי לקרוא לפונקצייה שמחוק למחלקה מתוך המחלקה?
 
יש לימחלקקה שנראת user עכשיו יש לי מחוץ לזה פונקצייה של אבטחה שקראתי לה secure אני רוצה מתוח המחלק לקרוא לפונקצייה בכדי להשתמש בה ניסיתי לקרוא כרגיל וזה לא מצליח לי מישהוא יודע למה?יש דרך לפתור את זה?

WebProject 07-04-07 12:36

אם הבנתי אותך נכון, יש לך מחלקה, שאתה רוצה לעשות שימוש בפונקציה שלה, בתוך פונקציה של מחלקה אחרת?

אם לזה התכוונת,

PHP קוד:


class firstClass()
{
        function 
myfunction()
        {
        global 
$secondClass// import the class you want to use 

              
$secondClass -> someFuncionn(); // now you can use the second's class functions

       
}


שכחתי לציין, ניתן לעשות שימוש במספר מחלקות בו זמנית בעזרת Global:

PHP קוד:


global $DB,$secure,$html,$bla....; 


חיים 07-04-07 12:45

התכוונתי שאני רוצה להשתמש בפונקצייה שלא נמצאת במחלקה אלא באותו הקובץ אני רוצה להשמתש בה בתוך המחלקה

WebProject 07-04-07 12:48

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

<?Php

    
function printSomething($toPrint)
    {
        print 
$toPrint;
    }

    class 
myClass
    
{
        function 
myFunction()
        {
            
printSomething('tal');
        }
    }

$class = new myClass;
    
$class -> myFunction();

?>


חיים 07-04-07 12:56

טוב הנה תראה הנה מה שיש לי:
זאת הפונקצייה:
PHP קוד:

function secure($string,$hsc=true,$mras=true,$trim=true)
{
    
$string = ($hsc==true)?htmlspecialchars($string):$string;
    
$string = ($mras==true)?mysql_real_escape_string($string):$string;
    
$string = ($trim==true)?trim($string):$string;
    return 
$string;


והנה המחלקה:
PHP קוד:

class user
{
    function 
user($name,$pass,$cpass=true,$email,$name,$adress,$text)
    {
        
$name secure($name);
        
$pass = ($cpass==true)?cpass(secure($pass)):secure($pass);
        
$email preg_match("/^[\w\-\.]+\@[\w\-\.]+\.[\w\-]+$/i",$email)?$email:die("Email Not Valid");
        
$name secure($name);
        
$adress secure($adress);
        
$text secure($text);
        echo 
$name."<br />".$pass."<br />".$email."<br />".$name."<br />".$adress."<br />".$id."<br />".$text;
    }


והנה הקריא שאני עושה:
PHP קוד:

$user = new user('admin','1234',false,'a@aa.a','admin','a a a a','"<> '); 

וזה לא מוחק רווחים ולא תווים ולא עושה כלום למה?

ViPeRt 07-04-07 13:00

תסתכל איך בנויה הפונקציה Secure
אתה ניתן לך מילה ואחרי זה את האפשרות שאתה רוצה להוריד...

במחלקה נתת לה רק את המילה ז"א שהוא מחזירה לך אותה כמו שהיא...

הנה דוגמא:


שימוש ב htmlspecialchars
PHP קוד:

$name secure($nametrue); 

שימוש ב mysql_real_escape_string
PHP קוד:

$name secure($namefalsetrue); 

שימוש ב trim
PHP קוד:

$name secure($namefalsefalsetrue); 

מקווה שהבנת

meshuga 07-04-07 13:11

ציטוט:

נכתב במקור על ידי ViPeRt (פרסם 454344)
תסתכל איך בנויה הפונקציה Secure
אתה ניתן לך מילה ואחרי זה את האפשרות שאתה רוצה להוריד...

במחלקה נתת לה רק את המילה ז"א שהוא מחזירה לך אותה כמו שהיא...

הנה דוגמא:


שימוש ב htmlspecialchars
PHP קוד:

$name secure($nametrue); 

שימוש ב mysql_real_escape_string
PHP קוד:

$name secure($namefalsetrue); 

שימוש ב trim
PHP קוד:

$name secure($namefalsefalsetrue); 

מקווה שהבנת

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

ציטוט:

function secure($string,$hsc=true,$mras=true,$trim=true)
לפותח האשכול...
ניסית להכניס אותה למחלקה בשביל לראות אולי היא תעבוד משם?...

חיים 07-04-07 13:13

אבל ניסיתי לתת לת את המילה רק לא בתוך המחלקה וזה הצליך לי והיא עשה את כל השלושת הפעולות אז למה במחלקה זה לא מצליח לי?

חיים 08-04-07 13:44

טוב תודה רבה לכל אלו שניסו לעזור אבל בסוף הצלחתי והבעייה הייתה במחלקה שהייתה נמצאת באותו הקובץ כמו שורות מעל למחקה הזאת היא פשוט לא הייתה בנוייה נכון והרסה את כל המשך הקובץ


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

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