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

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

AlmogBaku 18-02-09 13:07

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

אבל חוץ מפלגינים יש דברים מסובכים הרבה יותר, למשל מערכת VirtualCron[לקח לי כמה ימים רק לחשוב על אלגוריתם, ונשברתי מלא פעמים באמצע, בקיצור- לקח יותר מידי זמן להצליח] או למשל מערכת להצפנת קוד PHP , שזה לא כל כך פשוט כמו שזה נראה..
או מחלקות לעיבודים של תמונה- המרה לסוג JPEG, הקטנה של תמונות, שמירה על פורפורציות, יצירת מסגרות מעוגלות וכו'..

ובאופן אישי, אני לא ממליץ לך לנסות את זה, אתה לא בשל לזה.


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



אגב, לגבי בדיקת המשתמש- אומנם ענו לך פה יפה עם הפתרון, אבל לא לגמרי. זו הדרך בה אני הייתי בוחר לבדוק:
PHP קוד:

/**
 * Check id user is vaild
 *
 * @param string $username
 * @param md5 $password
 * @return TRUE if exits, or FALSE if not exits.
 */
function check_user($username=""$password="") {
    
$username     htmlspecialchars($usernameENT_QUOTES);
    
$username     mysql_real_escape_string($username);
    
    
$password     mysql_real_escape_string($password);
    
$query        ""
            
."SELECT count(*) as `avilable` FROM `prefix_users` WHERE \n"
            
."    `username` = '" $username "', \n"
            
."    `password` = '" $password "';";

    
$result        mysql_query($query) or die("<u>E</u>rror: " mysql_error());
    
$avilable    mysql_fecth_assoc($result);
    
$avilable    $avilable['avilable'];
    
    if(
$avilable>0) return true;
    else return 
false;



Adir 18-02-09 14:34

ציטוט:

נכתב במקור על ידי Baku (פרסם 698905)
ובאופן אישי, אני לא ממליץ לך לנסות את זה, אתה לא בשל לזה.

למה לא ? ^^
מאיפה אתה יודע מה הידע והניסיון שלי?(אגב, אני לא פתחתי את האשכול הזה)

AlmogBaku 18-02-09 14:58

ציטוט:

נכתב במקור על ידי Adir|HomeServ.co.il (פרסם 698924)
למה לא ? ^^
מאיפה אתה יודע מה הידע והניסיון שלי?(אגב, אני לא פתחתי את האשכול הזה)

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

Shay Ben Moshe 18-02-09 15:40

ציטוט:

נכתב במקור על ידי Baku (פרסם 698930)
לפי הקוד שהוא הציג, והשאלות שהוא שאל. הסיכוי שהוא יצליח לפתח מערכת VirtualCron למשל היא מאוד נמוכה.. אלו מערכות מאוד מורכבות..

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

Adir 18-02-09 15:55

ציטוט:

נכתב במקור על ידי Adir|HomeServ.co.il (פרסם 698924)
למה לא ? ^^
מאיפה אתה יודע מה הידע והניסיון שלי?(אגב, אני לא פתחתי את האשכול הזה)

ציטוט:

נכתב במקור על ידי Baku (פרסם 698930)
לפי הקוד שהוא הציג, והשאלות שהוא שאל. הסיכוי שהוא יצליח לפתח מערכת VirtualCron למשל היא מאוד נמוכה.. אלו מערכות מאוד מורכבות..

לא דיברתי עליו, דיברתי עלי

Daniel 18-02-09 16:10

ציטוט:

נכתב במקור על ידי The Chosen Generl (פרסם 698424)
קצת בעייתי מבחינתי לשחרר יותר מדי קבצים אז אני אתן חלק קטן במערכת שאחראי על שינוי פרטי התחברות, עם כי גם הוא לא מתוחכם במיוחד. למי שתוהה זה קובץ שאני עושה לו include לתוך החלק של התוכן עצמו של הדף:
קוד:

<?php
if (isset($_POST['sent'])) {
        $update_name = $_POST['name'];
        if ($update_name != "") {
                sqlupdate("admin","username='$update_name'");
                setcookie ("login_name" , $update_name , time()+7200);
        echo <<<CONTENT
<strong>שם משתמש שונה בהצלחה!</strong>
<br />
CONTENT;
                }

        $update_pass2 = $_POST['pass2'];
        $update_pass = $_POST['pass'];
        $update_old_pass = $_POST['old_pass'];
        if ((md5($update_old_pass) == $admin_pass) && ($update_pass == $update_pass2)) {
                sqlupdate("admin","password='$update_pass'");
                setcookie ("login_pass" , md5($update_pass) , time()+7200);
        echo <<<CONTENT
<strong>סיסמה שונתה בהצלחה!</strong>
<br />
CONTENT;
                }
        elseif ($update_old_pass != "") {
                if (md5($update_old_pass) != $admin_pass) {
        echo <<<CONTENT
<strong>הסיסמה הישנה לא נכונה!</strong>
<br />
CONTENT;
                        }
                if ($update_pass != $update_pass2) {
        echo <<<CONTENT
<strong>הסיסמה החדשה לא תואמת את הסיסמה בשנית!</strong>
<br />
CONTENT;
                        }
                }
        }

echo <<<CONTENT
<form method="post" action="#">
<input type="hidden" name="sent" value="sent" />
שם המשתמש לפאנל הניהול:
<br />
<input type="text" name="name" value="" style="width: 500px;"/>
<br />
סיסמה ישנה: (להקיש רק בשינוי סיסמה)
<br />
<input type="text" name="old_pass" value="" style="width: 500px;"/>
<br />
סיסמה חדשה לפאנל הניהול:
<br />
<input type="text" name="pass" value="" style="width: 500px;"/>
<br />
סיסמה חדשה בשנית לפאנל הניהול:
<br />
<input type="text" name="pass2" value="" style="width: 500px;"/>
<br /><br />
<input type="submit" value="שלח" class="button" />
</form>
CONTENT;
?>

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

עריכה:
חוץ מזה, אני לא שואל אם אני בסדר, אני שואל לאן להמשיך, ללמוד עוד PHP, למרות שאני מסתדר עם כל דבר עד עכשיו כמעט או ללכת ונניח להתחיל ללמוד AJAX או לשבת וללמוד קצת JS. נראה לי אני אקח לי איזה שישי שבת ללמוד JS ככה חח.

אתה לא שואל אם אתה בסדר?

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

AlmogBaku 18-02-09 16:42

ציטוט:

נכתב במקור על ידי Adir|HomeServ.co.il (פרסם 698950)
לא דיברתי עליו, דיברתי עלי

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

intercooler3819 18-02-09 18:59

ציטוט:

נכתב במקור על ידי Baku (פרסם 698930)
לפי הקוד שהוא הציג, והשאלות שהוא שאל. הסיכוי שהוא יצליח לפתח מערכת VirtualCron למשל היא מאוד נמוכה.. אלו מערכות מאוד מורכבות..

אממ תסביר לי מה הכוונה בVIRTUAL CRON..
קרון שלא תלוי בCRON TABS המובנים בלינוקס?

כי אם כן זה אפילו לא מערכת.. זה עניין של מספר דקות..

להת'

ניצן

AlmogBaku 18-02-09 19:39

VirtualCron זה שם למערכת קרון ג'ובס שלא תלויה במכונה שלך, במילים אחרות, קרון ג'ובס בPHP.

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

intercooler3819 18-02-09 20:16

אין כאן שום בעיה..
לא הבנתי איזה לולאות אתה מדבר עליהם בכלל

הפורמט הרגיל של קרון הוא הרצה באינטרוול קבוע.. לדוגמא
0 0 0 &#37;5 0 0

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

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

קרון טאב כמו שהוא מיושם בלינוקס מאוד קל להלביש על אתר..-


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

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