Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

O έλεγχος αυτός θα γίνει πριν το insert:

>
<?php
//Ψάξε στη βάση αν υπάρχει καποια καταχώρηση με το email που σου δίνουν
$sql="SELECT email FROM users WHERE email = '$email'";
$tot=mysql_numrows(mysql_query($sql));
if ($tot)
{
//ο χρήστης υπάρχει ήδη.
}
else
{
//Ο χρήστης δεν υπάρχει - κάνε τα Insert και προχωράς κανονικά
}
?>

Δημοσ. (επεξεργασμένο)

> <!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.Τι φταιει;

Επεξ/σία από bella89
Δημοσ.

Καταρχάς, φτιάξε το 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: Ρίξε και μια ματιά σε αυτό. Βλέποντας τον κώδικά σου είμαι αρκετά σίγουρος πως θα το χρειαστείς.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...