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

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

Tyler 18-08-13 20:07

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

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

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

אז לדוגמא אם הקוד שלי היה:

קוד:

<br><br><tr><td><font face="verdana">שם פרטי </font></td><td><br><input type="password" name="fname"></td></tr>
<br><br><tr><td><font face="verdana">סיסמא</font></td><td><br><input type="password" name="pass"></td></tr>
<br><br><tr><td><font face="verdana"> אימות סיסמא </font></td><br><td><input type="password" name="repass"></td></tr>
<br><br><tr><td><font face="verdana"> מייל </font></td><td><br><input type="text" name="email"></td></tr>

אז פשוט הוספתי 2 שדות בדרך הכי בסיסית, פשוט הוספתי את השורות הבאות

קוד:


<br><br><tr><td><font face="verdana">שם משפחה</font></td><td><br><input type="password" name="lname"></td></tr>,
<br><br><tr><td><font face="verdana">שם משתמש</font></td><td><br><input type="password" name="username"></td></tr>

עד כאן הכל מאוד בסיסי הכל פשוט.

לאחר מכן הוספתי את התנאים לשדות החדשים שהוספתי,

קוד:

$select = mysql_query("SELECT * FROM `users` WHERE username='$username'");


$cu = mysql_fetch_array($select);


$select3 = mysql_query("SELECT * FROM `admins` WHERE username='$username'");


$cu3 = mysql_fetch_array($select3);

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


קוד:

if(empty($cu) AND empty($cu) AND $password == $repassword)
{
if (strlen($username) < 4 OR strlen($username) > 20)
{
echo "<font color='red' font face='arial'><b>";
echo "שגיאה - שם המשתמש שבחרת קצר או ארוך מידי מהנדרש.";
echo "</b></font>";
echo "<br><br>";

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

הוספתי כמובן את כל תנאי ההצבה מההתחלה

קוד:



$username = $_POST['username'];
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$password = $_POST['pass'];
$repassword = $_POST['repass'];
$email = $_POST['email'];
$date = date('Y-m-d');

לאחר מכן הוספתי לשורת ההצבה במסד את השדות החדשים שהוספתי
קוד:

$insert = mysql_query("INSERT INTO `users` VALUES ('', '$username', '$fname', '$lname', '$pass','$email','0','','$date','0')");
לאחר מכן שיניתי את יצירת העוגיה COOKIE עבור המשתמש, שעד עכשיו הייתה בעזרת הfname אך עכשיו כשאני רוצה שכל המשתמשים יתנהלו בעזרת הUSERNAME שיניתי את השורה הבאה
קוד:

setcookie('USER',$username);
, כרגע המשתנה הוא $USERNAME ולפני זה הוא היה $FNAME.

וזהו בסה"כ.

זאת ההרשמה החדשה שיצרתי, הוספתי רק עוד 2 שדות. אמנם 2 שדות חשובים, לפחות אחד מהם (username), אך חשבתי שהכל יעבור חלק כי זה באמת מאוד פשוט כל התהליך הזה. בסיסי ומאוד קל.
הוספתי במסד שלי את עמודת הusername גם בטבלת הUSERS וגם בטבלת הADMINS, הגדרתי אותה בדיוק כמו שהייתה מוגדרת עמודת הFNAME (שבעזרתה התנהלו כל המשתמשים) כלומר:


# Name Type Collation Attributes Null Default Extra Action
2 username text latin1_spanish_ci Yes NULL




וזהו בסהכ.

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

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

Jonathan Zeierman 19-08-13 08:02

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

if (isset($_POST['send_login']))
{




Tyler 19-08-13 21:10

ציטוט:

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

if (isset($_POST['send_login']))
{




למה לא ניתן לערוך הודעות בפורום? לדוגמא אם אני רוצה לערוך את ההודעה הראשונה של עצמי למה האפשרות לא מופיעה?

trupix 21-08-13 03:58

ציטוט:

נכתב במקור על ידי Tyler (פרסם 880998)
למה לא ניתן לערוך הודעות בפורום? לדוגמא אם אני רוצה לערוך את ההודעה הראשונה של עצמי למה האפשרות לא מופיעה?

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


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

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