chrism4111 Δημοσ. 12 Αυγούστου 2010 Μέλος Δημοσ. 12 Αυγούστου 2010 Αν εννοεις αυτην την αλλαγη δεν παιζει.. το ιδιο κανει ακριβως..(βεβαια ειναι μια μικρη λεπτομερία > <?php if(!isset($_POST['username']) && !isset($_POST['password'])) { $error="Παρακαλώ πληκτρολογήστε Password και Username"; } else { mysql_pconnect("localhost","root",""); mysql_select_db("myproject"); $query = sprintf("SELECT * FROM users WHERE User_Name='%s'",mysql_real_escape_string($_POST["username"])); $results = mysql_query($query); $num = mysql_num_rows($results); if($num == 1) { $row = mysql_fetch_array($results); if($_POST['username'] == $row['User_Name'] && $_POST['password'] == $row['Password']) { session_start(); session_register('myapp'); $_SESSION['myapp']=$row['UserID']; } if(session_is_registered('myapp')) { header("Location:index.php"); } if($_POST['username'] != $row['User_Name'] || $_POST['password'] != $row['Password']) { $error="Το Username ή το Password είναι λάθος"; } } if($num <1) { $error="Το Username ή το Password είναι λάθος"; } } ?> <div class="login-form"> <form method="post" name="login_form" action="index.php?page=login"> <span class="login-text">Username:</span> <input class="input-text" type="text" name="username" /><br> <span class="login-text">Password :</span> <input class="input-text" type="password" name="password" /><input type="submit" value="Login" /> <?php if(isset($error)) { echo '<br><p><span class="error">'.$error.'</span></p>'; } ?> </form> </div>
routsounmanman Δημοσ. 12 Αυγούστου 2010 Δημοσ. 12 Αυγούστου 2010 >if($num<1){ $error="........Μυνυμα ταδε"; } } else { $error="Παρακαλω πληκτρολογηστε UserName και Password" } // Το else αυτο αντιστοιχει στο πρωτο if του ολοκληρωμένου κωδικα Εδώ έχεις ένα έξτρα { tag. Μήπως φταίει αυτό; Ή είναι ορθογραφικό λάθος; Έχεις τα warnings ενεργά; Για παρακολούθησέ το μήπως έχεις κάποιο warning στην $error.
chrism4111 Δημοσ. 12 Αυγούστου 2010 Μέλος Δημοσ. 12 Αυγούστου 2010 >if($num<1){ $error="........Μυνυμα ταδε"; } } else { $error="Παρακαλω πληκτρολογηστε UserName και Password" } // Το else αυτο αντιστοιχει στο πρωτο if του ολοκληρωμένου κωδικα Εδώ έχεις ένα έξτρα { tag. Μήπως φταίει αυτό; Ή είναι ορθογραφικό λάθος; Έχεις τα warnings ενεργά; Για παρακολούθησέ το μήπως έχεις κάποιο warning στην $error. Οχι δεν ειναι ορθογραφικο απλα ειναι συνεχεια και δεν φενετε το ανοιγμα. Ενεργα παντα τα ςαρνινγσ για να χερω τι μ γινετε . 0 warnings & 0 errors Ο ολοκληρομενος κωδικας ειναι στο προηγουμενο Post ...
routsounmanman Δημοσ. 12 Αυγούστου 2010 Δημοσ. 12 Αυγούστου 2010 Μπορεί να είναι πρόβλημα runtime. Δοκίμασε να βγάλεις τελείως το αρχικό if... else και αρχικοποίησε το $error ως >$error="Παρακαλώ πληκτρολογήστε Password και Username"; και στον μετέπειτα κώδικα αν όλα πάνε καλά, μηδένιζέ το...
chrism4111 Δημοσ. 23 Αυγούστου 2010 Μέλος Δημοσ. 23 Αυγούστου 2010 Μπορεί να είναι πρόβλημα runtime. Δοκίμασε να βγάλεις τελείως το αρχικό if... else και αρχικοποίησε το $error ως >$error="Παρακαλώ πληκτρολογήστε Password και Username"; και στον μετέπειτα κώδικα αν όλα πάνε καλά, μηδένιζέ το... Εφυγα για διακοπες και το ψιλοπαρατησα τωρα ηρθα και ελυσα το προβλημα . Ο τελικος κωδικας ειναι ο παρακάτω: > <?php $error=""; $submit=$_POST['submit']; if($submit){ include_once "functions.php"; connect(); $username=protect($_POST['username']); $password=protect($_POST['password']); $query = sprintf("SELECT * FROM users WHERE User_Name='%s'",mysql_real_escape_string($username)); $results = mysql_query($query); $num = mysql_num_rows($results); if($num == 1) { $row = mysql_fetch_array($results); if($username == $row['User_Name'] && md5($password) == $row['Password']) { session_start(); session_register('myapp'); $_SESSION['myapp']['user']=$row['UserID']; $_SESSION['myapp']['role']=$row['RoleID']; header("Location:index.php"); } if($password != $row['Password'] && $password !=null) { $error="Το Password είναι λάθος"; } if($password != $row['Password'] && $password ==null) { $error="Πληκτρολογείστε το Password"; } } else if($num <1) { if(isset($username) && $username != null) { $error="Το UserName είναι λάθος"; } if($username==null && isset($password)) { $error="Πληκτρολογείστε το UserName"; } if($password==null && $username==null) { $error="Πληκτρολογείστε το Username και το Password"; } } } ?> <div class="login-form"> <form method="post" name="login_form" action="index.php?page=login"> <span class="login-text">Username:</span> <input class="input-text" type="text" name="username" /><br> <span class="login-text">Password :</span> <input class="input-text" type="password" name="password" /><input type="submit" name="submit" value="Login" /> <?php if(isset($error)) { echo '<br><p><span class="error">'.$error.'</span></p>'; } ?> </form> </div> Και το αρχειο functions.php > <?php function protect($string) { $string=mysql_real_escape_string($string); $string=strip_tags($string); $string=addslashes($string); return $string; } function connect() { mysql_pconnect("localhost","root","") or die(mysql_error()); mysql_select_db("myproject"); } ?>
chrism4111 Δημοσ. 23 Αυγούστου 2010 Μέλος Δημοσ. 23 Αυγούστου 2010 Μπορεί να είναι πρόβλημα runtime. Δοκίμασε να βγάλεις τελείως το αρχικό if... else και αρχικοποίησε το $error ως >$error="Παρακαλώ πληκτρολογήστε Password και Username"; και στον μετέπειτα κώδικα αν όλα πάνε καλά, μηδένιζέ το... Εφυγα για διακοπες και το ψιλοπαρατησα τωρα ηρθα και ελυσα το προβλημα . Ο τελικος κωδικας ειναι ο παρακάτω: > <?php $error=""; $submit=$_POST['submit']; if($submit){ include_once "functions.php"; connect(); $username=protect($_POST['username']); $password=protect($_POST['password']); $query = sprintf("SELECT * FROM users WHERE User_Name='%s'",mysql_real_escape_string($username)); $results = mysql_query($query); $num = mysql_num_rows($results); if($num == 1) { $row = mysql_fetch_array($results); if($username == $row['User_Name'] && md5($password) == $row['Password']) { session_start(); session_register('myapp'); $_SESSION['myapp']['user']=$row['UserID']; $_SESSION['myapp']['role']=$row['RoleID']; header("Location:index.php"); } if($password != $row['Password'] && $password !=null) { $error="Το Password είναι λάθος"; } if($password != $row['Password'] && $password ==null) { $error="Πληκτρολογείστε το Password"; } } else if($num <1) { if(isset($username) && $username != null) { $error="Το UserName είναι λάθος"; } if($username==null && isset($password)) { $error="Πληκτρολογείστε το UserName"; } if($password==null && $username==null) { $error="Πληκτρολογείστε το Username και το Password"; } } } ?> <div class="login-form"> <form method="post" name="login_form" action="index.php?page=login"> <span class="login-text">Username:</span> <input class="input-text" type="text" name="username" /><br> <span class="login-text">Password :</span> <input class="input-text" type="password" name="password" /><input type="submit" name="submit" value="Login" /> <?php if(isset($error)) { echo '<br><p><span class="error">'.$error.'</span></p>'; } ?> </form> </div> Και το αρχειο functions.php > <?php function protect($string) { $string=mysql_real_escape_string($string); $string=strip_tags($string); $string=addslashes($string); return $string; } function connect() { mysql_pconnect("localhost","root","") or die(mysql_error()); mysql_select_db("myproject"); } ?>
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.