TsikalidisAlex Δημοσ. 8 Μαρτίου 2010 Δημοσ. 8 Μαρτίου 2010 Γεια σας, έχω φτιάξει ένα site σε php και το σύνδεσα με μια mysql βάση που έφτιαξα μέσω του phpmyadmin. Η δουλειά του site είναι, εμφανίζεται το index.php αρχείο, όπου ο χρήστης δίνει ένα username κι ένα password, αν αυτά τα στοιχεία δεν υπάρχουν στην βάση, τότε εμφανίζεται μια σελίδα Error, αν υπάρχουν όμως αυτά, κι είναι σωστά ...τότε του εμφανίζεται η αρχική σελίδα του διαδικτυακού μου τόπου. Θα ήθελα τώρα έτσι όπως του ανοίγει η αρχική σελίδα, πάνω σε ένα πίνακα για παράδειγμα να λέει "Γεια σου χρήστη" και δίπλα ακριβώς το όνομα που έδωσε σαν username...πως μπορεί να γίνει αυτό...? Κι επίσης στο index.php αρχείο να υπάρχει μια φόρμα και με το που την συμπληρώνει ο χρήστης τα στοιχεία που έδωσε να ελέγχονται αν υπάρχουν στην βάση τότα να βγάζει error, αλλιώς να λέει ότι καταχωρήθηκαν επιτυχώς, όμως με το που θα καταχωρυθούν να μην έχει ακόμη την ευκαιρία εισόδου στο site μου...με λίγα λόγια τα στοιχεία του να είναι απενεργοποιημένα, μέχρι να μπω εγώ στην βάση και να τα ενεργοποιήσω...
antonisid Δημοσ. 8 Μαρτίου 2010 Δημοσ. 8 Μαρτίου 2010 Για το πρώτο ερώτημα σου: Θα πρέπει να χρησιμοποιήσεις Sessions. Δηλαδή αφου κάνει login o χρήστης (υποθέτουμε οτι έδωσε σωστά στοιχεία) : <?php session_start(); if (!$_SESSION["valid_user"]) { // User not logged in, redirect to login page Header("Location: login.php"); } $_SESSION["valid_user"] = $_POST["username"]; echo "<p>User ID: " . $_SESSION["valid_user"]; Γενικά , τα Sessions είναι το Α και το Ω , στην php και ειδικά σε τέτοιες εφαρμογές ...
TsikalidisAlex Δημοσ. 8 Μαρτίου 2010 Μέλος Δημοσ. 8 Μαρτίου 2010 Για το πρώτο ερώτημα σου: Θα πρέπει να χρησιμοποιήσεις Sessions. Δηλαδή αφου κάνει login o χρήστης (υποθέτουμε οτι έδωσε σωστά στοιχεία) : <?php session_start(); if (!$_SESSION["valid_user"]) { // User not logged in, redirect to login page Header("Location: login.php"); } $_SESSION["valid_user"] = $_POST["username"]; echo "<p>User ID: " . $_SESSION["valid_user"]; Γενικά , τα Sessions είναι το Α και το Ω , στην php και ειδικά σε τέτοιες εφαρμογές ... Γεια σου και σ' ευχαριστώ παρα πολύ για την απάντηση...αυτός ο κώδικας που μου έδωσες είναι σωστός? Σε ποιο αρχείο php πρέπει να το μεταφέρω...? Συγνώμη κι όλας για τις πολλές ερωτήσεις αλλάείμαι καινούργιος στο χώρο, και τώρα μαθαίνω...και μ' αρέσουν πολύ τέτοιες εφαρμογές... ---------- Προσθήκη στις 18:26 ---------- Προηγούμενο μήνυμα στις 18:09 ---------- Γεια σου και σ' ευχαριστώ παρα πολύ για την απάντηση...αυτός ο κώδικας που μου έδωσες είναι σωστός? Σε ποιο αρχείο php πρέπει να το μεταφέρω...? Συγνώμη κι όλας για τις πολλές ερωτήσεις αλλάείμαι καινούργιος στο χώρο, και τώρα μαθαίνω...και μ' αρέσουν πολύ τέτοιες εφαρμογές... ---------- Προσθήκη στις 18:38 ---------- Προηγούμενο μήνυμα στις 18:26 ---------- θα μου απαντησεις...?
antonisid Δημοσ. 8 Μαρτίου 2010 Δημοσ. 8 Μαρτίου 2010 Δε ξέρω ακριβώς πως το χεις κανει για να σου πω συγκεκριμένα οπότε θα σου πω την λογική. Καταρχειν αυτο το κομμάτι κώδικα που βλέπεις αντιστοιχεί στο αρχείο που έχεις για την είσοδο χρήστη πχ login.php Αν ο χρήστης , βαλει λαθος τα στοιχειο τοτε με redirect μεταφερεται παλι στο login Header("Location: login.php"); Αν ειναι σωστα τοτε μεταφέρεται στην αρχική σελίδα header("Location:index.php); Νομιζα οτι ηξερες να χρησιμοποιεις sessions Οποτε δεν έβαλα λεπτομερώς τι γίνεται. Αν τα στοιχεια ειναι σωστά λοιπον θα δημιουργησεις 2 sessions τα οποια θα κραταν τα στοιχεια του χρηστη κατα την περιήγηση του στην σελιδα ώστε να είναι logged in. session_register("USERNAME"); session_register("USERID"); $_SESSION['USERNAME'] = $row['username']; (πεδίο της βάσης) $_SESSION['USERID'] = $row['id']; (πεδίο της βάσης) Αυτα πάνε μετα τον ελεγχο για το αν ειναι τα στοιχεια εισοδου σωστα που γινονται στην βαση δεδομενων. Στη συνεχεια για να ελεγχεις αν είναι συνεδεμενος ο χρηστης σε καθε αρχειο ωστε να γραφεις με echo ποιος ειναι θα βαλεις τα αρχικα που σου γραψα. <?php session_start(); if (!$_SESSION["USERNAME"]) { // User not logged in, redirect to login page Header("Location: login.php"); } echo "<p>User ID: " . $_SESSION["username"]; Σ αυτο το σημειο με την εντολή if ελέγχουμε αν υπαρχει το session με το id του χρήστη. Αν οχι κατευθυνόμαστε στο login , και αν είναι ήδη συνεδεμένος απλά τυπώνει το όνομα του. Δεν ειναι ολοκηρωμένα αυτά που σου εγραψα διότι δεν ξέρω πως έχεις κανει τα ερωτήματα προς την βάση , ή τα στοιχεία της φορμας για το login . Την λογική σου περιγράφω όσο πιο καλά μπορώ. Να θυμάσαι οτι πάντα σε κάθε αρχείο πρέπει να έχεις στην αρχή του κώδικα <?php session_start(); ώστε να χρησιμοποιεί τα sessions που δημιουργήθηκαν κανα το login. Μ αυτον τον τρόπο αν ασχοληθείς λεπτομερώς θα μπορέσεις να φτιάξεις και περιοχές περιορισμένης πρόσβασης , μόνο για τα μέλη δηλαδη.
TsikalidisAlex Δημοσ. 8 Μαρτίου 2010 Μέλος Δημοσ. 8 Μαρτίου 2010 χμμμ, κάτι έπιασα από αυτά που μου είπες...σ' ευχαριστώ και πάλι... ρίξε μια ματιά εδώ, http://www.phpeasystep.com/phptu/6.html ...από εδώ πήρα τον κώδικο και δημιούργησα τα αρχεία μου...αν μπορείς μελέτησε αυτά τα αρχεία και αν μπορέσεις πες μου που μπορώ να τοποθετήσω και ποιον κώδικα...γιατί δοκίμασα κάτι αλλά απέτυχε...
antonisid Δημοσ. 8 Μαρτίου 2010 Δημοσ. 8 Μαρτίου 2010 Με ποια προχειρη ματια που εριξα σωστή είναι η λογική. Δεν εχω χρονο να τα δοκιμασω. Τι εννοεις που να τοποθετησεις και ποιον κώδικα? ουσιαστικά αυτό που σου είπα κι εγώ κάνει. Εχε υπ'όψιν σου οτι αν τα δοκιμάζεις τοπικά στον υπολογιστή , στο login ίσως σου βγάζει κάποιο μήνυμα ότι δεν έχεις δικαίωμα να εκτελέσεις μια εντολή απ τον σέρβερ . (Το αναφέρω αυτό μηπως και εννοείς κάτι τέτοιο οταν λες ότι δε σου δούλεψε)
TsikalidisAlex Δημοσ. 8 Μαρτίου 2010 Μέλος Δημοσ. 8 Μαρτίου 2010 όχι, όχι...ο κώδικας λειτουργεί άψογα απλά εγώ θέλω να μου πεις που να προσθέσω και ποιον ακριβώς κώδικα για να εμφανίζεται στο login_success.php δηλαδή στην αρχική, μόλις κάνει είσοδο ο χρήστης...να λέει κάπου το όνομα με το οποίο συνδέθηκε...
antonisid Δημοσ. 8 Μαρτίου 2010 Δημοσ. 8 Μαρτίου 2010 Για δοκίμασε στο login_success.php κάπου στο body να βάλεις <?php echo "<p>welcome: " . $_SESSION['myusername']; ?>
Aztec Δημοσ. 8 Μαρτίου 2010 Δημοσ. 8 Μαρτίου 2010 Στην αρχή της σελίδας κάνεις <?php session_start(); ?> και στο σημείο που θέλεις να εμφανίσεις τον χρήστη <?php echo $_SESSION['username'] ;?> ---------- Προσθήκη στις 21:34 ---------- Προηγούμενο μήνυμα στις 21:33 ---------- Antonisd Μάλλον πέσαμε μαζί ....
antonisid Δημοσ. 8 Μαρτίου 2010 Δημοσ. 8 Μαρτίου 2010 Antonisd Μάλλον πέσαμε μαζί .... Ναι :p Παρεμπιπτόντως έχει ήδη βάλει στο αρχείο του <?php session_start(); .
Aztec Δημοσ. 8 Μαρτίου 2010 Δημοσ. 8 Μαρτίου 2010 Α δεν κοίταξα καθόλου τα αρχεία απάντησα γενικά στην ερώτηση
TsikalidisAlex Δημοσ. 8 Μαρτίου 2010 Μέλος Δημοσ. 8 Μαρτίου 2010 Σας ευχαριστώ πάρα πολύ για τις απαντήσεις...το έκανα...και δουλεύει άψογα...ευχαριστώ για τον χρόνο σας...και κάτι τελευταίο...θέλω να κατασκευάσω μια φόρμα που να κάνει εισαγωγή στοιχείων στην βάση...το μόνο που θέλω είναι ο κώδικας σε php...που θα κάνει την εισαγωγή...
Aztec Δημοσ. 8 Μαρτίου 2010 Δημοσ. 8 Μαρτίου 2010 mysql_query("INSERT INTO table1 (col1 ,col2 ,col3) values ('$var1','$var2','$var3')") or die(mysql_error()); Μην ξεχάσεις τις μεταβλητές που θα στείλεις να τις περάσεις πρώτα απο την function mysql_real_escape_string() σε περίπτωση που δίνονται απο τον χρήστη δηλαδή $year = mysql_real_escape_string($_POST['year']);
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.