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

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

XxXYonIXxX 28-09-08 15:50

[עזרה] ביצירת קובץ הרשמה
 
שלום!
אני מסה לבנות הרשמת משתמשים ורציתי לדעת, שכאשר שדה אחד לא מולא/מולא כראוי.
אז השם של השדה עצמו ישנה צבע.
לדוגמה.

אם מישהו שלח את הטופס, ולא הכניס את שם המשתמש.
אז ה"שם משתמש" יהפוך ל"שם משתמש".
או שאם המשתמש הכניס כתובת מייל, אך לא תקינה.
אז ה"דוא"ל" יהפוך ל"דוא"ל"(הטקסט בצבע כחול ולא אדום מכיוון שהשדה מולא, אך רק לא כראוי).
וליד השדה יופיע אייקון של "?" (ראו דוגמה: http://www.zero-f.co.il/images/qm.png), וכאשר סמן העבר עובר על ה"?"(onMouseover) נפתח חלון(שנעלם בעת הזזת סמן העכבר מאיקון ה"?") המסביר אודות השגיאה המוצגת.

זהו קובץ ההרשמה:
PHP קוד:

<?php 
include("language/he/lang_main.php");
require(
"includes/config.php"); 
if(isset(
$_POST['send'])){
$username htmlspecialchars($_POST['user']);
$username1 = isset($_POST['user']) ? $_POST['user'] : "";
$name1 = isset($_POST['name']) ? $_POST['name'] : "";
$email1 = isset($_POST['email']) ? $_POST['email'] : "";
$password htmlspecialchars($_POST['password']);
$name htmlspecialchars($_POST['name']);
$email htmlspecialchars($_POST['email']);
$joindate date ("j/n/Y" ,time());
$date $_POST['day']." / ".$_POST['month']." / ".$_POST['year'];
$err 0;
$empty=L_EMPTY_INPUT;
$repass 1;
$goodemail 1;
$usernameuse =1;
$maxus 1;
if(
$username == "") {
$empty=$empty.L_EMPTY_USERNAME$err++;
echo 
"&nbsp;";
}
if(
$password == "") {
$empty=$empty.L_EMPTY_PASSWORD$err++;
}
if(
$name == "") {
$empty=$empty.L_EMPTY_FULLNAME$err++;
}
if(
$email == "") {
$empty=$empty.L_EMPTY_EMAIL$err++;
}
if(
$password != $_POST['conf']) {
$repass 2;
}
if(
strpos($email'@') === FALSE) {
$goodemail 2;
}
if(
mysql_num_rows($q1) > 0) {
$usernameuse 2;
}
if(
strlen(trim($username)) > ) {
$maxus 2;
}
if(
strlen(trim($username)) < ) {
$maxus 3;
}
if(
$err || $repass == || $goodemail == || $usernameuse == || $maxus == 2) {
echo 
L_ERROR_MSG;
if(
$err 0) {
echo 
"<br />";
echo 
$empty.'.';
}
else {
if(
$repass == 2) {
echo 
"<br />";
echo 
L_NO_MATCH_PASSWORD;
}
if(
$goodemail == 2) {
echo 
"<br />";
echo 
L_NO_EMAIL;
}
if(
$usernameuse == 2) {
echo 
"<br />";
echo 
L_USERNAME_IN_USE;
}
if(
$maxus!=1) {
if(
$maxus==2)$val=L_LONG;
if(
$maxus==3)$val=L_NO_LONG;
echo 
"<br />";
echo 
L_WRONG_USER .$valL_WRONG_USER_1;
}
}
}
else {
mysql_query("insert into `users` (`user`, `password` ,`joindate`, `name` , `email`, `gender`, `birthday`) values ('$username', '".md5($_POST['password'])."', 'joindate', '$name', '$email', '$_POST[radio1]', '$date')") or die('L_ERROR_CONNECTING_SQL');
echo 
L_GOOD;
}
}
?> 

<html dir="rtl">
<head>
<link rel="stylesheet" type="text/css" href="style/css/register.css"
<META http-equiv="content-type" content="text/html; charset=windows-1255">
<title>הרשמה</title>
</head>
<body dir="rtl">
<form id="frm" name="frm" method="post">
<table style="background-color: #e5e5e5" cellspacing="1" cellpadding="2" class="register">
 <tbody>
    <tr bgcolor="white">
    <td>
 שם משתמש
 </td> 
    <td><?php
echo "<input type='text' name='user' size='19' value='"$username1"'>";
?>
 </td></tr>
 
 <tr bgcolor="white">
    <td>
 סיסמה
 </td> 
    <td><input type="password" name="password" size="19">
 </td></tr>
 
    <tr bgcolor="white">
    <td>
 חזור שנית על הסיסמה
 </td> 
    <td><input type="password" name="conf" size="19">
 </td></tr>
 
 
 <tr bgcolor="white">
    <td>
 שם מלא
 </td> 
    <td><?php
echo "<input type='text' name='name' size='19' value='"$name1"'>";
?>
 </td></tr>
 <tr bgcolor="white">
    <td>
 דוא"ל
 </td>
    <td><?php
echo "<input dir='ltr' type='text' name='email' size='19' value='"$email1"'>";
?>
 </td></tr>
 <tr bgcolor="white">
    <td>
 מין
 </td>
    <td>
 זכר<input value="זכר" type="radio" name="radio1" checked>  
    נקבה<input value="נקבה" type="radio" name="radio1"> 
 </td></tr>
 
 <tr bgcolor="white">
    <td>
 תאריך לידה
 </td>
    <td>
<select name=day>
    <option value="1">1</option>  
    <option value="2">2</option>  
    <option value="3">3</option>  
    <option value="4">4</option>  
    <option value="5">5</option>  
    <option value="6">6</option>  
    <option value="7">7</option>  
    <option value="8">8</option>  
    <option value="9">9</option>  
    <option value="10">10</option>  
    <option value="11">11</option>  
    <option value="12">12</option>  
    <option value="13">13</option>  
    <option value="14">14</option>  
    <option value="15">15</option>  
    <option value="16">16</option>  
    <option value="17">17</option>  
    <option value="18">18</option>  
    <option value="19">19</option>  
    <option value="20">20</option>  
    <option value="21">21</option>  
    <option value="22">22</option>  
    <option value="23">23</option>  
    <option value="24">24</option>  
    <option value="25">25</option>  
    <option value="26">26</option>  
    <option value="27">27</option>  
    <option value="28">28</option>  
    <option value="29">29</option>  
    <option value="30">30</option>  
    <option value="31">31</option>    
</select>
<select name=month>  
    <option value="1">1</option>  
    <option value="2">2</option>  
    <option value="3">3</option>  
    <option value="4">4</option>  
    <option value="5">5</option>  
    <option value="6">6</option>  
    <option value="7">7</option>  
    <option value="8">8</option>  
    <option value="9">9</option>  
    <option value="10">10</option>  
    <option value="11">11</option>  
    <option value="12">12</option>  
</select>
<select name=year>  
    <option value="1990">1990</option>  
    <option value="1991">1991</option>  
    <option value="1992">1992</option>  
    <option value="1993">1993</option>  
    <option value="1994">1994</option>  
    <option value="1995">1995</option>  
    <option value="1996">1996</option>  
    <option value="1997">1997</option>  
    <option value="1998">1998</option>  
    <option value="1999">1999</option>  
    <option value="2000">2000</option>  
    <option value="2001">2001</option>  
    <option value="2002">2002</option>  
    <option value="2003">2003</option>  
    <option value="2004">2004</option>  
    <option value="2005">2005</option>  
    <option value="2006">2006</option>  
    <option value="2007">2007</option>  
    <option value="2008">2008</option>  

</select>
 </td></tr>
 
 <br />
    <tr bgcolor="white">
      <td align="middle" colSpan="2">
     <input style="font-size: 12px; font-family: arial" type="submit" value="הירשם" id="submit" name="send">
        <input style="font-size: 12px; font-family: arial" type="reset" value="אפס" id="reset">
 </td></tr></tbody></table>
 </form>
 
 </body>
 </html>

אני אשמח אם תוכלו לעזור לי לפחות במשהו אחד בכל העניין =]
שנה טובה.

intercooler3819 28-09-08 16:20

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

תשפצו אותו!!

דרך אגב יש אנשים שאומרים שהסקיל הכי טוב של מתכנת היא שהוא יודע ללמוד לבד

XxXYonIXxX 28-09-08 16:34

ציטוט:

נכתב במקור על ידי nitsanbn (פרסם 669905)
מה שאתה אומר כרגע משתמע בהקצנה כך:
מה נישמע?
זה הקוד שלי:

תשפצו אותו!!

דרך אגב יש אנשים שאומרים שהסקיל הכי טוב של מתכנת היא שהוא יודע ללמוד לבד

אתה צודק.
אבל אין לי קצה חוט :S
אני חושב שזה בJS, אבל לא בטוח.

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

intercooler3819 29-09-08 01:31

google the next phrases:
js ajax auto completion
js
ajax
jquery ajax
mootools ajax
dojo ajax
prototype ajax
sqrout ajax

have fun

btw - the last post before this one was written and posted from my mobile ;) opera mini works great!

mayden 29-09-08 10:58

ציטוט:

נכתב במקור על ידי nitsanbn (פרסם 670000)
google the next phrases:
js ajax auto completion
js
ajax
jquery ajax
mootools ajax
dojo ajax
prototype ajax
sqrout ajax

have fun

btw - the last post before this one was written and posted from my mobile ;) opera mini works great!

איך AUTO COMPLETE עוזר לזה?

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

לדעתי אתה צריך לשחק עם ה:
PHP קוד:

document.getElementById('user_name').style.color 'red'


DvirCohen 29-09-08 11:14

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

intercooler3819 29-09-08 19:54

למה בONSUBMIT כשקיים הEVENT ONKEYUP? (בעת שחרור לחצן)

DvirCohen 30-09-08 08:37

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

yard2010 30-09-08 20:04

שמע, ממה שנראה עשית בדיקת נתונים עם PHP על השרת.
עכשיו מה שצריך, זה לעשות בדיקת נתונים עם JS, מה שלא מצריך מעבר דף והדפסת כל הטופס מחדש, וחוסך את חוסר היעילות. Google it.

למה צריך גם אימות ב-PHP אתה שואל? כי אולי ה-JS כבוי? אולי אין JS? לא לוקחים כזה סיכון.


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

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