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

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

dor77 13-10-08 13:33

מערכת נהיול תוכן על בסיס קבצי txt.
 
שלום.
אני רוצה לבנות אתר מדריכים קטן לנושא ספציפי וקטן, משהו שיכול לעזור להמון אנשים.
אני לא צריך שום דבר מיוחד.
ניסיתי ללמוד קצת SQL וירדתי מזה, נהיה לי קשה מדי, חלצערי המדריכים בעברית על הפנים, מתחילים איתך ישר עם תוכנות במקום להסביר צעד צעד.
בכל אופן, ישנן המון מערכות לניהול תוכן כמו 19pages ועוד רבות, שלא פעולות עם מסדי נתונים, אלא קבצים.
זה נשמע משהו ידידותי יותר ונוח יותר.
אשמח לשמוע קצת על ההפשרות זהו, יתרונות, חסרונות (במיוחד חסרונות) ואם אשר מדריך קצרצר אני אשמח.
PHP למדתי עד אמצע הדרך ואני יודע לקרוא את רוב הקודים ברמה הבסיסית - בינונית (אין סיבה לפחד מזה).

אז..תודה רבה לעוזרים וחג שמח לכולם!

pirsomet 14-10-08 02:41

אני לא חושב שתהיה יותר קל להבין עבודה של קבצים. להבין אולי יותר קל אבל לבנות מערכות ולשמור מידע בקבצים...
לגבי חסרונות:
1.בעזרת SQL אפשר בקלות לבצעה המון דברים שאותם, במקרה של עבודה עם קבצים, תצטרך לממש בעצמך.
2. בגלל שאתה צריך לחשוב בעצמך על דרכים לעיבוד נתונים מקבצים, יש גם יותר סיכוי שתעשה משהו שיעבוד אטי וייקח הרבה משאבים של שרת.
3.PHP לא נועד לעיבוד של כמויות גדולות של נתונים. כשה אתה משתמש במסדי נתונים ,כמו MYSQL , העיבוד מתבצע שם בצד של שרת של מסד נתונים וPHP מקבל רק תוצאות. במקרה של מסדי נתונים עבודה עם PHP זה בסדר אבל אם אתה עובד ישירות עם כמויות גדולות של נתונים, שנמצאים בקבצים, במקרה זה PHP היא לא השפה המתאימה ביותר בשביל זה. יש שפות כמו AWK,PERL שיותר מתאימות לזה אבל לא PHP...

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

קוד:


<?php
$array1['key1']='value1';
$array1['key2']='value2';

$array1=serialize($array1);
//save the data

$file=file_put_contents('file.dat',$array1);

//now read the data

$array2=file_get_contents('file.dat');
$array2=unserialize($array2);

foreach($array2 as $key=>$value)
{
echo "$key - $value";
}

?>

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

אם לא הבנת משהו בקוד זה - תשאל ואני אפרט.

daMn 14-10-08 04:33

תרד מהקטע הזה ותחזור לSQL, זה לא מסובך כמו שאתה חושב, הפעולות הבסיסיות של שליפה/הוספה/עידכון/מחיקה באמת פשוטות, תלמד קצת על phpMyAdmin, קצת על שאילתות SQL ואיך מבצעים אותם בעזרת PHP, זה יחסוך לך הרבה כאבי ראש וגם תלמד לעבוד נכון.
תתחיל מפה: http://www.learnphp.co.il/19.guide

xoox 14-10-08 06:44

ציטוט:

נכתב במקור על ידי dor77 (פרסם 672935)
שלום.
אני רוצה לבנות אתר מדריכים קטן לנושא ספציפי וקטן, משהו שיכול לעזור להמון אנשים.
אני לא צריך שום דבר מיוחד.
ניסיתי ללמוד קצת SQL וירדתי מזה, נהיה לי קשה מדי, חלצערי המדריכים בעברית על הפנים, מתחילים איתך ישר עם תוכנות במקום להסביר צעד צעד.
בכל אופן, ישנן המון מערכות לניהול תוכן כמו 19pages ועוד רבות, שלא פעולות עם מסדי נתונים, אלא קבצים.
זה נשמע משהו ידידותי יותר ונוח יותר.
אשמח לשמוע קצת על ההפשרות זהו, יתרונות, חסרונות (במיוחד חסרונות) ואם אשר מדריך קצרצר אני אשמח.
PHP למדתי עד אמצע הדרך ואני יודע לקרוא את רוב הקודים ברמה הבסיסית - בינונית (אין סיבה לפחד מזה).

אז..תודה רבה לעוזרים וחג שמח לכולם!


מניסיון אני אומר לך...
TXT לא בריא לאתרים עם תוכן רב מהסיבות הבאות:

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

2. במידה ויש לך המון נתונים שם בקובץ TXT אז תחשוב שכל פעם שאתה תריך את הסקריפט אז השרת מריץ את כל הקובץ וזה לוקח המון משאבים, בוא אני יביא לך דוגמא לזה
היה לי פעם מועדון ICQ על משתמשים שם, כ3500 רשומים בתוך הקובץ TXT, הקובץ שקל כ-800K עכשיו מה קורה? כל פעם שסםתם המועדון היה נטען אז השרת צריך לפתוח את הקובץ, לקורא ולכתוב במידה ויש שינויים
בזממנו ההיתי מאוחסן באיחסון של חברה לא משנה מה שמה, כל הזמן היו מתלוננים שאני תופס משאבים על השרת.
יום אחד קיבלתי קריזה ובניתי א תהסקריפט מחדש, ואת את כל הנתונים המרתי לMYSQL, איזה שינוי מדהים, ומהירות חבל"ז עבד פגז!!!

3. במידה ויהיה לך שם איזה שגיאה לך תחפש את הבעייה אחרי זה בתוך קובץ TXT, תצתרך לעלות אותו ולהוריד אותו לערוך ועממעעייייטטטט!

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

5. זה דבר מאוד מאוד מיושן.

dor77 14-10-08 10:14

קודם כל תודה.
אני יודע שזה קל אבל אם יש לך מדריך טוב.
אני יתן לכם דוגמא, אני מנסה ללמוד מפה:
http://www.webmaster.org.il/article.asp?id=269
הוא יוצר שם טלבה עם תוכנה מסויימת.
מה? מי? מתי? איך? למה? כמה?
למה צריך את התוכנה?
מאיפה אני מוריד אותה, מה היא עושה?
למה זה מופיע רק במדריך הזה, ובמדריך של learnphp לא מוזכרת התוכנה הזו?
אם אני יצליח להתחבר למסד, שהמנהל יוסיף 2 דברים כמו:
כותרת:
נושא:

וזה יתווסף, אני הבנתי ומשם השמיים הם הגבול.
אבל זה מתחיל שם ממסובך מאוד ולא הבנתי כבר מההתחלה.
PHP למדתי את האמצע, לא הפסקתי כי נשברתי, באמת שלא, זה די סבבה, אני ממשיך בימים האחרונים, לא שפה קשה במיוחד.
אני רואה ש sql היא קלה יותר, כי אין פה הרבה אפשרויות, התחברות, הוספה, מחיקה, עריכה ועוד כמה דברים בסיסיים.
עוד משהו שלא הבנתי, סוגי השדות, לא הבנתי אם יש שדה רק למספרים, אותיות, פשוט כתוב שם "מוגבל עד 255 תווים".
זה לא מההתחלה, בכלל לא.
חוץ מזה שרק המדריך הזה דיבר על עבודה עם תוכנה.
אני בטוח,במיליון אחוז (ותתקנואותי אם אני טועה) שאם אני אוכל ליצור מערכת פשוטה כמו שהזכרתי למעלה, "כותרת" "נושא" אני אוכל לבנות גם מערכת ניהול תוכן פשוטה מאוד, אני לא מדבר על לבנות ג'ומלה, משהו פשוט כדי שיהיה לי קל יותר להכניס תוכן לאתרים שלי.

תודה.

DorOaki 14-10-08 10:36

התוכנה MS Access זה בעצם כמו MySQL של PHP, אתה לא צריך להתקין את התוכנה הזאת אלא אם כן אתה רוצה לעבוד עם השפה ASP.

dor77 14-10-08 10:45

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

Jerba 14-10-08 11:11

ציטוט:

נכתב במקור על ידי dor77 (פרסם 673209)
אהה..
אז המדריך הזה לא עוזר לי.
אני עובד עם php, עוד שמהו שלא מובן וזה עיקר הבעיה היא שלא מסבירים איפה יוצרים טבלאות ואיך, כבר עברתי על אלף מדריכים וכולם מסבירים רק את הפקודות, בלי התאכלס, בלי לבנות את הטבלה.

לבנות את הטבלה זאת הבעייה שלך?

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

ליצור טבלה עזובתך בנתיים , תעשה ידני בSQL (למרות שיש שאילתות לזה). כדי לגשת לSQL
אמור להיות לך דף בשם PHPMYADMIN שזה הקישור שלך למסד נתונים..
בכל מסד יש טבלאות וזהו בערך..אתה יכול לפתוח מסדים ותוך המסדים לפתוח טבלאות..
אם זאת הבעייה שלך אז זה הקטע הקל חחח..

dor77 14-10-08 11:49

למדתי מהמדריך של סיגל sql עד פרק ג'.
אני חושב שזה מספיק כדי לנסות טבלה אחת.

בדף הראשון, פה:
http://www.sigall.co.il/sql/sql1.asp
היא בנתה טבלה עם שם, מספר טלפון, תאריך לידה.

זה הקוד:


PHP קוד:



CREATE TABLE 
class 
(
name char(25) ,phone char(10) ,birth date); 


כעת, לפני שאוכל לעבוד עם SELECT ועוד פונקציות, אני צריך ליצור טבלה כזו.
שמה היא מתייחסת ל asp ואני עובד עם php, כלומר phpmyadmin.
יש לי שרת wamp5 על המחשב.
איך אני פותח טבלה חדשה ומכניס לשם את הנותנים הבאים למשל, כמו שהיה נתנה במדריך:


PHP קוד:



INSERT INTO 
class 
(
name,phone,birth)
VALUES ('Shimon','03-4224097','13/07/1975');



INSERT INTO class 
(
name,phone,birth)
VALUES ('Pnina','03-7170985','15/05/1975');



INSERT INTO class 
(
name,phone,birth)
VALUES ('Dalia','03-2334455','01/12/1974'); 



מישהו יכול לעזור לי לבנות את הקובץ שכולל את הנתונים למעלה + ההתחברות למסד?
לפי המ שלמדתי זה הקוד להתחברות:


PHP קוד:



<?
$mysql_link 
mysql_connect ('localhost','שם משתמש למסד','סיסמה')
//התחברות למסד
or die ("שגיאה בהתחברות למסד");
mysql_select_db ("שם המסד",$mysql_link)
//בחירת מסד
or die ("שגיאה בבחירת מסד")
?>


כאשר הפרטים של השרת wamp הם כאלו:

localhost
שם משתמש: root
סיסמא: '' (ריק)
שם המסד: wb

אני צודק עד כאן? (בטח יצא למישהו פה לעבוד עם wamp)

אז הנה הקוד של ההתחברות:


PHP קוד:


<?
$mysql_link 
mysql_connect ('localhost','root','')
//התחברות למסד
or die ("שגיאה בהתחברות למסד");
mysql_select_db ("wb",$mysql_link)
//בחירת מסד
or die ("שגיאה בבחירת מסד")
?>



אז, מה הלאה?
איך אני יוצר טבלה ומכניס לשם את הערכים שקבעתי?
ניסיון שלי:


PHP קוד:



<?
$mysql_link 
mysql_connect ('localhost','root','')
//התחברות למסד
or die ("שגיאה בהתחברות למסד");
mysql_select_db ("wb",$mysql_link)
//בחירת מסד
or die ("שגיאה בבחירת מסד")
?>


INSERT INTO class 
(name,phone,birth)
VALUES ('Shimon','03-4224097','13/07/1975');



INSERT INTO class 
(name,phone,birth)
VALUES ('Pnina','03-7170985','15/05/1975');



INSERT INTO class 
(name,phone,birth)
VALUES ('Dalia','03-2334455','01/12/1974');


די בטוח שזה לא נכון.

עזרה?

תודה ;)

xoox 14-10-08 15:21

PHP קוד:

<?
mysql_query
("INSERT INTO class VALUES ('Dalia','03-2334455','01/12/1974');");
?>


dor77 14-10-08 15:43

xoox, תודה על העזרה שלך.
אני אנסה להרכיב את הקוד מחדש, כמו שאמרת:

PHP קוד:


<? 
$mysql_link 
mysql_connect ('localhost','root',''
//התחברות למסד 
or die ("שגיאה בהתחברות למסד"); 
mysql_select_db ("wb",$mysql_link
//בחירת מסד 
or die ("שגיאה בבחירת מסד"
?> 


<? 
mysql_query
("INSERT INTO class VALUES ('Dalia','03-2334455','01/12/1974');"); 
?>

<? 
mysql_query
("INSERT INTO class VALUES ('Pnina','03-7170985','15/05/1975');"); 
?>

<? 
mysql_query
("INSERT INTO class VALUES ('Shimon','03-4224097','13/07/1975');"); 
?>

הגיוני?

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

תודה לכולם, תבינו שזה קשה לי.

תודה.

xoox 14-10-08 15:46

תוריד את כל ה כניסות ל PHP

PHP קוד:

<?  
$mysql_link 
mysql_connect ('localhost','root','')  
//התחברות למסד  
or die ("שגיאה בהתחברות למסד");  
mysql_select_db ("wb",$mysql_link)  
//בחירת מסד  
or die ("שגיאה בבחירת מסד")  

mysql_query("INSERT INTO class VALUES ('Dalia','03-2334455','01/12/1974');");  
mysql_query("INSERT INTO class VALUES ('Pnina','03-7170985','15/05/1975');");   
mysql_query("INSERT INTO class VALUES ('Shimon','03-4224097','13/07/1975');");  
?>

המשמעות של הקוד הנ"ל אומר, שכל פעם שתריץ את הסקריפט הזה אז הוא יוסיף לך לטבלה 3 שורות עם נתונים חדשים

dor77 14-10-08 16:03

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

אני (האדמין, או כל משתמש) יכתוב שם, זה יכנס למסד, ואז דף אחר ישלוף את הנתונים.
נגיד, והכנסתי בטופס:

שם: דור
טקסט: בלה בלה בלה בלה בלה בלה

יוצא:

שם: דור

בלה בלה בלה בלה בלה בלה

---

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

תודה.

E&T 14-10-08 16:23

אחי, אתה צריך ללמוד. זה לוקח זמן, אבל אם אתה רוצה לבנות משהו טוב, תצטרך ללמוד הרבה..
יום טוב.

dor77 14-10-08 16:35

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

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

Jerba 14-10-08 16:56

אנלא רואה שגיאה בקוד שלך ..תריץ ותבדוק מה הוא אומר לך..אם יש שגיאה תביא לפה נטפל :)

dor77 14-10-08 17:22

jerba
הבעיה היא שאני לא יודע איך להפעיל את הקוד.
נכנסתי ל phpmyadmin דרך שרת, לא דרך wamp.
אני רוצה ליצור את מה שאמרתי למעלה.
אני מתחיל עם דבר הכי פשוט.
שיהיה שדה אחד שיקלוט שם, יכניס למסד ויציג אותו.
הגעתי לחלון ששואל את שם הבלה ומספר שדות.
קראתי לה name ושדה אחד.
עכדיו הגעתי למסך שמבקש ממנסה למלאות דברים כמו:
שדה, סוג, אורך, Collation, תכונות, NULL, ועוד כמה.
בשדה רשמתי name בסוג בחרתי char ובאורך כתבתי 12..עד 12 תווים יכול להכיל שם אחד.
ב Collation כבר נתקעתי..

Jerba 14-10-08 18:15

יו אתה לא מבין , כתבתי לך פוסט עם תמונות והכל ופתאום ששלחתי DATABASE ERROR בפורום :S

כעיקרון נכנסת לPHPMYAMDIN , יותר טבלה חדשה כמו בתמונה:

http://up23.siz.co.il/up2/nhjjdynjhzzt.jpg

יצרת בעצם טבלה של 3 עמודות בשם USERS.
אחר כך זה נכנס לדף הבא: http://up12.siz.co.il/up2/2e0aztmovndi.jpg

קיצר תעשה לפי התמונה,
ID= מספר סידורי לכל רשומה בטבלה (לא חובה ,אבל רצוי) שים בצד כמפתח ראשי ותקבע את הAUTOמשו חח זה בעצם קובע
שכל פעם שתכניס רשומה הID יקבע לפי סדר עולה..הרשומה הראשונה תיהיה 1, השנייה 2 וכך הלאה..

תעשה שמור למטה והופ, יצרת טבלה :D

עכשיו להפעיל שאילתה על הטבלה זה ממש פשוט , פתח דף PHP חדש..ותכתוב משו כזה (לא נבדק):.

PHP קוד:

<html>
<head><title>example </title>
</head>
<body>

<form name="reg" method="post">

username
<input type="text" name="username">
<br>
password
<input type="password" name="pass">

<br><BR>
<input type="submit" name="cmd" value="reg">

</form>

<?
if($_POST['cmd'])
{
    
//לא לשכוח לשים את החיבור למסד שלך
    //אם לחצו על הכפתור
    
$username $_POST['username'];
    
$password$_POST['pass'];
    
mysql_query("INSERT INTO users (username,password) VALUES ($username,$password)");
}
?>
</body>
</html>


dor77 14-10-08 18:20

ציטוט:

נכתב במקור על ידי Jerba (פרסם 673300)
יו אתה לא מבין , כתבתי לך פוסט עם תמונות והכל ופתאום ששלחתי DATABASE ERROR בפורום :S


מה..?
לא..זה לא קורה..
אולי תעשה ctrl+z?

לא נועדתי לדעת sql חחחחחח

תודה רבה לך על הרצון, תודה.

Jerba 14-10-08 18:28

ציטוט:

נכתב במקור על ידי dor77 (פרסם 673302)
מה..?
לא..זה לא קורה..
אולי תעשה ctrl+z?

לא נועדתי לדעת sql חחחחחח

תודה רבה לך על הרצון, תודה.

שחזרתי את הרוב חח תסתכל

dor77 14-10-08 18:34

תודה :))
זה נראה מעולה, מקווה שיעבוד.
את החיבור הוספתי, לא בטוח שהוספתי נכון בחלק הנכון של הקוד.
ניסיון:

PHP קוד:



<html>
<head><title>example </title>
</head>
<body>

<form name="reg" method="post">

username
<input type="text" name="username">
<br>
password
<input type="password" name="pass">

<br><BR>
<input type="submit" name="cmd" value="reg">

</form>

<?

mysql_connect
("DBHOST""user""Pass");
mysql_select_db("DBname");

if(
$_POST['cmd'])
{
    
//לא לשכוח לשים את החיבור למסד שלך
    //אם לחצו על הכפתור
    
$username $_POST['username'];
    
$password$_POST['pass'];
    
mysql_query("INSERT INTO users (username,password) VALUES ($username,$password)");
}
?>
</body>
</html>

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


עריכה:

עשיתי לפי הקוד שכתבתי..התחברתי..
הנה:
http://fixst.awardspace.com/abc.php
אני ממלא שם משתמש וסיסמא..לא קרוה דבר..
זה בסדר?
איפה הנתונים שהתקבלו מהמשתמש?
בניתי את הבטלה.

Jerba 14-10-08 18:56

בכיף :)


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

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