Hallo,
Ik ben zelf begonnen met het maken van een website met een login systeem. Voor de opmaak gebruik ik CSS. Nu krijg ik als ik op de localhost kijk de 2 volgende regels te zien:

Notice: Undefined index: email in C:\xampp\htdocs\login.php on line 6

Notice: Undefined index: Submit in C:\xampp\htdocs\login.php on line 8


Nu begrijp ik niet waarom hij zegt dat het een undefined index is.

Deze code heb ik in login.php staan:


<?php
include 'dbc.php';

$user_email = mysql_real_escape_string($_POST['email']);

if ($_POST['Submit']=='Login')
{
$md5pass = md5($_POST['pwd']);
$sql = "SELECT id,user_email FROM users WHERE
user_email = '$user_email' AND
user_pwd = '$md5pass' AND user_activated='1'";

$result = mysql_query($sql) or die (mysql_error());
$num = mysql_num_rows($result);

if ( $num != 0 ) {

// A matching row was found - the user is authenticated.
session_start();
list($user_id,$user_email) = mysql_fetch_row($result);
// this sets variables in the session
$_SESSION['user']= $user_email;


if (isset($_GET['ret']) && !empty($_GET['ret']))
{
header("Location: $_GET[ret]");
} else
{
header("Location: myaccount.php");
}
//echo "Logged in...";
exit();
}

header("Location: login.php?msg=Invalid Login");
//echo "Error:";
exit();
}

?>



<?php if (isset($_GET['msg'])) { echo "<div class=\"msg\"> $_GET[msg] </div>"; } ?>



<div id="login">
<form name="form1" method="post" action="">

<p id="login1">Login
<input name="email" type="text" id="email">
</p>
<p id="login2" align="right">
<input name="pwd" type="password" id="pwd">
</p>
<p id="login3" align="right">
<input type="submit" name="Submit" value="Login">
</p>
<p id="login4" align="right"><a href="register.php">Register</a> | <a href="forgot.php">Forgot</a></p>
</form>

</div>



include dbc.php

<?php
$dbname = 'ledenlogin';
$link = mysql_connect("localhost","root","cocagne") or die("Couldn't make connection.");
$db = mysql_select_db($dbname, $link) or die("Couldn't select database");
?>
Er is niet gepost, en je vraag al de waarde van $_POST['Submit'] op, die dus nog niet bestaat.

Dus daarom is deze nog undefined.
Gebruik een isset() om te controleren of deze bestaat.

En bovendien controleer je een submit als volgt:

if($_SERVER['REQUEST_METHOD']=="POST")
Ik heb het opgelost zoals je zei:

if(isset($_POST['Submit']))
{
$_POST['Submit']=='Login';

Wat is er mis met de code die ik gebruik?
Vaak kan je een formulier ook met een <enter> versturen. In zo'n geval zal jouw script niet werken.

Reageren