שלח תשובה

זירת השאלות

547
צפיות
10
תשובות

בעיה

,‏ 30 ביולי, 2009

יש לי בעיה במערכת משתמשים שבניתי בPHP..
סיימתי את מערכת הניהול והכל עובד מצויין.. והתחלתי לבנות את דף ההתחברות..
כשאני מכניס שם משתמש וסיסמא שהוכנסו למסד נתונים דרך טופס שמופיע באתר שלי הוא לא מזהה אותם בהרשמה..
וכשאני מכניס שם משתמש וסיסמא שהוכנסו ידנית (דרך MYPHPADMIN) הוא מזהה ונותן לי להתחבר..
האם קיים הבדל בין נתונים שנכנסו דרך המסד לבין כאלה שנכנסו מטופס?
חשוב לציין שדרך MYPHPADMIN הכל נראה אותו דבר..

תגיות:

10 תשובות

  1. BuildHome הגיב:

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


    "החיים הם רק הדרך במסע הנפש", בילד 2004-2008 <img src='/images/6.gif'>
    http://Www.Torec.Net &nbsp;* http://Www.Torec.In

  2. sbchen8 הגיב:

    עשיתי את זה..
    אפילו בדקתי את הקידוד של הדפים ושניתי את כולם לLTR
    כלום לא עוזר..

  3. באיזה קידוד אתה עובד?
    האם הגדרת את אותו הקידוד גם בצד שרת וגם ב-html?


    אלי ענתבי

  4. sbchen8 הגיב:

    utf-8
    כל האתר עובד על הקידוד הזה..
    וכשאני מסתכל במסד נתונים הכל נראה טוב – העיברית מוצגת אין ג'יבריש או משהו כזה..
    ושני השדות שאני צריך מוצגים נכון.. גם כשאני שולף אותם מהמסד באותו דף.. משום מה הוא לא מסכים להשוות אותם לנתונים שאני מכניס..
    עוד משהו מוזר.. כשמישהו נרשם לאתר המערכת בודקת אם קיים יוזר מייל כלומר ישנה השוואה והוא מצליח להשוות בין טקסט שנכנס לבין רשומה קיימת..

  5. BuildHome הגיב:

    מה הקוד של העמוד הלא תקין הזה בדיוק?


    "החיים הם רק הדרך במסע הנפש", בילד 2004-2008 <img src='/images/6.gif'>
    http://Www.Torec.Net &nbsp;* http://Www.Torec.In

  6. sbchen8 הגיב:

    הקוד
    <?PHP
    require '../functions/connection.php'; <– חיבור למסד $link
    mysql_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
    $sqlquery="SELECT * FROM users";
    $theresult=mysql_query($sqlquery,$link);
    if (isset ($_POST['user']) && isset ($_POST['pass'])){
    $user = $_POST['user'];
    $pass = $_POST['pass'];
    }
    else
    {
    echo "לא נכנסו פרטים";
    }

    if (isset ($user) && isset ($pass)){
    $query = "SELECT * FROM users WHERE username = '$user' && password = '$pass'";
    $q = mysql_query($query,$dblink);
    if (!mysql_num_rows($q) == 0) {
    echo "התחברת בהצלחה";
    } else { echo "לא קיים "; }
    }   ?>

  7. BuildHome הגיב:

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


    "החיים הם רק הדרך במסע הנפש", בילד 2004-2008 <img src='/images/6.gif'>
    http://Www.Torec.Net &nbsp;* http://Www.Torec.In

  8. sbchen8 הגיב:

    הקוד הוא של הדף שמקבל את הפרטים
    אז דבר ראשון תודה על הסבלנות..
    דבר שני אני לא חושב שיש בעיה קוד עצמו.. כשאני מכניס נתונים ידנית למסד – כלומר דרך MYPHPADMIN הנתונים עוברים את הבדיקה.. גם עם ה&&, ככה שהבעיה היא כנראה או בהכנסה של הנתונים או באיפיון של המסד..
    הנתונים הוגדרו כ-  varchar. אני לא חושב שזאת הבעיה.. אולי אני טועה.. (?)
    הדף שקולט את הטופס הוא:

    <?PHP require 'functions/connection.php'; ?>
    <html dir="LTR">
    <head>
    <meta http-equiv="Content-Language" content="he">
    <link href="style.css" type="text/css"rel="stylesheet">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
    <title>רישום – בוצע</title>
    </head> <?php
           $form= 'full';
    if(!$_POST)  {
      echo "לא נתקבל מידע, להרשמה לחץ <A href=register.php>כאן</a>";
      $fo=0;
      $form=’empty';
    }
    else
    {
    if ($_POST['user'] == " || $_POST['pass'] == " || $_POST[’email'] == " || $_POST['addres'] == " ||     $_POST    ['city'] == " || $_POST['name']== " || $_POST['lname']== ") {
         $form=’empty';
         $fo=0;
         echo "בעיה במידע<BR>";
         }
    else
         {
                     $user=$_POST['user'];
                     $pass=$_POST['pass'];
                     $email=$_POST[’email'];
                     $cellphone=$_POST['cellphone'];
                     $addres=$_POST['addres'];
                     $city=$_POST['city'];
                     $name=$_POST['name'];
                     $lname=$_POST['lname'];
                     $emplu=$_POST[’emplu'];
                     $se_mail=$_POST['se_mail'];
                     $date= date("yhj");
        }
            }
    ?>

    <body>
    <?php
    if ($form == ’empty') {
    echo "אם אתה מחפש את דף ההרשמה לחץ <a href=register.php>כאן</a> ";
    }
    else
    {
       $query = "SELECT id FROM users WHERE username = '$user'";
                $q = mysql_query($query,$link);
       $query2 = "SELECT id FROM users WHERE email = '$email'";
                $q2 = mysql_query($query2,$link);
       $query3 = "SELECT id FROM users WHERE cellphone = '$cellphone'";
                $q3 = mysql_query($query3,$link);

    if (!mysql_num_rows($q) == 0) {
        echo "ההרשמה נכ

  9. sbchen8 הגיב:

    המשך
    שלה, שם המשתמש קיים במערכת";
    }
      else
    {
    if (!mysql_num_rows($q2) == 0) {
        echo "ההרשמה נכשלה, כתובת הדואר האלקטרוני קיימת במערכת";
    }     
    else
    {
    if (!mysql_num_rows($q3) == 0) {
        echo "ההרשמה נכשלה, מספר הטלפון הסלולארי קיים במערכת";
    }
    else
    {
    mysql_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
    mysql_query("INSERT INTO `users` (username, password, email, cellphone, addres, city, name, last_name, empu, se_email, date, admsg_viewed)
    VALUES('$user', '$pass', '$email', '$cellphone', '$addres', '$city', '$name', '$lname', '$emplu', '$se_mail', '$date', '0')");
    echo "הנתונים נכנסו למערכת, תודה על ההרשמה." ;
    echo $user . " " . $pass . " " . $email . " " .$addres . " " . $city . " " . $name . " " . $lname . "<BR> " . $emplu . " " . $se_mail . " " . $date   ;

    } }

      mysql_close();
    }
    }

    ?>
    </body>

    </html>

  10. sbchen8 הגיב:

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

שלח תשובה

חדש! אחסון אתרים של וובמאסטר

שירות אחסון אתרים
המקצועי של וובמאסטר!

מומחים באירוח אתרי
WordPress, Joomla, Drupal

  • שרתי לינוקס עם CloudLinux, LiteSpeed
  • 1GB דיסק SSD, 10GB תעבורה חודשית
  • ממשק ניהול cPanel, תעודת SSL חינם

עכשיו במחיר היכרות:
רק 420 ש"ח לשנה!