Διαχείριση Χρηστών No1

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

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

Απάντηση
Άβαταρ μέλους
crackman
Δημοσιεύσεις: 339
Εγγραφή: 26 Μαρ 2003 01:19
Τοποθεσία: Ιωάννινα, Αμαρτίας 69 ημιόροφος. Ο τελευταίος να κλείσει την πόρτα! Το κουδούνι είναι χαλασμένο :P

Διαχείριση Χρηστών No1

Δημοσίευση από crackman » 13 Οκτ 2003 21:28

Καλησπέρα σας.

Θα ήθελα κι εγώ να παρουσιάσω ένα απλό σχετικά Tutorial για διαχείριση χρηστών.
---------------------------------------------------------------------------------------------------------
Χαρακτηριστικά:
Τι βαθμό δυσκολίας έχει? Μικρό (για αρχάριους)
Χρήσημοποιεί MySQL? ΝΑΙ
Πόση ώρα θα μου πάρχει? ~10 λεπτά
--------------------------------------------------------------
Τι χρειάζομαι?
Έναν PHP Editor ή ένα απλό Notepad.
--------------------------------------------------------------
Συνολικά αρχεία: 4
1) db.php -> το αρχείο που περιέχει όλα τα δεδομένα για τη σύνδεση με τη βάση δεδομένων.
2) header.php -> αν θέλουμε να έχουμε τίτλο-ISO-Style... για τη σελίδα μας.
3) admin.php -> το κύριο αρχείο
4) footer.php -> το τέλος της σελίδας μας
--------------------------------------------------------------
Λεπτομέρειες και για το πως θα μοιάζει μέχρι τώρα: Πατήστε εδώ
--------------------------------------------------------------

Πρώτα από όλα θα φτιάξουμε τον πίνακα στη Βάση Δεδομένων μας.
Για το παράδειγμά μου χρησιμοποιώ μόνο 3 πεδία.
id -> που αυξάνετε αυτόματα με κάθε εγγραφή και είναι μοναδικό.
uname -> για να συγκρατεί το όνομα χρήστη
password -> για να συγκρατεί τον κωδικό πρόσβασης.

users.sql

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

DROP TABLE IF EXISTS `users`; 
CREATE TABLE `users` ( 
  `id` int(11) NOT NULL auto_increment, 
  `uname` varchar(30) default NULL, 
  `password` varchar(30) default NULL, 
  PRIMARY KEY  (`id`) 
) TYPE=MyISAM DEFAULT CHARSET=greek COLLATE=greek_general_ci; 
--------------------------------------------------------------
Μετά πάμε να φτιάξουμε το αρχείο που θα περιέχει τα δεδομένα για τη σύνδεση με τη βάση δεδομένων.

db.php

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

<? 
$db_server = "localhost";  // Συνήθως είναι localhost, αλλά μπορεί να είναι και μια URL. 
$db_name   = "DBname";     // Το όνομα της βάσης δεδομένων - ότι θέλτε εσείς πχ. users 
$db_uname  = "DBusername"; // Όνομα χρήστη 
$db_pass   = "DBpassword"; // & κωδικός πρόσβασης για τη σύνδεση με τη βάση δεδομένων 
$db_users  = "users";      // ο πίνακας στη βάση δεδομένων - ότι θέλτε εσείς πχ. users, 
                           // αλλά θα πρέπει να ταιριάζει με το users.sql 

mysql_connect&#40;"$db_server","$db_uname","$db_pass"&#41;; 
mysql_select_db&#40;$db_name&#41;; 

?>
--------------------------------------------------------------
για να μην μεγαλώνω το post και χαθήτε, το heder.php & footer.php θα τα βρείτε εδώ...
--------------------------------------------------------------

Ώρα για το κυρίως αρχείο...
admin.php
<?php
require "db.php"; // το αρχείο που περιέχει όλα τα δεδομένα για τη σύνδεση με τη βάση δεδομένων.

include "header.php"; // Απλά αν θέλουμε να έχουμε τίτλο-ISO-Style... για τη σελίδα μας.
if ($action == "add") AddUser(); // Function AddUser -> Για να προσθέσουμε έναν χρήστη
//**************************** Δεν χρησιμοποιούντε ακόμη, Θα τα μάθουμε σε επόμενη φάση :wink: **************************//
else if ($action == "edit") EditUser(); // Function EditUser -> Για να επεξεργαστούμε τα δεδομένα ενός χρήστη
else if ($action == "delete") DeleteUser(); // Function DeleteUser -> Για να διαγράψουμε έναν χρήστη
//***********************************************************************************************************//
else Nothing(); // Είναι το κεντρικό μενού (ας πούμε). Αυτό που θα βλέπετε κατά την προσπέλαση του αρχείου.
include "footer.php"; // το τέλος της σελίδας μας

function Nothing()
{
?>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td width="100%" align="left"><a href="<?=$GLOBALS['PHP_SELF'];?>?action=add">Προσθήκη Χρήστη</a></td>
</tr>
</table>
<hr size="1" color="#003063" width="100%">
<?
$stuff = mysql_query("SELECT * FROM ".$GLOBALS['db_users']."") or die("<b>Λάθος:</b> ".mysql_error());
$free = mysql_fetch_array($stuff);
if(empty($free))
{
?>
<font color="#C00000"><strong>Δεν υπάρχει εγγραφή στον πίνακα !</strong></font>
<?
}
else
{
?>
<table width="50%" cellspacing="0" cellpadding="0" border="1">
<tr bgcolor="lightblue">
<td>&Επεξεργασία/Διαγραφή</td>
<td>&Όνομα Χρήστη</td>
<td>&Κωδικός Πρόσβασης</td>
</tr>
<?
$stuff = mysql_query("SELECT * FROM ".$GLOBALS['db_users']." ORDER BY id DESC") or die("<b>Λάθος:</b> ".mysql_error());
while ($free = mysql_fetch_array($stuff)) // όσο θα βρίσκει εγγραφές στον πίνακά μας,
{ // θα σχηματίζει τον παρακάτω πίνακα.
$x++;
if($x == 2){$x=0;$bgcolor ="#D3DCE3";} else $bgcolor = "#FFFFFF"; // αν θέλουμε να έχουμε διαφορετικά χρώμματα για κάθε κελί του πίνακα.
?>
<tr style="background-color:<?=$bgcolor;?>;">
<td>&<a href="<?=$GLOBALS['PHP_SELF'];?>?action=edit&id=<?=$free[id];?>" title="Επεξεργασία χρήστη: <?=$free[uname];?>">[+]</a> /
<a href="<?=$GLOBALS['PHP_SELF'];?>?action=delete&id=<?=$free[id];?>" title="Διαγραφή χρήστη: <?=$free[uname];?>">[x]</a></td>
<td>&<?=$free[uname];?></td>
<td>&<?=$free[password];?></td>
</tr>
<?
}
?>
</table>
<?
}
}

function AddUser()
{
$stuff = mysql_query("SELECT uname FROM ".$GLOBALS['db_users']." WHERE uname='".$GLOBALS['username']."'");
$free = mysql_fetch_array($stuff); // Επιλέγουμε το όνομα χρήστη από τον πίνακα users για να κάνουμε έλεγχο
// παρακάτω αν υπάρχει ήδη ένας χρήστης με το όνομα χρήστη που θα επιλέξουμε.

// Τώρα θα κάνουμε μερικούς ελέγχους για να βρούμε λάθη-παραλήψεις
// καθώς και αν υπάρχει ήδη το όνομα χρήστη που επιλέξαμε.
if($_POST['confirm'] == "true") // Ελέγχει αν ζητήσαμε την αποδοχή της φόρμας
if(empty($_POST['username'])) // 1) Αν είναι κενό το πεδίο όνομα χρήστη
{
echo "<script type=\"text/javascript\">alert('To πεδίο \"Όνομα Χρήστη\" είναι κενό!');</script>"; // <- βγάζει το μήνυμα
unset($_POST['confirm']); // και μας επιστρέφει στη φόρμα εγγραφής.
}
else if(empty($_POST['pass'])) // 2) Αν είναι κενό το πεδίο κωδικός πρόσβασης
{
echo "<script type=\"text/javascript\">alert('Το πεδίο \"Κωδικός Πρόσβασης\" είναι κενό!');</script>"; // <- το ανάλλογο μήνυμα.
unset($_POST['confirm']); // και μας επιστρέφει στη φόρμα εγγραφής.
}
else if($free[uname] == $GLOBALS['username']) //3) Αν υπάρχει ήδη ένα όνομα χρήστη με αυτό που επιλέξαμε
{
echo "<script type=\"text/javascript\">alert('Το όνομα χρήστη που επιλέξατε, χρησιμοποιείτε ήδη. Παρακαλούμε επιλέξτε κάποιο άλλο.');</script>"; // <- το ανάλλογο μήνυμα.
unset($_POST['confirm']); // και μας επιστρέφει στη φόρμα εγγραφής, χωρίς να κάνει καμία αποθήκευση.
}

if($_POST['confirm'] == "true") // Σε περίπτωση που δεν ισχύει τίποτα από τα παραπάνω,
{ // δηλ δεν υπάρχει κενό πεδίο ή το όνομα χρήστη δεν υπάρχει στη βάση δεδομένων,
mysql_query("INSERT INTO ".$GLOBALS['db_users']." VALUES(0,'".$_POST['username']."','".$_POST['pass']."')") or die("error");
// αποθηκεύουμε το επιλεγμένο όνομα χρήστη και των κωδικό που επιλέξαμε.
echo "<script type=\"text/javascript\">alert('Ο χρήστης: ".$_POST['username']." προστέθηκε στη βάση δεδομένων !');</script>";
// αν δεν θέλετε να εμφανίζετε κάποιο μήνυμα, απλά βάλτε // πρίν από το echo "<script type...";
Nothing(); // αφού αποθηκεύσαμε, επιστρέφουμε στην κεντρική σελίδα.
}
else // Ακολουθεί η φόρμα εγγραφής
{
?>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td width="100%" align="left"><a href="<?=$GLOBALS['PHP_SELF'];?>">Κεντρικό Μενού</a></td>
</tr>
</table>
<hr size="1" color="#003063" width="100%">
<table border="0" width="50%" cellspacing="0" cellpadding="0" border="0">
<form action="<?=$GLOBALS['PHP_SELF'];?>" method="post">
<tr>
<td width="50%">Όνομα Χρήστη:</td>
<td width="50%"><input type="text" name="username" size="20"></td>
</tr>
<tr>
<td width="50%">Κωδικός Πρόσβασης:</td>
<td width="50%"><input type="password" name="pass" size="20"></td>
</tr>
<tr>
<td align="center" width="100%" colspan="2">
<input type="hidden" name="action" value="add"/>
<input type="hidden" name="confirm" value="true"/>
<br/>
<input type="submit" value="Αποδοχή"></td>
</tr>
</form>
</table>
<?
}
}

function EditUser()
{
echo "Υπομονή ως το επόμενο μάθημα...";
echo "<meta http-equiv=\"refresh\" content=\"2; url=admin.php\">";
}

function DeleteUser()
{
echo "Υπομονή ως το επόμενο μάθημα...";
echo "<meta http-equiv=\"refresh\" content=\"2; url=admin.php\">";
}
?>
--------------------------------------------------------------
ΣΗΜΕΙΩΣΗ Νο1: Για να μην μπερδευτείτε, καλό είναι να χρησιμοποιείσετε τα ονόματα των αρχείων όπως τα έχω και αν είστε σίγουρος για κάποια αλλαγή, μπορείτε να προχωρίσετε. :wink:
ΣΗΜΕΙΩΣΗ Νο2: Δεν έδωσα σημασία στο σχεδιασμό. Μπορείτε να το διαμορφώσετε σύμφωνα με την προτίσμησή σας.

Δεκτές όποιες ερωτήσεις, απορείες, παρατησίσεις.
Καλή τύχη. :pint:
---------------------------------------------------------------------------
Υ.Γ.: Κάποια στιγμή μόλις ολλοκληρώσουμε το Tutorial, θα το έχω και σε μορφή zip να το έχετε στο αρχείο σας.

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Διαχείριση Χρηστών No1

Δημοσίευση από Basilakis » 10 Δεκ 2005 14:24

Leipei ena arxeio h egw kanw lathos?

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27617
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Διαχείριση Χρηστών No1

Δημοσίευση από cordis » 11 Δεκ 2005 12:59

header.php

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

<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-7">
</HEAD>
<body>
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

kostas-theod
Δημοσιεύσεις: 222
Εγγραφή: 11 Ιαν 2004 09:15
Τοποθεσία: Πάτρα-ΕΛΛΑΔΑ

Διαχείριση Χρηστών No1

Δημοσίευση από kostas-theod » 29 Μαρ 2006 11:00

Λείπει και το footer.php

Δεν το βρίσκω στο συνδεσμο που λέει. Δεν λειτουργει. Τι μπορούμε να κάνουμε.

Ευχαριστώ ,

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Διαχείριση Χρηστών No1

Δημοσίευση από Basilakis » 02 Απρ 2006 12:01

footer.php

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

</body>
</html>

Άβαταρ μέλους
mixalis_35
Δημοσιεύσεις: 29
Εγγραφή: 29 Μάιος 2006 20:40

Διαχείριση Χρηστών No1

Δημοσίευση από mixalis_35 » 29 Μάιος 2006 21:23

:P ΚΑΛΗΣΠΕΡΑ ΚΑΙ ΕΙΜΑΙ ΚΑΙΝΟΥΡΓΙΟΣ ΣΤΟ FORUM ΘΑ ΗΘΕΛΑ ΑΝ ΜΠΟΡΕΙΣ ΝΑ ΒΕΛΕΙΣ
ΤΟ ΑΡΧΕΙΟ ΟΛΟΚΛΗΡΟ ΣΕ ΕΝΑ ZIP ΘΑ ΜΕ ΒΟΗΘΗΣΗΣ ΠΑΡΑ ΠΟΛΥ ΕΥΧΑΡΙΣΤΩ

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

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

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