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

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

X-T 11-06-07 06:15

האם הגיוני שהקוקיז יתקבלו ב FF וב IE לא?
 
אהלן, אני עובר על טופס התחברות ומשום מה הקוקיז נשלחים אך ורק ב FF ולא ב IE
הקוד:
PHP קוד:

<? 
ob_start
();
include 
"global/global.php";
echo 
'<center><meta http-equiv="Content-Type" content="text/html; charset=windows-1255">';
$submit $_POST['submit'];
$username $_POST['username'];
$password $_POST['password'];
if(
$submit) {
$sql " SELECT * FROM members WHERE username = '$username' AND password = '$password' "
$result mysql_query($sql) or die("בעייה : " mysql_error()); 
if(!
mysql_num_rows($result)) {
echo 
"אחד מהשדות שהזנת שגויים, נא חזור ובדוק שנית";
exit();
}
    
setcookie("user"$username,time() + 3600);
    
setcookie("pw"$passwordtime() + 3600);
    
setcookie("access"$accesstime() + 3600);
echo 
"<meta http-equiv='refresh' content='0; url=index.php'>";
}
ob_end_flush();
?>


אינו מציג שום שגיאה אך לפני כן הקובץ היה על UTF-8 ויצר בעיות אז המרתי אותו ל ANSI,
האתר שלי בנוי על UTF-8 , האם הבעיה כאן? או מה בדיוק הבעיה? אשמח לקבל הסבר

WebProject 11-06-07 06:24

קודם כל - תאבטח את הנתונים שאתה מקבל מהגולשים.
ובדקת בshow cookies בFF שהעוגיות לא קיימות?

X-T 11-06-07 06:28

ציטוט:

נכתב במקור על ידי WebProject (פרסם 497201)
קודם כל - תאבטח את הנתונים שאתה מקבל מהגולשים.
ובדקת בshow cookies בFF שהעוגיות לא קיימות?

אכן.
הקוד המאובטח:
PHP קוד:

<? 
ob_start
();
include 
"global/global.php";
echo 
'<center><meta http-equiv="Content-Type" content="text/html; charset=windows-1255">';
$submit $_POST['submit'];
$username $_POST['username'];
$password $_POST['password'];
$username htmlspecialchars($usernameENT_QUOTES);
$password htmlspecialchars($passwordENT_QUOTES);
if(
$submit) {
$sql " SELECT * FROM members WHERE username = '$username' AND password = '$password' "
$result mysql_query($sql) or die("בעייה : " mysql_error()); 
if(!
mysql_num_rows($result)) {
echo 
"אחד מהשדות שהזנת שגויים, נא חזור ובדוק שנית";
exit();
}
    
setcookie("user"$username,time() + 3600);
    
setcookie("pw"$passwordtime() + 3600);
    
setcookie("access"$accesstime() + 3600);
echo 
"<meta http-equiv='refresh' content='0; url=index.php'>";
}
ob_end_flush();
?>


Elad-A 11-06-07 07:56

מוזר בחיים לא קרה לי..
תנסה אולי להגדיר גם את הדומיין ב setcookie

PHP קוד:

setcookie"name""value""future_timestamp""path""domain" ); 


4ior 11-06-07 08:47

תנסה לשים ככה:
[php]
ob_start();
setcookie("user", $username,time() + 3600);
setcookie("pw", $password, time() + 3600);
setcookie("access", $access, time() + 3600);
ob_end_flush();
[/php

X-T 11-06-07 10:04

עדיין לא...

The Crow 11-06-07 11:27

כפי ש Elad-A אמר, נסה להגדיר domain ו path
ובלי שום קשר, תשמור על אחידות בקידוד הדפים.
או הכל UTF או הכל WIN1255

Beesites 11-06-07 11:31

ובלי קשר לשאלה - אני מקווה שאתה לא ברצינות רוצה לשמור את הסיסמה בתוך קוקי :)

X-T 11-06-07 12:13

ציטוט:

נכתב במקור על ידי The Crow (פרסם 497278)
כפי ש Elad-A אמר, נסה להגדיר domain ו path
ובלי שום קשר, תשמור על אחידות בקידוד הדפים.
או הכל UTF או הכל WIN1255

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

Source 11-06-07 12:25

גם לי קרה שקוקיז נשמרו רק בFFx ובIE בפעם הראשונה... הייתי צריך כל פעם במקום לעדכן קוקי - לעשות חדשה.

X-T 11-06-07 12:43

ציטוט:

נכתב במקור על ידי Source (פרסם 497309)
גם לי קרה שקוקיז נשמרו רק בFFx ובIE בפעם הראשונה... הייתי צריך כל פעם במקום לעדכן קוקי - לעשות חדשה.

אז מה עושים?

O-B 11-06-07 12:47

די מוזר גם לי זה לא קרה..

תראה הקוקיז של FF נשמרים במקום אחר מהקוקיז של IE..
ולכן אתה צריך להתחבר עם IE כדי שהקוקיז יווצרו בתיקיה הנכונה.. וככה אתה תהיה מחובר גם ב IE..

X-T 11-06-07 12:49

ציטוט:

נכתב במקור על ידי O-B (פרסם 497343)
די מוזר גם לי זה לא קרה..

תראה הקוקיז של FF נשמרים במקום אחר מהקוקיז של IE..
ולכן אתה צריך להתחבר עם IE כדי שהקוקיז יווצרו בתיקיה הנכונה.. וככה אתה תהיה מחובר גם ב IE..

WTF, ניסיתי עם מחשב אחר שלא מותקן שם FF ועדיין יוצר לי בעיות...

Elad-A 11-06-07 12:52

תבדוק איפה הבעיה
תפתח דף חדש ותנסה לעשות בו ככה
PHP קוד:

<?php
setcookie
('test' 'wtf' time() * 3600);
print_r($_COOKIE);
?>

ותבדוק בשני הדפדפנים ותרשום פה מה הפלט..

X-T 11-06-07 13:06

ציטוט:

נכתב במקור על ידי Elad-A (פרסם 497353)
תבדוק איפה הבעיה
תפתח דף חדש ותנסה לעשות בו ככה
PHP קוד:

<?php
setcookie
('test' 'wtf' time() * 3600);
print_r($_COOKIE);
?>

ותבדוק בשני הדפדפנים ותרשום פה מה הפלט..

ב IE מחזיר - Array ( )
ב FF מחזיר - Array ( )

Elad-A 11-06-07 13:07

לא הגיוני תעשה כמה פעמים רענן

X-T 11-06-07 13:08

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

Elad-A 11-06-07 13:25

יש לך בעיה בשרת כנראה..

mlnn 11-06-07 13:41

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

X-T 11-06-07 13:50

איך הגיוני שב 4 מחשבים אותה בעיה?

BlueNosE 11-06-07 16:05

קרה לי בעבר, הבעיה שלך פשוטה: הטופס לא מתקבל כמו שצריך בIE.
בIE הSUMBIT לא נשלח בתור איבר במערך $_POST ולכן אתה לא יכול לבדוק if submit כי זה לא יעבוד.

X-T 11-06-07 17:01

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 497555)
קרה לי בעבר, הבעיה שלך פשוטה: הטופס לא מתקבל כמו שצריך בIE.
בIE הSUMBIT לא נשלח בתור איבר במערך $_POST ולכן אתה לא יכול לבדוק if submit כי זה לא יעבוד.

כנראה שזו לא הבעיה... הקוד עדיין לא פועל, הקוד:
PHP קוד:

<?
ob_start
();
include 
"global/global.php";
echo 
'<center><meta http-equiv="Content-Type" content="text/html; charset=windows-1255">';
$submit $_POST['submit'];
$username $_POST['username'];
$password $_POST['password'];
$username htmlspecialchars($usernameENT_QUOTES);
$password htmlspecialchars($passwordENT_QUOTES);

$sql " SELECT * FROM members WHERE username = '$username' AND password = '$password' "
$result mysql_query($sql) or die("בעייה : " mysql_error()); 
if(!
mysql_num_rows($result)) {
echo 
"אחד מהשדות שהזנת שגויים, נא חזור ובדוק שנית";
}else{
setcookie("user"$username,time() + 3600);
setcookie("pw"$passwordtime() + 3600);
setcookie("access"$accesstime() + 3600);
echo 
"<meta http-equiv='refresh' content='0; url=index.php'>";
}
ob_end_flush();
?>


Elad-A 11-06-07 18:25

תנסה את המערכת שלך על שרת אחר..

X-T 12-06-07 06:31

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

RS324 13-06-07 00:17

כמה שטויות באשכול אחד... יש בעיות מסויימות עבור SETCOOKIE
הנה קטע מתוך PHP.NET

ציטוט:

the "bug" that prevents cookies from working properly with Windows XP and Internet Explorer 6 seems to be a more strict following of the cookie specifications. This part in particular:

Only hosts within the specified domain can set a cookie for a domain and domains must have at least two (2) or three (3) periods in them to prevent domains of the form: ".com", ".edu", and "va.us". Any domain that fails [sic] within one of the seven special top level domains listed below only require two periods. Any other domain requires at least three. The seven special top level domains are: "COM", "EDU", "NET", "ORG", "GOV", "MIL", and "INT".

localhost should not work. Neither should localhost.localdomain. Though, it may be a bug that 127.0.0.1 does not work, even despit the fact that 127.0.0.1 is not a domain name.
בד"כ הפתרון הוא לעשות COOKIES דרך הפונקציה header.

X-T 13-06-07 08:39

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


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

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