dewn735 Δημοσ. 8 Αυγούστου 2012 Δημοσ. 8 Αυγούστου 2012 O έλεγχος αυτός θα γίνει πριν το insert: > <?php //Ψάξε στη βάση αν υπάρχει καποια καταχώρηση με το email που σου δίνουν $sql="SELECT email FROM users WHERE email = '$email'"; $tot=mysql_numrows(mysql_query($sql)); if ($tot) { //ο χρήστης υπάρχει ήδη. } else { //Ο χρήστης δεν υπάρχει - κάνε τα Insert και προχωράς κανονικά } ?>
bella89 Δημοσ. 9 Αυγούστου 2012 Μέλος Δημοσ. 9 Αυγούστου 2012 (επεξεργασμένο) > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "[url="http://www.w3.org/TR/html4/strict.dtd%22>"]http://www.w3.org/TR...l4/strict.dtd">[/url] <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/> <link rel="stylesheet" type="text/css" href="movies.css"/> <link href='ms.ico' rel='SHORTCUT ICON'/> <script type="text/javascript" src="[url="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js%22>"]http://ajax.googleap...7.1/jquery.js">[/url] </script> <script type="text/javascript" src="javascript.js"> </script> </head> <body><?php $host="localhost"; // Host name $username="root"; // Mysql username $password=""; // Mysql password $db_name="users"; // Database name $tbl_name="users"; // Table name // Connect to server and select databse. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); // username and password sent from form $myusername=$_POST['username']; $mypassword=$_POST['password']; // To protect MySQL injection (more detail about MySQL injection) $myusername = stripslashes($myusername); $mypassword = stripslashes($mypassword); $myusername = mysql_real_escape_string($myusername); $mypassword = mysql_real_escape_string($mypassword); $sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'"; $result=mysql_query($sql); // Mysql_num_row is counting table row $count=mysql_num_rows($result); // If result matched $myusername and $mypassword, table row must be 1 row if($count==1){ // Register $myusername, $mypassword and redirect to file "login_success.php" session_register("myusername"); session_register("mypassword"); header("location:cinema.php"); } else { echo "Wrong Username or Password"; } ?> </body> </html> Προσπαθεια δημιουργιας login και ελεγχοσ αλλα βγαζει παλι Notice: Undefined index: username,Notice: Undefined index: password in.Τι φταιει; Επεξ/σία 10 Αυγούστου 2012 από bella89
thanocaster Δημοσ. 9 Αυγούστου 2012 Δημοσ. 9 Αυγούστου 2012 Καταρχάς, φτιάξε το code tag σου. Στη συνέχεια, τσέκαρε ότι στη φόρμα σου έχεις method="post" και πως τα name attributes στα input tag σου είναι σωστά: > <form method="get" action="path/to/file"> <!-- Μην ξεχάσεις να αλλάξεις το path του action attribute--> <input type="text" name="username" /> <input type="password" name="password" /> </form> Επίσης, όλο το php block που έχεις παραθέσει στο τελευταίο μήνυμα βάλτο πάνω πάνω στο αρχείο σου για να σιγουρέψεις πως δεν έχεις κανένα τυπωμένο χαρακτήρα πριν εκτελεστεί η header (ούτε καν whitespace) και βάλε το error message να τυπώνεται μέσα στο body. Τέλος, μετά την header('Location:') καλό είναι να κάνεις ΠΑΝΤΑ exit το σκριπτ σου, αν κι εδώ δεν έχει ιδιαίτερη σημασία, αλλά θεωρείται good practice. Έτσι, δεν θα εκτελείται ο κώδικας μετά την header (αν δεν κάνεις exit, θα συνέχιζε το script κανονικά, και στο τέλος του θα έκανε το redirection): > <?php $host="localhost"; // Host name $username="root"; // Mysql username $password=""; // Mysql password $db_name="users"; // Database name $tbl_name="users"; // Table name // Connect to server and select databse. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); // username and password sent from form $myusername=$_POST['username']; $mypassword=$_POST['password']; // To protect MySQL injection (more detail about MySQL injection) $myusername = stripslashes($myusername); $mypassword = stripslashes($mypassword); $myusername = mysql_real_escape_string($myusername); $mypassword = mysql_real_escape_string($mypassword); $sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'"; $result=mysql_query($sql); // Mysql_num_row is counting table row $count=mysql_num_rows($result); // If result matched $myusername and $mypassword, table row must be 1 row if($count==1){ // Register $myusername, $mypassword and redirect to file "login_success.php" session_register("myusername"); session_register("mypassword"); header("location:cinema.php"); exit; } else { $error_message = "Wrong Username or Password"; } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "[url="http://www.w3.org/TR/html4/strict.dtd%22>"]http://www.w3.org/TR...l4/strict.dtd">[/url] <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/> <link rel="stylesheet" type="text/css" href="movies.css"/> <link href='ms.ico' rel='SHORTCUT ICON'/> <script type="text/javascript" src="[url="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js%22>"]http://ajax.googleap...7.1/jquery.js">[/url] </script> <script type="text/javascript" src="javascript.js"> </script> </head> <body> <?php echo ( isset($error_message) ) ? $error_message : null; ?> </body> </html> EDIT: Καλό είναι, μιας και είσαι ακόμα στην αρχή, να έχεις πάντα ανοιχτό το documentation της php και να το συμβουλεύεσαι για κάθε εντολή που χρησιμοποιείς. Ακόμη κι αν είσαι σίγουρος πως την γνωρίζεις. Γενικά, stick to the manual. EDIT2: Ρίξε και μια ματιά σε αυτό. Βλέποντας τον κώδικά σου είμαι αρκετά σίγουρος πως θα το χρειαστείς.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα