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

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

-VladK- 19-05-06 06:42

בעיה בקובץ התחברות
 
שלום.
כתבתי קובץ התחברות ...נגיד ואני רוצה להתחבר אני כותב למשל בשם משתמש vladie בסיסמה: 1234 ולוחץ להתחבר...אני מועבר לעמוד שאני צריך להיות מועבר...עשיתי ככה שאחרי שמתחברים הדפדפן יוצר עוגיות וזה...קיצור עשיתי שאם העוגיות כבר קיימות אז שיעביר אותי לעמוד INDEX אוטומתית...אבל...הבעיה היא שהוא לא בודק אם העוגיות קימות |Stare| הנה הקובץ:
PHP קוד:

<?php
ob_start
();
require 
'userfunc.php';
if (
User()) {
    
header("Location:index.php");
}
if(isset(
$_POST['submit'])) {
    require 
'db.php';
    
extract($_POST);
    
$check mysql_query("SELECT aPassword FROM Users WHERE aUsername='$Username'") or die(mysql_error());
    if(
mysql_num_rows($check) == '0') {
        echo 
"שם המשתמש $Username אינו קיים!";
        
form();
    }else {
        
$userres mysql_fetch_assoc($check);
        
extract($userres);
        if (
$aPassword == md5($Password)) {
            
setcookie("User",$Username,time()+3600);
            
header("Location:index.php");
        } else {
            echo 
"הסיסמה שגויה!";
            
form();
        }
    }
}else {
    
form();
}
function 
form()
{
    echo 
"<form method=\"post\">";
    echo 
"<table border=\"0\">";
    echo 
"<tr><td>שם משתמש:</td><td><input type=\"text\" name=\"Username\" /></td></tr>";
    echo 
"<tr><td>סיסמה:</td><td><input type=\"password\" name=\"Password\" /></td></tr>";
    echo 
"<tr><td><input type=\"submit\" value=\"התחבר\" name=\"submit\" /></td></tr>";
    echo 
"</table>";
    echo 
"</form>";
}
ob_end_flush();
?>

והנה הקובץ 'userfunc.php'
PHP קוד:

<?php

function User()
{
    if(isset(
$_COOKIE['User'])) {
        return 
1;
    } else {
        return 
0;
    }
}
?>

תודה רבה לכל העוזרים

adiga000 19-05-06 08:53

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

תנסה את זה
ציטוט:


<?php

function User($_COOKIE['User'])
{
if(isset($_COOKIE['User'])) {
return 1;
} else {
return 0;
}
}
?>


-VladK- 19-05-06 11:14

תגיד...מאחר והשם שם הפונקציה עכשיו זה User($_COOKIE['User']) אני צריך לשנות את השם גם בקובץ ההתחברות עצמו?

עריכה:
העלתי את הקובץ...הוא היה טיפה פגום תיקנתי קיצור עכשיו הוא נותן לי את השגיאה הזאת:
Warning: Missing argument 1 for user() in /home/afrsek/domains/afrsek.wisetp.com/public_html/news/Admin/userfunc.php on line 3

הנה הקובץ:
PHP קוד:

<?php 
$Cookie 
$_COOKIE['User'];
function 
User($Cookie

    if(isset(
$Cookie)) { 
        return 
1
    } else { 
        return 
0
    } 

?>


BlueNosE 19-05-06 12:47

PHP קוד:

<?php 
$Cookie 
$_COOKIE['User'];
function 
User() 

global 
$Cookie;
    if(isset(
$Cookie)) { 
        return 
1
    } else { 
        return 
0
    } 

?>


-VladK- 19-05-06 13:02

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

MasterNir 19-05-06 13:55

גם מה ש-adiga אמר, וגם מה ש-bluenuse r אמר לא נכון.

המשתנה $_COOKIE הוא "סופר גלובאלי" והוא נגיש מכל מקום בסקריפט, אתה לא צריך להגדיר אותו ב-global ובטח שלא להעביר אותו דרך המשתנים בפונקציה כמו ש-adiga אמר, הוא נגיש מכל מקום בסקריפט שלך.

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

-VladK- 19-05-06 14:08

הכנסתי את הקוד ולא קיבלתי שום הודעה :S...אהההם יכול להיות שאני מגדיר םונקציה לא נכונה??

eXtaZa 19-05-06 17:05

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

-VladK- 19-05-06 17:55

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

eXtaZa 19-05-06 17:56

חח איזה מצחיק אתה...


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

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