Πρόβλημα μεταβλητής-function

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
_Invisible_
Δημοσιεύσεις: 418
Εγγραφή: 16 Νοέμ 2006 16:47
Τοποθεσία: Greece

Πρόβλημα μεταβλητής-function

Δημοσίευση από _Invisible_ » 12 Μαρ 2007 14:29

Γεια σας.

Ας υποθέσουμε ότι έχουμε το αρχείο functions.php και common.php και index.php. Το index.php καλεί το functions.php και μετά το common.php. Μέσα στο common.php έχουμε $is_authed = is_authed(); που λογικά αυτό σημαίνει η μεταβλητή $is_authed, να πάρει το αποτέλεσμα του function is_authed().

Μόλις πάω να κάνω echo $is_authed δεν μου εμφανίζει τίποτα! Ο κώδικας του function is_authed() επιστρέφει TRUE ή FALSE. Δεν υπάρχει κάποιο σημείο που να μην επιστρέφει τίποτα.

Ενώ όταν κάνω echo is_authed() μου εμφανίζει ή 1 ή 0 (ανάλογα αν έχει γίνει login). Δεν μπορώ να καταλάβω τι κάνω λάθος και δεν δουλεύει... Κοίτα ρε που κόλλησα... :cry:

panosru
WebDev Moderator
Δημοσιεύσεις: 1885
Εγγραφή: 13 Σεπ 2005 16:13
Τοποθεσία: Camp

Πρόβλημα μεταβλητής-function

Δημοσίευση από panosru » 12 Μαρ 2007 15:10

to true kai to false einai boolean, einai fysiko na mhn sou emfanizei true h false os string kane to eksis

Κώδικας: Επιλογή όλων

echo (is_authed() === true)?'true':'false';

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Πρόβλημα μεταβλητής-function

Δημοσίευση από dva_dev » 12 Μαρ 2007 15:45

Καλύτερα να γίνεται ο έλεγχος πάντα ως προς το false και να αποφεύγεται ως προς το true.

panosru
WebDev Moderator
Δημοσιεύσεις: 1885
Εγγραφή: 13 Σεπ 2005 16:13
Τοποθεσία: Camp

Πρόβλημα μεταβλητής-function

Δημοσίευση από panosru » 12 Μαρ 2007 15:51

analogos thn periptosh pantos.

episeis kalo einai na grafeis

Κώδικας: Επιλογή όλων

true === $var
anti gia

Κώδικας: Επιλογή όλων

$var === true
ayto giati kamia fora ksexniomaste kai anti gia 3 h 2 = bazoume ena kai dilonoume thn variable opote an apo lathos mas grapsoume true = $var tote tha xtyphsei kai den tha spame to kefali mas argotera na broume to lathos :P

Άβαταρ μέλους
_Invisible_
Δημοσιεύσεις: 418
Εγγραφή: 16 Νοέμ 2006 16:47
Τοποθεσία: Greece

Πρόβλημα μεταβλητής-function

Δημοσίευση από _Invisible_ » 12 Μαρ 2007 15:54

Δεν ήθελα να μου βγάζει TRUE ή FALSE.

Τέσπα. Το έκανα έτσι:

Κώδικας: Επιλογή όλων

$is_authed = (is_authed() === true) ? 1 : 0;
και λογικά όταν γράφω:

Κώδικας: Επιλογή όλων

if ( !$is_authed )
{
 // promt for login
}
....
δεν θα έπρεπε να δουλεύει σωστά; Άρα έχω κάποιο άλλο λάθος με τα Sessions στο login. Θα το ψάξω καλύτερα και θα την βρω την άκρη, που θα μου πάει :D

nastis
Δημοσιεύσεις: 124
Εγγραφή: 16 Φεβ 2005 16:28
Επικοινωνία:

Πρόβλημα μεταβλητής-function

Δημοσίευση από nastis » 12 Μαρ 2007 16:23

Είτε θα κάνεις με την αρχική σου προσέγγιση που η function επιστρέφει true/false
και μετά θα κάνεις ....

Κώδικας: Επιλογή όλων

if ( ! is_authed() )
{
 // promt for login
} 
όπου όντως μέσα στο if θα έχει boolean true false.


Είτε αμα θέλεις να σου επιστρέφει 0/1 μετα θα ελέγχεις

Κώδικας: Επιλογή όλων

$is_authed = (is_authed() === true) ? 1 : 0; 
if ( $is_authed ==0)
{
 // promt for login
} 
που προφανώς δεν είναι ανάγκη να τα γυρίσεις σε 0/1 και μετα να ξαναελέγχεις για ποιο είναι ποιό.

Φοβάμαι ότι προσπαθόντας να δεις με echo το αποτέλεσμα σου μπερδεύτηκες στο τι έπρεπε να βάλεις στο if


Φιλικά
Β.
www.oktonia.com - Παγκόσμιο Χωριό Γνώσης Λυμένα Θέματα Εξετάσεων - Ασκήσεις

Άβαταρ μέλους
_Invisible_
Δημοσιεύσεις: 418
Εγγραφή: 16 Νοέμ 2006 16:47
Τοποθεσία: Greece

Πρόβλημα μεταβλητής-function

Δημοσίευση από _Invisible_ » 12 Μαρ 2007 17:02

Ξέρω ότι θα σας κάνει να γελάσετε... αλλά θα το πω. Το λάθος που είχα κάνει, ήταν ότι το session_start() ήταν στο functions.php και όχι στο index.php... και ποτέ τα sessions δεν δημιουργήθηκαν σωστά. Τώρα το διόρθωσα και όλα δουλεύουν ρολόι.

Ευχαριστώ πολύ guys!

Άβαταρ μέλους
_Invisible_
Δημοσιεύσεις: 418
Εγγραφή: 16 Νοέμ 2006 16:47
Τοποθεσία: Greece

Πρόβλημα μεταβλητής-function

Δημοσίευση από _Invisible_ » 12 Μαρ 2007 17:06

nastis έγραψε:Είτε θα κάνεις με την αρχική σου προσέγγιση που η function επιστρέφει true/false
και μετά θα κάνεις ....

Κώδικας: Επιλογή όλων

if ( ! is_authed() )
{
 // promt for login
} 
....
nastis, αν το κάνω αυτό τότε κάθε φορά που θα θέλω να δω αν ο χρήστης έχει κάνει login, θα εκτελεί το function is_authed() απο την αρχή και αυτό δεν θα ήταν καθόλου καλό για το script γιατί θα καθυστερούσε το script (εντάξει όχι πολύ, αλλά θα υπήρχε καθυστέρηση) κατά την εκτέλεση της function ενώ θα μπορούσα πολύ άνετα να αποθηκεύσω το αποτέλεσμα σε μία μεταβλητή (που αυτό σημαίνει ότι θα εκτελεστεί μία φορά η function, και όποτε θέλω θα μπορώ να πάρω το αποτέλεσμα της function χωρίς να την εκτελέσω ξανά...).

Γνωρίζω πως τα ξέρεις όλα αυτά, αλλά παραξενεύτηκα που το έγραψες... :-?

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης