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

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

dor77 10-08-09 17:18

בעיה | שגיאה בהצבת עוגיות.
 
שלום.

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

html - הטופס של קבלת שם המשתמש והסיסמא, form פשוט. פה נסגר ה html.
php- זה הקוד:

PHP קוד:


<?php
mysql_connect
("localhost""root""");
mysql_select_db("phpmyadmin");
 
$user_name mysql_real_escape_string(htmlspecialchars($_POST['user_name']));
$password mysql_real_escape_string(htmlspecialchars(md5($_POST['password'])));
 
$query mysql_query("SELECT * FROM bla WHERE user_name='$user_name'"); 
$row=mysql_fetch_array($query);
 
$c_password="".$row['password']."";
if (isset(
$_POST['submit']))
{
if (
$c_password==$password)
{
setcookie(user_name$user_nametime()+60000);
}
else
{
echo 
"שם משתמש או סיסמא לא נכונים, אנא נסה שוב";
}
}
?>

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

איפה נשלחו headers ומה זה בכלל? אני מקבל שגיאה שנשלחו כבר, וזו בעיה שאני מכיר אבל לא יודע איך לפתור אותה כאן.

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

תודה.

Daniel 10-08-09 17:48

אנטר לפני PHP, ו... מה זה "user_name"? שכחת גרש/יים.
$c_password="".$row['password'].""; למה כל ה-"" המיותרים?

dor77 10-08-09 17:55

הנה תיקון, עדיין לא עובד:

PHP קוד:



<?php
mysql_connect
("localhost""root""");
mysql_select_db("phpmyadmin");

$user_name mysql_real_escape_string(htmlspecialchars($_POST['user_name']));
$password mysql_real_escape_string(htmlspecialchars(md5($_POST['password'])));

$query mysql_query("SELECT * FROM users WHERE user_name='$user_name'"); 
$row=mysql_fetch_array($query);

$row_password=$row['password'];

if (isset(
$_POST['submit']))
{
if (
$row_password==$password)
{
setcookie("user_name"$user_nametime()+60000);
}
else
{
echo 
"שם משתמש או סיסמא לא נכונים, אנא נסה שוב";
}
}
?>

עדיין..Cannot modify header information - headers already sent by

תודה.

Daniel 10-08-09 20:56

ציטוט:

נכתב במקור על ידי MasterT (פרסם 733004)
אנטר לפני PHP, ו... מה זה "user_name"? שכחת גרש/יים.
$c_password="".$row['password'].""; למה כל ה-"" המיותרים?


...

אדיר 10-08-09 22:31

הוא מתכוון להוריד את הרווח חחחח..
(אם עדיין לא הבנת ותבוא להתווכח איתו שכבר עשית אנטר)


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

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