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

10 תשובות
תשובה
כשאתה שולח את הטופס, בעמוד המתקבל שאליו נשלחים הנתונים, תדפיס אותם, תראה אם הם עוברים כראוי בשליחה, והאם הבעיה היא בכלל בשאילתה למסד נתונים.
"החיים הם רק הדרך במסע הנפש", בילד 2004-2008 <img src='/images/6.gif'>
http://Www.Torec.Net * http://Www.Torec.In
עשיתי את זה..
אפילו בדקתי את הקידוד של הדפים ושניתי את כולם לLTR
כלום לא עוזר..
באיזה קידוד אתה עובד?
האם הגדרת את אותו הקידוד גם בצד שרת וגם ב-html?
אלי ענתבי
utf-8
כל האתר עובד על הקידוד הזה..
וכשאני מסתכל במסד נתונים הכל נראה טוב – העיברית מוצגת אין ג'יבריש או משהו כזה..
ושני השדות שאני צריך מוצגים נכון.. גם כשאני שולף אותם מהמסד באותו דף.. משום מה הוא לא מסכים להשוות אותם לנתונים שאני מכניס..
עוד משהו מוזר.. כשמישהו נרשם לאתר המערכת בודקת אם קיים יוזר מייל כלומר ישנה השוואה והוא מצליח להשוות בין טקסט שנכנס לבין רשומה קיימת..
מה הקוד של העמוד הלא תקין הזה בדיוק?
"החיים הם רק הדרך במסע הנפש", בילד 2004-2008 <img src='/images/6.gif'>
http://Www.Torec.Net * http://Www.Torec.In
הקוד
<?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 "לא קיים "; }
} ?>
תשובה
לא כל כך ברור מה הקוד, כלומר אם כולו של עמוד אחד או לא..
אבל בשאילתה השנייה, תחליף את && למילה and
זה SQL, לא PHP…שים לב.
אולי זה יפתור לך את הבעיה…
אם לא, תכתוב כאן גם את הקוד של הטופס עצמו שנבין טוב יותר.
"החיים הם רק הדרך במסע הנפש", בילד 2004-2008 <img src='/images/6.gif'>
http://Www.Torec.Net * http://Www.Torec.In
הקוד הוא של הדף שמקבל את הפרטים
אז דבר ראשון תודה על הסבלנות..
דבר שני אני לא חושב שיש בעיה קוד עצמו.. כשאני מכניס נתונים ידנית למסד – כלומר דרך 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 "ההרשמה נכ
המשך
שלה, שם המשתמש קיים במערכת";
}
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>
הבעיה סודרה!!
לאחר שבועיים של לילות חסרי שינה הצלחתי לבסוף לפתור את הבעיה..
הבעיה הייתה העברת נתונים בין מספר דפים.. מסתבר שבפעולה זו הנתונים אינם נקראים נכון אפילו שהם מוצגים בצורה רגילה במסד עצמו..
תודה על העזרה בכל מקרה!