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

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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 04-09-10, 12:12   # 1
Ben21
חסום
 
מיני פרופיל
תאריך הצטרפות: Jan 2010
מיקום: במרכז
הודעות: 239

Ben21 לא מחובר  

בניתי מחלקה, הצעות לשיפור

PHP קוד:
<?php
class mysql
{
    var 
$connect_id,$db;
    var 
$host,$user,$pass,$dbname;
    function 
db_login($host$user$pass$dbname)
    {
        
$this->connect_id mysql_connect($host$user$pass)or die(mysql_error());
        
$this->db mysql_select_db($dbname$this->connect_id)or die(mysql_error());
    }
}

class 
galery
{
    
//Function For Add New Album
    
var $user$name$description$main_img;
    function 
add_album($user$name$description$main_img)
    {
        global 
$db;
        
$name $_POST["name"];
        
$user $_POST["user"];
        
$description $_POST["description"];
        
$main_img $_POST["main_img"];
        if(empty(
$user) || empty($name) || empty($description) || empty($main_img))
        {
            echo 
"Error";
        }
        else
        {
            echo 
"Good";
            
mysql_query("INSERT INTO `albums` (`user`, `name`, `description`, `main_img`) VALUES
            ('"
.$user."', '".$user."', '".$description."', '".$main_img."')") or die(mysql_error());
        }
    }
    
    
//Function For Delete Images In Albums
    
var $from$delete$delete_id;
    function 
delete_from($from$delete$delete_id)
    {
        global 
$db;
        
$delete $_POST["del"];
        
$delete_id implode(",",$delete);
        if(empty(
$delete_id) || empty($from))
        {
            echo 
"Error";
        }
        else
        {
            echo 
"Good";
            
mysql_query("DELETE FROM `".$from."` WHERE `id` IN (".$delete_id.")") or die(mysql_error());
        }
    }
}
$db = new mysql();
$db->db_login("localhost""root""""cms");
$g = new galery();
?>
מספר שאלות
שאלה ראשונה:
האם את משתני הPOST ותנאיי הIF לעשות לאחר הטופס עצמו בHTML של המערכת או בבדיקה בפונקצייה בCLASS ואז בHTML אתה פשוט קורא לפונקצייה הרצוייה מהמערך וזה מבצע את הבדיקות לבד..

שאלה שנייה:
האם המחלקה יעילה?
אני מתכנן לפתח CMS ענקית ע"י שימוש בOOP

תודה רבה על שיתוף הפעולה, ושבת שלום!

Last edited by Ben21; 04-09-10 at 12:37..
  Reply With Quote
ישן 04-09-10, 22:58   # 2
AlmogBaku
חבר וותיק
 
AlmogBaku's Avatar
 
מיני פרופיל
תאריך הצטרפות: Nov 2007
מיקום: מודיעין
הודעות: 1,022

AlmogBaku לא מחובר  

אני מציע מראש לשקול שימוש ב ActiveRecord..
  Reply With Quote
ישן 04-09-10, 23:22   # 3
Daniel
אחראי פורום
 
מיני פרופיל
תאריך הצטרפות: Mar 2007
הודעות: 2,875

Daniel לא מחובר  

אני מציע שתסתכל במחלקות MySQL וללמוד מהם.

אין צורך להגדיר " var $host,$user,$pass,$dbname;" ודומיהם.

ובהמשך להערה האחרונה - תסתכל על הקוד שלך..
PHP קוד:
    var $user$name$description$main_img;
    function 
add_album($user$name$description$main_img)
    {
        global 
$db;
        
$name $_POST["name"];
        
$user $_POST["user"];
        
$description $_POST["description"];
        
$main_img $_POST["main_img"]; 
אתה מצד אחד הגדרתי properties של המחלקה (ואתה לא משתמש בהם - ז"א $this->name),
אחר כך אתה מגדיר שלפונקציה קוראים עם נתונים מסויימים - אבל אתה אחר כך מגדיר אותם מחדש.


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

גלריה כותבים עם 2 L - ז"א gallery.

אם אתה מעוניין להתחיל ליישם את עקרונות התכנות מונחה עצמים, אני שוב פעם - ממליץ להסתכל על מחלקות קיימות.

אם יש לך פונקציה שמטפלת במחיקה לדוגמא של תמונה גלריה - היא לא תציג את המידע. היא רק אמורה להחזיר TRUE/FALSE (אם היא הצליחה או לא).
אתה צריך גם להסתכל כאן על עקרונות של אבטחת מידע - ז"א לבצע escaping של המידע שנכנס למסד...


אני חושב שלפני שתתחיל בלתכנת מערכת גדולה כדאי שתקרא מחדש את הדפים ב-PHP.NET שמסבירים על פונקציות ועל OOP. יש דף מעולה שמסביר על פונקציות ב-PHP.NET: http://www.w3schools.com/PHP/php_functions.asp


בהצלחה!
  Reply With Quote
ישן 05-09-10, 13:29   # 4
astricks
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 35
הודעות: 95

astricks לא מחובר  

אתה צריך ללמוד OOP לפני שאתה מפתח CMS כזאת.. זה סתם פונקציות בתוך מחלקה.
מציע לך לקרוא קצת חומר, לא חסר
  Reply With Quote
ישן 05-09-10, 17:52   # 5
Hagaibl
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Jul 2010
הודעות: 214

Hagaibl לא מחובר  

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

אין צורך להגדיר " var $host,$user,$pass,$dbname;" ודומיהם.

ובהמשך להערה האחרונה - תסתכל על הקוד שלך..
PHP קוד:
    var $user$name$description$main_img;
    function 
add_album($user$name$description$main_img)
    {
        global 
$db;
        
$name $_POST["name"];
        
$user $_POST["user"];
        
$description $_POST["description"];
        
$main_img $_POST["main_img"]; 
אתה מצד אחד הגדרתי properties של המחלקה (ואתה לא משתמש בהם - ז"א $this->name),
אחר כך אתה מגדיר שלפונקציה קוראים עם נתונים מסויימים - אבל אתה אחר כך מגדיר אותם מחדש.


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

גלריה כותבים עם 2 L - ז"א gallery.

אם אתה מעוניין להתחיל ליישם את עקרונות התכנות מונחה עצמים, אני שוב פעם - ממליץ להסתכל על מחלקות קיימות.

אם יש לך פונקציה שמטפלת במחיקה לדוגמא של תמונה גלריה - היא לא תציג את המידע. היא רק אמורה להחזיר TRUE/FALSE (אם היא הצליחה או לא).
אתה צריך גם להסתכל כאן על עקרונות של אבטחת מידע - ז"א לבצע escaping של המידע שנכנס למסד...


אני חושב שלפני שתתחיל בלתכנת מערכת גדולה כדאי שתקרא מחדש את הדפים ב-PHP.NET שמסבירים על פונקציות ועל OOP. יש דף מעולה שמסביר על פונקציות ב-PHP.NET: http://www.w3schools.com/PHP/php_functions.asp


בהצלחה!
מחזק כל מילה. בנוסף אתה עושה פונקציה של יצירת אלבום אבל פונקציה של מחיקת תמונה? במחלקה של גלריה? כאילו למה לעשות סלט? תעשה קובץ שיכיל את הפונקציות שאחראיות על התמונות, אחת על האלבומים. זה ריקני מידי. לא עושים לכל דבר מחלקה. לפעמים זה לא כדאי.
__________________
בברכה,
חגי בלוך גדות.
  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. הזמן כעת הוא 11:59.

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