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

php εγγραφές


TsikalidisAlex

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

Δημοσ.

Γεια σας, έχω φτιάξει ένα site σε php και το σύνδεσα με μια mysql βάση που έφτιαξα μέσω του phpmyadmin. Η δουλειά του site είναι, εμφανίζεται το index.php αρχείο, όπου ο χρήστης δίνει ένα username κι ένα password, αν αυτά τα στοιχεία δεν υπάρχουν στην βάση, τότε εμφανίζεται μια σελίδα Error, αν υπάρχουν όμως αυτά, κι είναι σωστά ...τότε του εμφανίζεται η αρχική σελίδα του διαδικτυακού μου τόπου. Θα ήθελα τώρα έτσι όπως του ανοίγει η αρχική σελίδα, πάνω σε ένα πίνακα για παράδειγμα να λέει "Γεια σου χρήστη" και δίπλα ακριβώς το όνομα που έδωσε σαν username...πως μπορεί να γίνει αυτό...?

Κι επίσης στο index.php αρχείο να υπάρχει μια φόρμα και με το που την συμπληρώνει ο χρήστης τα στοιχεία που έδωσε να ελέγχονται αν υπάρχουν στην βάση τότα να βγάζει error, αλλιώς να λέει ότι καταχωρήθηκαν επιτυχώς, όμως με το που θα καταχωρυθούν να μην έχει ακόμη την ευκαιρία εισόδου στο site μου...με λίγα λόγια τα στοιχεία του να είναι απενεργοποιημένα, μέχρι να μπω εγώ στην βάση και να τα ενεργοποιήσω...

Δημοσ.

Για το πρώτο ερώτημα σου:

 

Θα πρέπει να χρησιμοποιήσεις 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 και ειδικά σε τέτοιες εφαρμογές ...

Δημοσ.
Για το πρώτο ερώτημα σου:

 

Θα πρέπει να χρησιμοποιήσεις 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 ----------

 

θα μου απαντησεις...?

Δημοσ.

Δε ξέρω ακριβώς πως το χεις κανει για να σου πω συγκεκριμένα οπότε θα σου πω την λογική. Καταρχειν αυτο το κομμάτι κώδικα που βλέπεις αντιστοιχεί στο αρχείο που έχεις για την είσοδο χρήστη πχ 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. Μ αυτον τον τρόπο αν ασχοληθείς λεπτομερώς θα μπορέσεις να φτιάξεις και περιοχές περιορισμένης πρόσβασης , μόνο για τα μέλη δηλαδη.

Δημοσ.

χμμμ, κάτι έπιασα από αυτά που μου είπες...σ' ευχαριστώ και πάλι...

ρίξε μια ματιά εδώ, http://www.phpeasystep.com/phptu/6.html ...από εδώ πήρα τον κώδικο και δημιούργησα τα αρχεία μου...αν μπορείς μελέτησε αυτά τα αρχεία και αν μπορέσεις πες μου που μπορώ να τοποθετήσω και ποιον κώδικα...γιατί δοκίμασα κάτι αλλά απέτυχε...

Δημοσ.

Με ποια προχειρη ματια που εριξα σωστή είναι η λογική. Δεν εχω χρονο να τα δοκιμασω. Τι εννοεις που να τοποθετησεις και ποιον κώδικα? ουσιαστικά αυτό που σου είπα κι εγώ κάνει.

Εχε υπ'όψιν σου οτι αν τα δοκιμάζεις τοπικά στον υπολογιστή , στο login ίσως σου βγάζει κάποιο μήνυμα ότι δεν έχεις δικαίωμα να εκτελέσεις μια εντολή απ τον σέρβερ . (Το αναφέρω αυτό μηπως και εννοείς κάτι τέτοιο οταν λες ότι δε σου δούλεψε)

Δημοσ.

όχι, όχι...ο κώδικας λειτουργεί άψογα απλά εγώ θέλω να μου πεις που να προσθέσω και ποιον ακριβώς κώδικα για να εμφανίζεται στο login_success.php δηλαδή στην αρχική, μόλις κάνει είσοδο ο χρήστης...να λέει κάπου το όνομα με το οποίο συνδέθηκε...

Δημοσ.

Στην αρχή της σελίδας κάνεις

<?php session_start(); ?>

 

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

 

<?php echo $_SESSION['username'] ;?>

 

---------- Προσθήκη στις 21:34 ---------- Προηγούμενο μήνυμα στις 21:33 ----------

 

Antonisd Μάλλον πέσαμε μαζί .... :)

Δημοσ.
Antonisd Μάλλον πέσαμε μαζί .... :)

 

Ναι :P:p

 

Παρεμπιπτόντως έχει ήδη βάλει στο αρχείο του

<?php

session_start(); .

Δημοσ.

Σας ευχαριστώ πάρα πολύ για τις απαντήσεις...το έκανα...και δουλεύει άψογα...ευχαριστώ για τον χρόνο σας...και κάτι τελευταίο...θέλω να κατασκευάσω μια φόρμα που να κάνει εισαγωγή στοιχείων στην βάση...το μόνο που θέλω είναι ο κώδικας σε php...που θα κάνει την εισαγωγή...

Δημοσ.
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']);

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...