Dark Dominion Δημοσ. 12 Μαΐου 2009 Δημοσ. 12 Μαΐου 2009 Αυτός είναι ο κώδικας της login.php ><?php session_start(); $err = $_GET['error']; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Login</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="style.css" rel="stylesheet" type="text/css" /> <script type="text/javascript"> /* <![CDATA[ */ function validateForm(){ var Username = document.getElementById('Username').value; var Password = document.getElementById('Password').value; if(Username.length < 4) { alert("Username must be at least 4 characters"); document.getElementById('Username').focus(); return false; } if(Password.length < 4) { alert("The password must be at least 4 characters"); document.getElementById('Password').focus(); return false; } } /* ]]> */ </script> </head> <body> <div id="container"> <div id="header"> <h1>**************************</h1> </div> <div id="menu"> <ul> <li><a href="index.php">Home</a></li> <li><a href="login.php">Login</a></li> <li><a href="search.php">Search</a></li> <li><a href="registeruser.php">Register Account</a></li> <li><a href="edituserinfo.php">Edit Account </a></li> </ul> </div> <div id="content"> <form id="login" method="post" action="checklogin.php" onsubmit="return validateForm()"> <table border ="0"> <tr> <td><label>Username</label></td> <td>:</td> <td><input maxlength="50" id="Username" name="Username" type="text" /></td> </tr> <tr> <td><label>Password</label></td> <td>:</td> <td><input maxlength="50" id="Password" name ="Password" type="password" /></td> </tr> <tr> <td><input name="Submit" type="submit" value="Submit" /></td> </tr> </table> </form> <br /> <?php if($err == 1) { echo("Username and/or password wrong"); } if($err == 2) { echo("You should login first in order to see this page"); } ?> </div> <div id="footer"> <p>© 2009, ********************************************</p> </div> </div> </body> </html> Αυτός είναι της checklogin.php > <?php require_once ("db.php"); $myusername=$_POST['Username']; $mypassword=$_POST['Password']; $sql="SELECT * FROM users WHERE Username='$myusername' and Password='$mypassword'"; $result=mysql_query($sql); $count=mysql_num_rows($result); if($count==1){ $_SESSION['Username']=$myusername; $_SESSION['Password']=$mypassword; header("location:index.php"); } else { header("Location: login.php?error=1"); die(); } ?> Αυτός είναι ο κώδικας της index.php ><?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>************************************</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="style.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="container"> <div id="header"> <h1>***************************</h1> </div> <div id="menu"> <ul> <li><a href="index.php">Home</a></li> <li><a href="login.php">Login</a></li> <li><a href="search.php">Search</a></li> <li><a href="registeruser.php">Register Account</a></li> <li><a href="edituserinfo.php">Edit Account</a></li> </ul> </div> <div id="content"> <p> Welcome</p> </div> <div id="footer"> <p>© 2009, ***************************************</p> </div> </div> </body> </html> Η edituserinfo.php είναι η εξής: ><?php session_start();?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Edit Information</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="style.css" rel="stylesheet" type="text/css" /> <script type="text/javascript"> /* <![CDATA[ */ function validateForm(){ var Password = document.getElementById('Password').value; var LastName = document.getElementById('LastName').value; var FirstName = document.getElementById('FirstName').value; var Age = document.getElementById('Age').value; var Gender = document.getElementById('Gender').value; var Hobbies = document.getElementById('Hobbies').value; var FavouriteColour = document.getElementById('FavouriteColour').value; var FavouriteArtists = document.getElementById('FavouriteArtists').value; if(Password.length < 4) { alert("The password must be at least 4 characters"); document.getElementById('Password').focus(); return false; } if(LastName.length < 3) { alert("Last name must be at least 3 characters"); document.getElementById('LastName').focus(); return false; } if(FirstName.length < 3) { alert("First name must be at least 3 characters"); document.getElementById('FirstName').focus(); return false; } if(isNaN(Age) || age <= 0 || age > 110) { alert("Age must be a positive number 1 - 110"); document.getElementById('Age').focus(); return false; } if(Gender.length < 4) { alert("Gender must be at least 4 characters"); document.getElementById('Gender').focus(); return false; } if(Hobbies.length < 5) { alert("Hobbies must be at least 5 characters"); document.getElementById('Hobbies').focus(); return false; } if(FavouriteColour.length < 3) { alert("Favourite Colour must be at least 3 characters"); document.getElementById('FavouriteColour').focus(); return false; } if(FavouriteArtists.length < 3) { alert("Favourite artists must be at least 3 characters"); document.getElementById('FavouriteArtists').focus(); return false; } } /* ]]> */ </script> </head> <body> <div id="container"> <div id="header"> <h1>***********************</h1> </div> <div id="menu"> <ul> <li><a href="index.php">Home</a></li> <li><a href="login.php">Login</a></li> <li><a href="search.php">Search</a></li> <li><a href="registeruser.php">Register Account</a></li> <li><a href="edituserinfo.php">Edit Account </a></li> </ul> </div> <div id="content"> <h2>Edit Information</h2> <?php require_once("db.php"); $myusername = $_SESSION['Username']; $mypassword = $_SESSION['Password']; $data = mysql_query ("SELECT * FROM users WHERE Username='$myusername' AND Password='$mypassword'") or die (mysql_error()); while ($info= mysql_fetch_array($data, MYSQL_ASSOC)) { $PID = $info['PID']; $Password = $info['Password']; $LastName = $info['LastName']; $FirstName = $info['FirstName']; $Age = $info['Age']; $Gender = $info['Gender']; $Hobbies = $info['Hobbies']; $FavouriteColour = $info['FavouriteColour']; $FavouriteArtists = $info ['FavouriteArtists']; } ?> <form id="editinfo" method="post" action="editinfo.php" onsubmit="return validateForm()"> <table border ="0"> <tr> <td><label>Password</label></td> <td>:</td> <td><input maxlength="50" name="Password" id="Password" value="<?php echo $Password ?>" type="password" /></td> </tr> <tr> <td><label>Last Name</label></td> <td>:</td> <td><input maxlength="50" name="LastName" id="LastName" value="<?php echo $LastName ?>" type="text" /></td> </tr> <tr> <td><label>First Name</label></td> <td>:</td> <td><input maxlength="50" name="FirstName" id="FirstName" value="<?php echo $FirstName ?>" type="text" /></td> </tr> <tr> <td><label>Age</label></td> <td>:</td> <td><input maxlength="50" name="Age" id="Age" value="<?php echo $Age ?>" type="text" /></td> </tr> <tr> <td><label>Gender</label></td> <td>:</td> <td><input maxlength="50" name="Gender" id="Gender" value="<?php echo $Gender ?>" type="text" /></td> </tr> <tr> <td><label>Hobbies</label></td> <td>:</td> <td><input maxlength="200" name="Hobbies" id="Hobbies" value="<?php echo $Hobbies ?>" type="text" /></td> </tr> <tr> <td><label>Favourite Colour</label></td> <td>:</td> <td><input maxlength="50" name="FavouriteColour" id= "FavouriteColour" value="<?php echo $FavouriteColour ?>" type="text" /></td> </tr> <tr> <td><label>Favourite Artists</label></td> <td>:</td> <td><input maxlength="50" name="FavouriteArtists" id="FavouriteArtists" value="<?php echo $FavouriteArtists ?>" type="text" /></td> </tr> <tr> <td><input name="Submit" type="submit" value="Submit" /></td> </tr> </table> </form> </div> <div id="footer"> <p>© 2009, **************************************************</p> </div> </div> </body> </html> Το πρόβλημα που έχω είναι ότι προσπαθώ να κάνω login με ένα χρήστη, κάνει κανονικά, αλλά μετά όταν κλικάρω στην edituserinfo.php για να κάνω edit τα στοιχεία του χρήστη βλέπω τα textboxes κενά. Μήπως ξέρει κάποιος πως μπορώ να το διορθώσω αυτό;
Uberalles_gr Δημοσ. 13 Μαΐου 2009 Δημοσ. 13 Μαΐου 2009 Με μία πρόχειρη και γρήγορη ματιά κάποιες δικιές μου "συμβουλές" 1ο) Κάθε χρήστης φαντάζομαι θα έχει ένα μοναδικό ID. Επομένως μπορείς αντί να έχεις 2 Session (μία για username και μία για Password) να έχεις μία Session που θα έχεις το μοναδικό ID του χρήστη 2ο) Για να δεις εάν τραβάς σωστά τα δεδομένα από την βάση, μπορεί να κάνεις το εξής : κάνε ένα echo το query (δλδ echo SELECT * FROM users WHERE Username='$myusername' AND Password='$mypassword') και ότι βγάλει το echo τρέχτο στην βάση σου να δεις εάν γυρίσει κάποιο αποτέλεσμα 3ο) Σε κάθε text που κάνεις echo την αντίστοιχη τιμή πρέπει να βάζεις και ; . Εσύ δεν βάζεις πουθενά. 4ο) Έστω εγώ είμαι ένα ΚΑΚΟΣ άνθρωπος. Δεν ξέρω username και password για να μπω στο σύστημα σου αλλά ξέρω ότι υπάρχει η edituserinfo.php ή main.php. Επομένως, εάν την γράψω στο URL φαντάζομαι θα μπω γιατί δεν είδα κανένα έλεγχο να κάνεις εάν κάποιος έχει κάνει login
nik1992 Δημοσ. 13 Μαΐου 2009 Δημοσ. 13 Μαΐου 2009 για το 2, δεν μπορεί απλά στην phpmyqdmin, στην καρτέλα sql να τρέξει τα query ? για το 4: εγώ σε μια αντίστοιχη εφαρμογή βάζω αυτό, > if(!session_is_registered(authenticated)){ header("location:index.php"); } το session είναι αυτό που ξεκίνησε όταν συνδέθηκε ο χρήστης, index.php η σελίδα σύνδεσης
Dark Dominion Δημοσ. 13 Μαΐου 2009 Μέλος Δημοσ. 13 Μαΐου 2009 Το έχω φτιάξει παιδιά θενκς για τις συμβουλές σας. Απλά είναι για εργασία και δεν προλαβαίνω να κάνω πολλά για ασφάλεια, το κοιτάζω πάντως μπας και...
Uberalles_gr Δημοσ. 13 Μαΐου 2009 Δημοσ. 13 Μαΐου 2009 για το 2, δεν μπορεί απλά στην phpmyqdmin, στην καρτέλα sql να τρέξει τα query ? για το 4: εγώ σε μια αντίστοιχη εφαρμογή βάζω αυτό, > if(!session_is_registered(authenticated)){ header("location:index.php"); } το session είναι αυτό που ξεκίνησε όταν συνδέθηκε ο χρήστης, index.php η σελίδα σύνδεσης Για το 1ο σου ερώτημα αυτό εννοώ. Δλδ θα δει τι θα του βγάλει ο κώδικας, τι query τρέχει στην σελίδα και μετά θα το τρέξει στην βάση δεδομένων του (phpmyadmin ή ....) για να δει τι θα του γυρίσει Όσον αφορά το 2ο σου ερώτημα πρέπει να ελέγχεις για κάθε σελίδα ένα έχει κάνει login o εκάστοτε χρήστης. Όπως επίσης και κάθε φορά που είτε κάνει logout είτε μπαίνει στην σελίδα που κάνει Login να μηδενίζεις τα SESSION που χρησιμοποιείς ---------- Το μήνυμα προστέθηκε στις 11:55 ---------- Το έχω φτιάξει παιδιά θενκς για τις συμβουλές σας. Εντέλει τι ήταν?
Dark Dominion Δημοσ. 13 Μαΐου 2009 Μέλος Δημοσ. 13 Μαΐου 2009 Το checklogin.php το έσωσα xωρίς bom και πρόσθεσα ένα start_session(); στην αρχή και έπαιξε.
Uberalles_gr Δημοσ. 13 Μαΐου 2009 Δημοσ. 13 Μαΐου 2009 Το checklogin.php το έσωσα xωρίς bom και πρόσθεσα ένα start_session(); στην αρχή και έπαιξε. Τι εννοείς το έσωσες χωρίς bom ? Και δίκιο έχεις στην checklogin.php ότι έλειπε το start_session();
Dark Dominion Δημοσ. 13 Μαΐου 2009 Μέλος Δημοσ. 13 Μαΐου 2009 Στο notepad++ το έκανα convert to utf8 without bom.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.