Ένα απλό User Login σε PHP

Μια περιοχή όπου τα μέλη μας μπορούν να βάζουν τα PHP scripts που έχουν φτιάξει και θέλουν να τα μοιραστούν με τα υπόλοιπα μέλη.

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

Απάντηση
john-grafistas
Δημοσιεύσεις: 7
Εγγραφή: 25 Οκτ 2009 10:50

Ένα απλό User Login σε PHP

Δημοσίευση από john-grafistas » 12 Απρ 2010 23:24

Παιδιά μια βοήθεια please..
ξέρει κάποιος να μου πει πως θα ορίσω username και password στη βάση μου?
Υπόψιν δουλεύω στο phpmyadmin και προσπαθώ να φτιάξω αυτό το παράδειγμα που έχει το forum.
Εξ'ορισμού το phpmyadmin έχει ρυθμίσεις (χρήστης root χωρίς κωδικό πρόσβασης)
Ευχαριστώ.

ZeroGravityLG
Δημοσιεύσεις: 6
Εγγραφή: 13 Φεβ 2010 15:55

Ένα απλό User Login σε PHP

Δημοσίευση από ZeroGravityLG » 08 Μάιος 2010 02:32

Εάν θές να αλλάξεις κωδικό πρόσβασης ή αν δεν έχει να ορίσεις έναν τότε στην κεντρική σελίδα του phpmyadmin localhost/phpmyadmin, έχει ένα link "αλλαγή κωδικού πρόσβασης"
Εάν θές κάτι ποιο λειτουργικό κατέβασε το sqlYOG όπου μπορείς να κάνεις τα πάντα..
Τελευταία επεξεργασία από το μέλος ZeroGravityLG την 08 Μάιος 2010 11:30, έχει επεξεργασθεί 1 φορά συνολικά.

gdimi
Δημοσιεύσεις: 129
Εγγραφή: 18 Μαρ 2009 00:54
Τοποθεσία: Πειραιάς
Επικοινωνία:

Ένα απλό User Login σε PHP

Δημοσίευση από gdimi » 08 Μάιος 2010 08:06

αφού κάνεις login στο phpmyadmin και μπείς στο περιβάλλον του, πηγαίνεις στο tab "privileges" όπου θα δεις μια καρτέλα με τους υπάρχοντες χρήστες. Βρές τον root/localhost (μπορεί να έχει 2-3 διαφορετικούς root) και πάτα το εικονίδιο δεξιά με το οποίο μπορείς να του κάνεις edit. Στην επόμενη σελίδα που θα ανοίξει θα δεις ένα form box με τίτλο "change password" όπου από εκεί μπορείς να το αλλάξεις.
"We will create a civilization of the Mind in Cyberspace. May it be more humane and fair than the world your governments have made before."

hybridwebs.gr

billakoss
Δημοσιεύσεις: 17
Εγγραφή: 07 Οκτ 2010 22:37
Τοποθεσία: greece

Ένα απλό User Login σε PHP

Δημοσίευση από billakoss » 12 Νοέμ 2010 22:46

Καλησπερα
ΞΕθαβω αυτο το θεμα καθως εχω ενα προβληματακι..Οπως ειπα και σε αλλο θεμα δεν εχω και πολυ ιδεα απο php...
Θελω να κανω μια σελιδα στην οποια θα εχω ενα Login , κωδικους και Username θα δινω εγω αλλα αυτα θα μπορουν να διαχειριστουν μια και μονο σελιδα , ενω ο admin θα εχει προσβαση σε ολες Δηλαδη


Σελιδα αρχικη σελιδα Και Α Β Γ Δ (σελιδες)

στην αρχικη θα γινεται το login εστω με username protos kai pass 12345 που θα του δινω θα μπορει να διαχειριστει μονο την σελιδα Α το ιδιο ο β κτλ... Γινεται κατι τετοιο? Διαβασα ολο το θεμα αυτο αλλα δεν βρηκα κατι πανω σε αυτο..

Ευχαριστω πολυ

*δεν ειναι για καποια εργασια αλλα για μια προσωπικη σελιδα με τιμες

Άβαταρ μέλους
billt
Δημοσιεύσεις: 1175
Εγγραφή: 20 Φεβ 2004 16:17
Τοποθεσία: Θεσσαλονίκη

Ένα απλό User Login σε PHP

Δημοσίευση από billt » 12 Νοέμ 2010 23:10

Καλησπέρα, πρώτα απ' όλα θα ορίσεις στον πίνακα χρηστών και ενα πεδίο access με τιμές έστω "all,a,b,c ...."

Στη σελίδα όπου κάνεις login μην επιβεβαιώνεις μόνο ότι υπάρχει το ο συνδυασμός user/password αλλά τράβα από τη βάση και την παραμετρο access για αυτό το χρήστη. Αυτή περασέ τη σε ένα session. Δηλαδή κάτι σαν $_SESSION['auth_level']=$result['access']

Στη σελίδα που θέλεις να προστατέψεις δεν εξετάζεις το session_is_registered αλλά το $_SESSION['auth_level']. Ετσι πχ για τη σελίδα Β θα έχεις:

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

<? 
session_start&#40;&#41;; 
if&#40;$_SESSION&#91;'auth_level'&#93;!='all' AND $_SESSION&#91;'auth_level'&#93;!='b' &#41;&#123; 
header&#40;"location&#58;login.php"&#41;; 
&#125; 
?>

billakoss
Δημοσιεύσεις: 17
Εγγραφή: 07 Οκτ 2010 22:37
Τοποθεσία: greece

Ένα απλό User Login σε PHP

Δημοσίευση από billakoss » 12 Νοέμ 2010 23:29

billt έγραψε:Καλησπέρα, πρώτα απ' όλα θα ορίσεις στον πίνακα χρηστών και ενα πεδίο access με τιμές έστω "all,a,b,c ...."

Στη σελίδα όπου κάνεις login μην επιβεβαιώνεις μόνο ότι υπάρχει το ο συνδυασμός user/password αλλά τράβα από τη βάση και την παραμετρο access για αυτό το χρήστη. Αυτή περασέ τη σε ένα session. Δηλαδή κάτι σαν $_SESSION['auth_level']=$result['access']

Στη σελίδα που θέλεις να προστατέψεις δεν εξετάζεις το session_is_registered αλλά το $_SESSION['auth_level']. Ετσι πχ για τη σελίδα Β θα έχεις:

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

<? 
session_start&#40;&#41;; 
if&#40;$_SESSION&#91;'auth_level'&#93;!='all' AND $_SESSION&#91;'auth_level'&#93;!='b' &#41;&#123; 
header&#40;"location&#58;login.php"&#41;; 
&#125; 
?>

Ευχαριστω καταρχην για την γρηγορη απαντηση σας.
Εφτιαξα ενα παδιο access varchar οπως φενεται στην φωτογραφια

http://www.imagebanana.com/view/sa4a7kov/mysql.JPG

Για να συνοψησω εφτιαξα ενα αρχειο dbconnect.php με κωδικα

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

<?php
mysql_connect&#40;"localhost", "root", "123456"&#41;or die&#40;"cannot connect"&#41;;
mysql_select_db&#40;"users"&#41;?>

Αυτα το αρχειο χρειαζεται σωστα?


Στο index.php εχω την φορμα με Username Και pass , στο κουμπι Login τι κωδικα θα γραψω? γιατι χαθηκα λιγακι


Καταχωρηση ενος username θα κανω μεσω phpmyadmin δληαδη nikos , password 12345 και στο πεδιο access θα βαλω αντι για α το ονομα της σελιδας σε php σωστα?, οπως και στον κωδικα που μου δειξατε , οπου b την σελιδα που θα ειναι παλι π.χ b.php


Ευχαριστω πολυ

billakoss
Δημοσιεύσεις: 17
Εγγραφή: 07 Οκτ 2010 22:37
Τοποθεσία: greece

Ένα απλό User Login σε PHP

Δημοσίευση από billakoss » 13 Νοέμ 2010 00:25

Στο κουμπι που ειναι μεσα στην Index.php Θα μπει στο πανω πανω μερος κατι τετοιο δηλαδη

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

<?php
if&#40;isset&#40;$_POST&#91;'Login'&#93;&#41;&#41; &#123;
include &#40;'dbconnect.php'&#41;;
$username=$_POST&#91;username&#93;;
$password=md5&#40;$_POST&#91;password&#93;&#41;;
$_SESSION&#91;'auth_level'&#93;=$result&#91;'access'&#93; 
if&#40;$username!='' && $password!='' && $error!=1&#41;
&#123;
$sql="SELECT * FROM usertable WHERE username='$username' AND password='$password'";
$result=mysql_query&#40;$sql&#41;;
$rows=mysql_num_rows&#40;$result&#41;;


   if &#40;$rows==1&#41;&#123;
   session_register&#40;"authenticated"&#41;;
   echo "Επιτυχής Login";
   &#125; else &#123;
   echo "Ανεπιτυχές Login, δοκιμάστε πάλι";
   $error=1; &#125;
&#125;
else &#123;

?> 

billakoss
Δημοσιεύσεις: 17
Εγγραφή: 07 Οκτ 2010 22:37
Τοποθεσία: greece

Ένα απλό User Login σε PHP

Δημοσίευση από billakoss » 14 Νοέμ 2010 15:11

κανεις?

leonidiofc
Δημοσιεύσεις: 63
Εγγραφή: 16 Μαρ 2007 11:16
Τοποθεσία: Πειραιάς
Επικοινωνία:

Ένα απλό User Login σε PHP

Δημοσίευση από leonidiofc » 30 Απρ 2012 20:50

Γεια σας ,

Ψαχνω σε παραδειγματα αλλά δεν μπορω να το βρώ θα ηθελα οποιος ξερει να με βοηθησει .

Δεν ειμαι και πολυ σχετικος το τονιζω αυτο.

Θελω οπως ειναι στο πρωτο παραδειγμα με το register και το login ο καθε χρήστης (οχι σαν group) αλλά σαν μεμονωμενος χρηστης να βλεπει την δική του προσωπικη σελίδα

Για παράδειγμα

Ο χρήστης 1 να βλεπει την σελίδα 1
Ο χρήστης 2 την σελίδα 2


Μπορεί καποιος να με βοηθήσει πως θα το κάνω αυτο ?


Ευχαριστώ

servetas
Δημοσιεύσεις: 304
Εγγραφή: 01 Φεβ 2010 15:08
Επικοινωνία:

Ένα απλό User Login σε PHP

Δημοσίευση από servetas » 11 Μάιος 2013 00:06

Καλησπέρα σας κύριοι,

Αρχικά συγνώμη που επαναφέρω αυτό το παλιό θέμα αλλά καλό θα ήταν να υπάρχουν όλα συγκεντρωμένα :). Ετοίμαζω ένα cms με το συγκεκριμένο log in form ούτως ώστε να το αναπτύξω για ένα project που έχω και ενώ στον τοπικό AppServ δουλεύει μια χαρά, στον live σερβερ παίρνω το συγκεκριμένο error:

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

Deprecated&#58; Function session_is_registered&#40;&#41; is deprecated in /home/greeceva/public_html/pilotday/core/templates/pilot_profile.tpl on line 4
Καμία ιδέα; Σας ευχαριστώ εκ των προτέρων...

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Ένα απλό User Login σε PHP

Δημοσίευση από fafos » 11 Μάιος 2013 02:54

Tis session_register(), session_is_registered() kai session_unregister() den tis polyxrhsimopoioume pia..

apoti vlepo auto to script xrhsimopoiei thn session_register() (sto login.php) kai thn session_is_registered() (stis selides pou koitaei an einai syndemenos user h oxi)...

antikathistas thn session_register(authenticated) me thn:
$_SESSION["authenticated"] = 1;

kai thn if(session_is_registered(authenticated)) me thn:

if($_SESSION["authenticated"] == 1){
klp klp
}
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Ένα απλό User Login σε PHP

Δημοσίευση από Banavas » 11 Μάιος 2013 08:43

servetas έγραψε: Ετοίμαζω ένα cms με το συγκεκριμένο log in form.....
Αρχικά αναφέρω οτι δεν υποτιμώ την προσπάθεια του billit να δείξει πως λειτουργεί ένα login authentication και τονίζω τα λόγια που αναφέρει ο ίδιος Παρακάτω θα σας δείξω ένα απλό (πολύ απλό ...) σύστημα login για κλειστή περιοχή μελών :

Θα είναι μεγάλο λάθος να στηρίξεις την ασφάλεια της σελίδας σου σε ένα τόσο απλό script.

Σου αναφέρω την δική εμπειρία όταν έγραψα και χρησιμοποίησα ένα ανάλογο με αυτό απλοϊκό script για είσοδο μελών. Αρχικά όλα λειτουργούσαν άψογα. Στη συνέχεια κάποιος αργόσχολος ανακαλύπτει τις αδυναμίες τις σελίδας σου. Έπειτα το αναφέρει σε δικές τους σελίδες που αναφέρουν τα κατορθώματά τους. Η συνέπεια αυτού είναι να έρθουν χακερ ή υποψήφιοι χακερ σαν τις μύγες στα... Αποτέλεσμα τρέχεις να βρεις βιβλία να διαβάσεις πως θα αποτρέψεις το πρόβλημα. Είχα χάσει τις διακοπές μου την περίοδο εκείνη γιατί το script έτρεχε σε πολλά site και όλοι απαιτούσαν (φυσικά και δικαιολογημένα) λύση εδώ και τώρα!

Η συμβουλή μου είναι να γράψεις μόνος σου τον κώδικα αφού διαβάσεις καλά πάνω στο συγκεκριμένο θέμα. Αυτό θα σου δώσει την δυνατότητα να μπορείς να επέμβεις στον κώδικα για διορθώσεις γιατί θα ξέρεις επακριβώς τι κάνει η κάθε γραμμή κώδικα και η φιλοσοφία του script θα συμβαδίζει με την σκέψη σου.

Σημεία που πρέπει να προσέξεις:
Να ελέγξεις καλά τις παραμέτρους που έρχονται σαν username - password. Κυρίως το μέγεθος τους ώστε να μην υπερβαίνει ένα λογικό μέγεθος 10-20 χαρακτήρες και να μην περιέχονται οι χαρακτήρες ' και ; (ή να φροντίσεις να τους απομονώσεις)
Να χρησιμοποιήσεις CAPTCHA (μπορείς να το έχεις απενεργοποιημένο και να το ενεργοποιείς μετά από 3-4 αποτυχημένες προσπάθειες για να μην κουράζεις τους πραγματικούς χρήστες, υπόψιν οτι έχω βρεί κακόβουλο script σε έτοιμο captcha).Μπορείς εναλλακτικά ή επιπρόσθετα να μπλοκάρεις το λογαριασμό του χρήστη μετά από μερικές αποτυχυμένες προσπάθειες.
Να χρησημοποιήσεις salt (δημιουργείς ένα τυχαίο string και το προσθέτει στο password ώστε να μην κυκλοφορεί σε cookies το πραγματικό password ακόμα και σε md5 μορφή που σπάει εύκολα).
Να κρατάς το session_id στη βάση και να φτιάξεις μια καλή function check_login που θα την καλείς από κάθε σελίδα που προστατεύεις την πρόσβαση, που να ελέγχει κάθε φορά τα στοιχεία του χρήστη (από cookie) σε συνδυασμό με το session_id και να μην βασίζεσαι απλά σε μια session μεταβλητή που λέει $session['login']==1 (καλό θα ήταν το session_id να το επαναδημιουργείς τακτικά κατά την παραμονή του χρήστη στο site)

Μετά από αυτά μπορείς να πάς διακοπές λίγο πιο ήσυχος ότι η μεγάλη μερίδα των υποψήφιων hacker ή ίσως και των λίγο πιο προχωρημένων θα μείνουν έξω από το site του και θα στραφούν σε κάποιο άλλο με λιγότερη προστασία.Οι hacker λειτουργούν μεθοδικά, μόλις βρουν ατέλεια στο CMS θα ψάξουν να βρουν σε ποια site χρησημοποιείται (κάνουν μια αναζήτηση για την υπογραφή σου created by ...... ) και θα επιτεθούν σε όλα ταυτόχρονα.

Ελπίζω να σε βοήθησα να σκεφτείς πιο σοβαρά την ασφάλεια του CMS σου.
Happy coding....
Μάρκος
http://lasernet.gr

servetas
Δημοσιεύσεις: 304
Εγγραφή: 01 Φεβ 2010 15:08
Επικοινωνία:

Ένα απλό User Login σε PHP

Δημοσίευση από servetas » 11 Μάιος 2013 15:31

Σε ευχαριστώ πολύ για την πρότασή σου. Το site που ετοιμάζω θα είναι για ένα event που πρόκειται να πραγματοποιήσω οπότε και θα είναι live μόνο για 1-2 μήνες και με πολύ στοχευμένο κοινό οπότε δεν νομίζω να αντιμετωπίσω κάποιο πρόβλημα. Ουσιαστικά έχω δουλέψει πάνω στο συγκεκριμένο log in και έχω κάνει αρκετές αλλαγές όσον αφορά τον έλεγχο για τα στοιχεία κτλ. Βέβαια ακόμα αντιμετωπίζω κάποια προβλήματα όπως το πως αποθηκεύονται τα στοιχεία στο cookie κτλ αλλά...που θα μου πάει, θα τα λύσω.

Όσον αφορά το πρόβλημα, fafos σε ευχαριστώ πολύ. Τελικά βρήκα αντίστοιχα πως θα το κάνω ψάχνοντας στο google, να 'σε καλά!

chris1988
Δημοσιεύσεις: 1
Εγγραφή: 14 Μαρ 2010 02:40

Ένα απλό User Login σε PHP

Δημοσίευση από chris1988 » 02 Ιαν 2014 14:21

Paidia enas filos mou eide auto to form kai ithele na to xrisimopoihsei kai mou todeikse na to riksw ena mati, epeidi tixainei namai php developer, to sigekrimeno form exei sql injection pou simenei oti kapoios pou kserei, mporei aneta na kanei paixnidi sto server sas/vasi dedomenon klp me poli eukolo tropo pou den tha eksigisw edw. To mono prama pou tha sas pw gia na diorthothei to thema, einai oti panta ma panta otan pername data stin mysql mesw formas pote den to pername san $_POST['data'] prepei panta na to "filtraroume" prin ginei post. Dld me liga logia prepei na kanoume px to password : $password = mysql_real_esxape_string($_POST['password']); i poli pio apla an to theloume sto query mesa os eksis : $sql="SELECT * FROM usertable WHERE `username` ='".mysql_real_escape_string($username)."' AND `password` = '".mysql_real_escape_string($password)."'";
Otidipote allo thelete peste mou an mporw na voithisw.

Άβαταρ μέλους
Alice_Cooper
Δημοσιεύσεις: 1947
Εγγραφή: 11 Μάιος 2007 00:33
Τοποθεσία: Ioannina
Επικοινωνία:

Ένα απλό User Login σε PHP

Δημοσίευση από Alice_Cooper » 03 Ιαν 2014 10:14

Vasika afto to script opos eipe kai o Banavas
ftiaxtike kathara san paradigma tou pos doulevei
to skeptiko .... pote den eipe o billit parte to kai stiste
mixanismo sto site sas.

tespa exoun ksana anaferthei afta ... http://www.freestuff.gr/forums/viewtopi ... 838#372838

Απάντηση

Επιστροφή στο “PHP τα δικά μας scripts”

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

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