Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σας,

    έχω μία σύντομή ερώτηση να κάνω,

όταν είμαι σε μία σελίδα .php και εκεί καλώ την mysqli_connect() για να συνδεθώ με την βάση δεδομένων μου μετά άν πάω σε κάποιο άλλο .php αρχείο της σελίδας μου εκει δεν ισχύει η σύνδεση (πχ η μεταβλητή $link που παίρνει την τιμή που επιστρέφει η mysqli_connect() θα υπάρχει?)? Πρέπει να ξανασυνδεθώ από την αρχή?
Δοκίμασα να περάσω την μεταβλητή link σε SESSION αλλά δεν δούλεψε.

Ευχαριστώ.

Δημοσ.

Δεν καταλαβαίνω όταν λες πας σε κάποιο άλλο αρχείο php... Εννοείς μήπως οτι καλείς το αρχείο με include ή require? Ή μήπως με κάποιο link από την σελίδα? 
Εγώ καταλαβαίνω οτι κάνεις το δεύτερο, οπού στην περίπτωση αυτήν όπως είναι φυσικό πρέπει να ξανακάνεις Connect με την Βάση ώστε η παράμετρος $link (η οποία έχει αρχικοποιηθεί) να ξαναδεσμευτεί με το Connection.
Δεν έχω προσπαθήσει ποτέ να μεταφέρω τέτοιες παραμέτρους σε Sessions. Σίγουρα όμως αν το έκανα δεν θα ένοιωθα και τόσο ασφαλής. :)

 

Δημοσ.

οχι το include το κάνω σίγουρα οκ. Το θέμα μου είναι ότι ενώ έχω κάνει connect πχ στην αρχική σελίδα, μετα ας πούμε πατάω έναν σύνδεσμο και πάω απο την αρχική_σελίδα.php στην ανακοινώσεις.php

και στις ανακοινώσεις θελω ας πούμε να κάνω ένα ερώτημα στη βάση δεδομένων που συνδέθηκα προηγουμένως. θα πρέπει να ξανακάνω include το .php αρχειο που κάνω τη σύνδεση (στην ουσία να ξανακάνω την σύνδεση απο την αρχή) ή υπάρχει άλλος τρόπος ?

Δημοσ.

:o
ok!
απλα μου φαινόταν λίγο χαζό να κάνω συνέχεια σύνδεση :/
Αλλα αφού το λέτε εσείς.. ;)
Σας ευχαριστώ πολυ.

Δημοσ.

οχι το include το κάνω σίγουρα οκ. Το θέμα μου είναι ότι ενώ έχω κάνει connect πχ στην αρχική σελίδα, μετα ας πούμε πατάω έναν σύνδεσμο και πάω απο την αρχική_σελίδα.php στην ανακοινώσεις.php

και στις ανακοινώσεις θελω ας πούμε να κάνω ένα ερώτημα στη βάση δεδομένων που συνδέθηκα προηγουμένως. θα πρέπει να ξανακάνω include το .php αρχειο που κάνω τη σύνδεση (στην ουσία να ξανακάνω την σύνδεση απο την αρχή) ή υπάρχει άλλος τρόπος ?

Για μένα είναι καλό είναι να φτιάξεις την εξής Δομή στην εφαρμογή σου....

 

πχ.

 

Header.php (στην αρχή του θα καλείς το functions.php)

 

 

- index.php = (αρχική σελίδα) (οπού θα καλείς με include το header και το footer και ανάμεσα θα γράφεις ότι θές)

- ανακοινώσεις.php (οπού θα καλείς με include το header και το footer και ανάμεσα θα γράφεις ότι θές)

 

 

Footer.php

 

Functions.php (To αρχείο functions θα περιέχει ότι κοινές functions ή μεταβλητές όπου θα χρησιμοποιείς σε κάθε σελίδα σου όπως η mysqli_connect που επιστρέφει το connection $link)

 

Έτσι δεν θα χρειάζεται να γράφεις συνέχεια σε κάθε αρχείο τον ίδιο και τον ίδιο κώδικα... Πιστεύω να έγινα κατανοητός :)

 

 

 

 

:o

ok!

απλα μου φαινόταν λίγο χαζό να κάνω συνέχεια σύνδεση :/

Αλλα αφού το λέτε εσείς..  ;)

Σας ευχαριστώ πολυ.

Δεν είναι χαζό να κάνεις συνέχεια σύνδεση... Χαζό είναι να γράφεις συνέχεια σε κάθε σελίδα τον ίδιο κώδικα για να κάνεις την σύνδεση :)

Δημοσ.

ναι κατάλαβα τι λες! thank you!

Το password είναι ασφαλές να το περνάω σε session?

Τα Sessions χρησιμοποιούνται συνήθως για να αποθηκεύουν προσωρινά πληροφορίες για διαφορετικούς χρήστες.. Τα Sessions αποθηκεύονται στην μεριά του Server.. Υπάρχει ένα Session ID το οποίο γίνετε genrate από τον Client και συνδέεται με την Πληροφορία που αποθυκεύετε στον Server. Σύμφωνα με τα παραπάνω θα απαντήσω οχι μόνο για την ασφάλεια αλλά και για την χρησιμότητα.

 

Δεν υπάρχει λόγος μια τέτοιου είδους πληροφορία να την μεταφέρεις με Session.

Δημοσ.

(Είναι η πρώτη μου σελίδα με php)
εγω χρησιμοποιώ τα SESSIONS γενικά για να έχω την πληροφορία του χρήστη σε όλες τις σελίδες μου.

πχ και στο start_page.php και στο announcements.php και σε ότι άλλο .php χρειάζεται. δεν είναι καλή πρακτική δηλαδή αυτό?
το διάβασα στο w3schools.

Δημοσ.

(Είναι η πρώτη μου σελίδα με php)

εγω χρησιμοποιώ τα SESSIONS γενικά για να έχω την πληροφορία του χρήστη σε όλες τις σελίδες μου.

πχ και στο start_page.php και στο announcements.php και σε ότι άλλο .php χρειάζεται. δεν είναι καλή πρακτική δηλαδή αυτό?

το διάβασα στο w3schools.

Νομίζω είναι καλή πρακτική τα Sessions για τους Χρήστες (για να ξέρεις αν κάποιος είναι ήδη συνδεδεμένος έτσι ώστε να του εμφανίσεις ή αποκρίψεις blocks τα οποία έχουν κάποια δικαιώματα)....

 

Εγω θα κρατούσα μέσα στο Session για παράδειγμα το username του χρήστη καθώς επίσης και μια μεταβλητη που θα την έλεγα is_login** όπου θα έπερνε true η false ανάλογα με την περίσταση, μπορείς και άλλες πληροφορίες όπως last_login_datetime. 

 

Από εκεί και πέρα οι κωδικοί του χρήστη στην Βάση δεδομένων θα πρέπει να είναι τουλάχιστον MD5. Εφόσον ο κωδικός είναι σε μια μορφή η οποία δεν μπορεί να απομνημονευτεί και να διαβαστεί καθώς επίσης και να αποκωδικοποιήθει δεν χρειάζετε να κρατείτε στο Session.

Κοινώς είναι μια άχρηστη πληροφορία που θα κρατήσεις και δεν θα την χρησιμοποιήσεις ποτέ. Ο κωδικός χρησιμοποιείτε μόνο κατά την διάρκεια της λειτουργείας του Login. Σε πολύ ειδικές περιπτώσεις τον ξαναχρησιμοποιείς αλλά δεν χρείαζετε να τον κουβαλάς στα Session που αποθηκεύεις.

 

** η is_login είναι άχρηστη εάν στο Logout καταστρέφεις το Session

  • Like 1
Δημοσ.

ok got it :)
Σε ευχαριστώ και πάλι!

 

-

 

Όταν θέλω να χρησιμοποιήσω ένα session σε διαφορετικό αρχείο απο το αρχείο που δημιουργήθηκε πρέπει να κάνω session.start() πάλι?

Δημοσ.

ok got it :)

Σε ευχαριστώ και πάλι!

 

-

 

Όταν θέλω να χρησιμοποιήσω ένα session σε διαφορετικό αρχείο απο το αρχείο που δημιουργήθηκε πρέπει να κάνω session.start() πάλι?

όχι, 

 

ως τόσο κάποιες php εκδόσεις αν θυμάμαι καλά χρησιμοποιούν το $_session χωρίς να το κάνεις init σε κάθε σελίδα.

 

προσωπικά κάνω init πάντα το SESSION.

Δημοσ.

πως κάνεις initialize το session?
εγω κάνω σε κάθε σελίδα πάνω πάνω

<?php session_start(); ?>

και δουλέυει.

Δημοσ.

πως κάνεις initialize το session?

εγω κάνω σε κάθε σελίδα πάνω πάνω

<?php session_start(); ?>

και δουλέυει.

 

ναι, σωστά. θα κάνεις ένα αρχείο include το οποίο θα κάνει τα inits.

μαζί με το session π.χ θα φτιάχνεις και ένα pdo / mysqli connection.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...