Mm.. ik heb de volgende code.. Hoe wil jij dat realiseren dan? Ik snap niet wat je bedoeld , want als ik het boven de form zet lukt het niet..
<?php
session_start();
error_reporting('1');
?>
<html>
<head>
<title>Client login</title>
<style type="text/css">
body {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:0.6em;
margin:50px;
color:#666666;
}
label {
margin: 0;
padding:0.2em;
margin-top:0.3em;
text-align:right;
width:70px;
float:left;
text-transform:uppercase;
}
fieldset {
background-color:#ccc;
border:solid 0 #fff; /* Opera doesn't get border:none or border:0 on fieldsets */
width:300px;
}
legend {
width:194px;
height:30px;
color:#fff;
font-size:2em;
padding-left:0.5em;
background: transparent url("imageslegend_bg.gif") no-repeat;
position:relative;
top:-1em;
text-transform:uppercase;
font-weight:bold;
letter-spacing:-1px;
white-space:pre; /* hack: make sure */
}
.br {
display:none;
}
.textfield {
font:1.1em Verdana, Arial, Helvetica, sans-serif ;
color:#333 ;
margin:3px;
height:20px;
border:solid 0 #fff;
padding: 3px 8px;
background: transparent url("graphics/textfield_bg.gif") no-repeat fixed;
width:200px;
voice-family: "\"}\"";
voice-family:inherit;
width:187px;
}
fieldset>input.textfield {
background: transparent url("images/textfield_bg.gif") no-repeat;
}
.submit {
margin:3px;
background: transparent url("images/submit.gif") no-repeat;
height:20px;
border:solid 0 #fff;
width:80px;
font:1.1em Verdana, Arial, Helvetica, sans-serif;
color:#666;
text-transform:uppercase;
}
#login_false {
color: red;
margin-left: 550px;
margin-top: -130px;
}
</style>
</head>
<body>
<form method="POST" action="">
<table cellpadding="2px" cellspacing="1px" bgcolor="#F4F5F7" width="400px" class="tableBorder" align="center">
<tr>
<td colspan="2" bgcolor="#0066FF"> </td>
</tr>
<tr>
<td colspan="2" class="label"> </td>
</tr>
<tr>
<td align="center" colspan="2">
<img src="images/locked.png" border="0" align="absbottom"/>
<span class="message">Login to the Admin Panel</span>
</td>
</tr>
<tr>
<td colspan="2" class="label"> </td>
</tr>
<tr>
<td class="label" align="right" width="40%">Username:</td>
<td align="left" width="60%"><input type="text" name="naam" maxlength="20"/></td>
</tr>
<tr>
<td class="label" align="right">Password:</td>
<td align="left"><input type="password" name="wachtwoord" maxlength="20" /></td>
</tr>
<tr>
<td class="label" align="right"> </td>
<td align="left"><input type="submit" value="Login" /> <input type="reset" value="Reset" /></td>
</tr>
<tr>
<td colspan="2" class="label"> </td>
</tr>
</table>
</form>
</body>
</html>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(!empty($_POST['naam']))
{
if(!empty($_POST['wachtwoord']))
{
$query_control = mysql_query("SELECT id, naam, wachtwoord, actief FROM members WHERE naam='".mysql_real_escape_string(md5($_POST['naam']))."' AND wachtwoord='".mysql_real_escape_string(md5($_POST['wachtwoord']))."' AND actief='".(1)."'");
if($query_control)
{
if(mysql_num_rows($query_control) > 0)
{
while($session = mysql_fetch_assoc($query_control))
{
$_SESSION['userid'] = $session['id'];
}
header("location: logged_in.php");
}
else
{
echo '<div id="login_false">Foutieve inlog gegevens!<hr/></div>';
}
}
else
{
echo '<div id="login_false">Er is een onbekende fout opgetreden, neem contact op met de beheerder</div>';
}
}
else
{
echo '<div id="login_false">Geen wachtwoord ingevuld!</div>';
}
}
else
{
echo '<div id="login_false">Geen gebruikersnaam ingevuld!</div>';
}
}
?>
Link gekopieerd
Het geen wat jij nu hebt is dat je de code buiten je </html> zet. Dat moet je niet doen, omdat het geen wat er uit gespuwd wordt door PHP ook HTML is. (in dit geval)
Oplossing zou zijn alle code die onder </html> zit te verplaatsten boven de <form>
dus :
<body>
<?PHP
Hier je code
?>
<form method="POST" action="">
...
Link gekopieerd
zet je php code voor je html tag, en zet alle tekst die je krijgt als je een error hebt in een variabele, en roep deze variable in je form aan.
zoals vdleije het voorstelt zal het niet werken, omdat je dan een foutmelding krijgt: headers already sent (doordat je headers(location) gebruikt)
Link gekopieerd
Als ik dit doe, dat geeft hij de volgende error
Notice: Undefined variable: error in G:\UsbWebserver\Root\kvtcms\login\index.php on line 112
Geen gebruikersnaam ingevoerd!
Maar op de verkeerde plaats... Hier zie je een screen
http://i36.tinypic.com/25h2x54.jpg
<?php
session_start();
?>
<html>
<head>
<title>Client login</title>
<style type="text/css">
body {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:0.6em;
margin:50px;
color:#666666;
}
label {
margin: 0;
padding:0.2em;
margin-top:0.3em;
text-align:right;
width:70px;
float:left;
text-transform:uppercase;
}
fieldset {
background-color:#ccc;
border:solid 0 #fff; /* Opera doesn't get border:none or border:0 on fieldsets */
width:300px;
}
legend {
width:194px;
height:30px;
color:#fff;
font-size:2em;
padding-left:0.5em;
background: transparent url("imageslegend_bg.gif") no-repeat;
position:relative;
top:-1em;
text-transform:uppercase;
font-weight:bold;
letter-spacing:-1px;
white-space:pre; /* hack: make sure */
}
.br {
display:none;
}
.textfield {
font:1.1em Verdana, Arial, Helvetica, sans-serif ;
color:#333 ;
margin:3px;
height:20px;
border:solid 0 #fff;
padding: 3px 8px;
background: transparent url("graphics/textfield_bg.gif") no-repeat fixed;
width:200px;
voice-family: "\"}\"";
voice-family:inherit;
width:187px;
}
fieldset>input.textfield {
background: transparent url("images/textfield_bg.gif") no-repeat;
}
.submit {
margin:3px;
background: transparent url("images/submit.gif") no-repeat;
height:20px;
border:solid 0 #fff;
width:80px;
font:1.1em Verdana, Arial, Helvetica, sans-serif;
color:#666;
text-transform:uppercase;
}
#login_false {
color: red;
}
</style>
</head>
<body>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(!empty($_POST['naam']))
{
if(!empty($_POST['wachtwoord']))
{
$query_control = mysql_query("SELECT id, naam, wachtwoord, actief FROM members WHERE naam='".mysql_real_escape_string(md5($_POST['naam']))."' AND wachtwoord='".mysql_real_escape_string(md5($_POST['wachtwoord']))."' AND actief='".(1)."'");
if($query_control)
{
if(mysql_num_rows($query_control) > 0)
{
while($session = mysql_fetch_assoc($query_control))
{
$_SESSION['userid'] = $session['id'];
}
header("location: logged_in.php");
}
else
{
$error .= 'Foutive inlog gegevens';
}
}
else
{
$error .= 'Er is een onbekende fout opgetreden, neem contact op met de beheerder';
}
}
else
{
$error .= 'Geen wachtwoord ingevoerd!';
}
}
else
{
$error .= 'Geen gebruikersnaam ingevoerd!';
}
}
?>
<form method="POST" action="">
<table cellpadding="2px" cellspacing="1px" bgcolor="#F4F5F7" width="400px" class="tableBorder" align="center">
<tr>
<td colspan="2" bgcolor="#0066FF"> </td>
</tr>
<tr>
<td colspan="2" class="label"> </td>
</tr>
<tr>
<td align="center" colspan="2">
<img src="images/locked.png" border="0" align="absbottom"/>
<span class="message">Login to the Admin Panel</span>
</td>
</tr>
<tr>
<td colspan="2" class="label"> </td>
<?php
if($error)
{
echo $error;
}
?>
</tr>
<tr>
<td class="label" align="right" width="40%">Username:</td>
<td align="left" width="60%"><input type="text" name="naam" maxlength="20"/></td>
</tr>
<tr>
<td class="label" align="right">Password:</td>
<td align="left"><input type="password" name="wachtwoord" maxlength="20" /></td>
</tr>
<tr>
<td class="label" align="right"> </td>
<td align="left"><input type="submit" value="Login" /> <input type="reset" value="Reset" /></td>
</tr>
<tr>
<td colspan="2" class="label"> </td>
</tr>
</table>
</form>
</body>
</html>
Link gekopieerd
Je echo'ed je error niet in een kolom maar in een row zonder een kolom aan te geven. Hier:
<tr>
<td colspan="2" class="label"> </td>
<?php
if($error)
{
echo $error;
}
?>
</tr>
Zet die ook gewoon eens netjes in een kolom.
Link gekopieerd