Απλό Σύστημα Εγγραφής Χρηστών

Post Pic
στις 21.07.10. Kατηγορίες HTML, MySQL, PHP με 20 Σχόλια

Αναρωτηθήκατε ποτέ πως είναι ένα σύστημα πρόσβασης χρηστών σε μια ιστοσελίδα; Σε αυτό το βοήθημα λοιπόν θα δούμε πως μπορούμε να δημιουργήσουμε για αρχή ένα απλό σύστημα εγγραφής χρηστών, χρησιμοποιόντας απλές εντολές της PHP, λίγη SQL και HTML.

H Φόρμα Εγγραφής

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

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

forma.php
<?php
session_start();
?>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Φόρμα Εισαγωγής στοιχείων</title>
</head>
<body>
<pre>
<form action="register.php" method="get" >
Όνομα : <input name="name" style="background:#3281C0" /><br />
Κωδικός:<input name="name" style="background:#3281C0"  /><br />
Email : <input name="email"  style="background:#3281C0"  />
<br />
<input value="Καταχωρηση" />
<?php
if (isset($_SESSION['errors'])){
echo $_SESSION['errors'];
}
else
echo $_SESSION['error2']; ?>
</pre>
</form>
</body>
</html>

Η Βάση Δεδομένων

Έπειτα θα χρειαστούμε μια βάση δεδομένων στην οποία θα καταχωρήσουμε τα στοιχειά που θα εισάγουν οι χρήστες

Ας δούμε λοιπόν πως θα δημιουργήσουμε αυτή την βάση :

Δημιουργία βάσης :

CREATE DATABASE `Greektuts` ;

έπειτα αφού επιλέξουμε την βάση δημιουργούμε έναν πίνακα:

Δημιουργία πίνακα:

CREATE TABLE `Greektuts`.`Register` (
`Name` VARCHAR( 40 ) NOT NULL ,
`Password` VARCHAR( 40 ) NOT NULL ,
`Email` VARCHAR( 60 ) NOT NULL ,
PRIMARY KEY ( `Name` )
) ENGINE = MYISAM ;

Έτσι έχουμε δημιουργήσει την βάση μας και τον πίνακα μας .

Διαχείρηση Δεδομένων

Τώρα το κομμάτι του κώδικα που θα διαχειριστεί τα δεδομένα:

Δημιουργούμε ένα αρχείο php με όνομα register.php

Για αρχή θα δημιουργήσουμε μια function για να διαχειριζόμαστε την σύνδεση μας με την βάση

<?php
function db_con(){
$connection=mysql_connect("$localhost","$db_username","db_password") or die("Δεν επιτεύχθηκε η σύνδεση");
$db_selct=mysql_select_db($db_name,$connection) or die("Δεν επιτεύχθηκε η σύνδεση με τον πίνακα ");
}
?>

Λοιπόν δημιουργήσαμε μια μέθοδο για να μπορούμε να την καλούμε όποτε εμείς θέλουμε

Ας δούμε αναλυτικά τι κάναμε μέχρι στιγμής

Είναι ο κώδικας σύνδεσης στην βάση

$connection=mysql_connect("$localhost","$db_username","db_password") or die("Δεν επιτεύχθηκε η σύνδεση");

Σημαντικό*

Αντικαταστήστε το $localhost,$db_username,$db_password και παρακάτω το $db_name

με τα δικά σας στοιχειά ένα παράδειγμα :

$connection=mysql_connect("localhost","root","") or die("Δεν επιτεύχθηκε η σύνδεση");

Η σύνδεση αυτή καθορίζει το όνομα της βάσης την οποία θέλουμε να επιλέξουμε

$db_selct=mysql_select_db($db_name,$connection) or die("Δεν επιτεύχθηκε η σύνδεση με τον πίνακα ");

Έπειτα προχωράμε παρακάτω :

<?php
session_start();
$name = $_POST['name'];
$pass = $_POST['password'];
$email = $_POST['email'];
if(isset($_POST['submit'])){
unset($_SESSION['errors']);
if(empty($name)){
$_SESSION['errors']=" Το πεδίο όνομα θα πρέπει να συμπληρωθεί ";
}
if(empty($pass)){
$_SESSION['errors'].=" Το πεδιο κωδικός θα πρέπει να συμπληρωθεί ";
}
if(empty($email)){
$_SESSION['errors'].=" Το πεδιο email θα πρεπει να συμπληρωθει ";
}

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

Ας το πάρουμε κομμάτι κομμάτι

session_start();

αυτή η μέθοδος θα μας χρησιμεύσει αργότερα για την επιστροφή μηνυμάτων στον χρήστη .

Ο παρακάτω κώδικας ελέγχει αν έχει “πατηθεί “ το κουμπί Καταχώρησε αν όντως έχει “πατηθεί”

τότε βγάζει όλα τα δεδομένα από το $_SESSION['errors'] ώστε να μην έχουμε κολλήματα αργότερα

if(isset($_POST['submit'])){
unset($_SESSION['errors']);

Εδώ κάνουμε έναν έλεγχο από τους πιο απλούς που θα μπορούσατε να κάνετε

ελέγχουμε αν το πεδίο όνομα είναι άδειο αν ναι τότε εκχωρούμε μέσα στο $_SESSION  το ακόλουθο μήνυμα. Το ίδιο γίνετε για όλα τα πεδία τα οποία θέλουμε να ελέγξουμε.

if(empty($name)){
$_SESSION['errors']=" Το πεδίο όνομα θα πρέπει να συμπληρωθεί ";
}

Παρατήρηση στο δεύτερο έλεγχο και ούτω κάθε ξης βάζουμε μια . πριν το =

Τέλος προσθέτουμε λίγο ακόμη έλεγχο και είμαστε έτοιμοι

if(!isset($_SESSION['errors'])){
db_con();
$query=mysql_query("SELECT * FROM register where Name='$name' ") or die("Κάτι πήγε στραβά");
$check=mysql_num_rows($query);
if($check >0){
$_SESSION['error2']="Το όνομα χρήστη $name υπάρχει ήδη στην βάση ";
header( "Location: forma.php" );
}
else {
$query=("INSERT INTO register (Name, Password,Email) VALUES ('$name', '$pass', '$email')");
$insert=mysql_query($query);
}
}
else {
header( "Location: forma.php" );
}
}

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

Μπορείτε να κατεβάσετε τα αρχεία του βοηθήματος εδώ

download



Tags: , , , , , , ,

Jimakos { Προσωπική Ιστοσελίδα / Άρθρα Στο GreekTuts }
Ο Δημήτρης είναι απόφοιτος ΙΕΚ και ασχολείται με την PHP εδω και ένα μίση χρόνο.

20 Σχόλια στο άρθρο Απλό Σύστημα Εγγραφής Χρηστών

Επόμενα σχόλια →
  • alex says:

    egw den xrisimopoeiw kapoion sigkekrimeno editor…me wordpad t kanw,…. peirazei?

  • Μια παρένθεση

    εκει που είναι ο κώδικας
    if(emptyempty($name))
    είναι μια φορα το empty
    if(empty($name)){}
    Μαλλον τυπογραφικό
    Πιστεύω πως αν μελετήσετε και τα προηγούμενα Βοηθήματα περι php mysql τοτε θα σας φανει παιχνιδάκι
    επίσης θα προτεινα να διαβάσετε με προσοχή το αρθρο και αν δεν καταλαβέτε κατι ριξτε μια ματιά στο τελικό αρχείο.
    Για ότι αλλο είμαστε εδω για απαντήσεις .

  • OK, θα δω τι μπορώ να κάνω. :)
    Ευχαριστώ.

  • Pantso says:

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

  • Αυτό είναι ΑΠΛΌ; :P Τότε το σύνθετο πως είναι; :P
    Όλοι αυτοί οι κώδικες που μπαίνουν;

  • Pantso says:

    Ποιόν editor χρησιμοποιείς? Συνήθως οι ιδιότητες κωδικοποίησης λέγονται Encoding Options

  • alex says:

    kai pws t vlepw auto?. aaa prin kanw format ta arxeia .php ta evlepe san anagnorisima arxeia kodika.. tora m ta blepei san ksena.. den kserei me t na t aniksei

  • Pantso says:

    Απότι καταλαβαίνω υπάρχει θέμα με την κωδικοποίηση των χαρακτήρων. Δοκίμασε να δείς αν έχει UTF-8

  • alex says:

    otan patao kataxorisi mou bgazei auto

    "; } if(empty($pass)){ $_SESSION['errors'].=" Το πεδιο κωδικος θα πρεπει να συμπληρωθει"."
    "; } if(empty($email)){ $_SESSION['errors'].=" Το πεδιο email θα πρεπει να συμπληρωθει "."
    "; } if(!isset($_SESSION['errors'])){ db_con(); $query=mysql_query("SELECT * FROM register where Name='$name' ") or die("Κατι πηγε στραβα"); $check=mysql_num_rows($query); if($check >0){ $_SESSION['error2']="Το ονομα χρηστη $name υπαρχει ηδη στην βαση "; header( "Location: forma.php" ); } else { $query=("INSERT INTO register (Name, Password,Email) VALUES ('$name', '$pass', '$email')"); $insert=mysql_query($query); } } else { header( "Location: forma.php" ); } }

  • Pingback: Tweets that mention Απλό Σύστημα Εγγραφής Χρηστών | GreekTuts -- Topsy.com

Επόμενα σχόλια →

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>