Hallo,
Ik heb een fout met het inloggen op een site. Normaal stuurt hij je door maar nu krijg ik deze fout:
Warning: Cannot modify header information - headers already sent by (output started at /home/thomlamp/domains/geldezeltje.nl/public_html/ref2cash/html_top.php:13) in /home/thomlamp/domains/geldezeltje.nl/public_html/ref2cash/inloggen.php on line 54
PHP Code:
<?php
include("html_top.php");
include("_include.php");
//Kijken of de post verstuurt is.
if(isset($_POST['submit']))
{
//Alle inputs beveiligen.
$user = mysql_real_escape_string($_POST['user']);
$pass = mysql_real_escape_string($_POST['pass']);
//Foute errors tegen gaan.
$error = "";
//Is er een gebruikersnaam ingevuld?
if (empty($user))
{
//Dan zeggen we hem toch wat hij fout deed.
$error .= "Je hebt geen gebruikersnaam ingevuld.<br>";
}
//Is er een wachtwoord ingevuld?
if (empty($pass))
{
//Dan zeggen we hem toch wat hij fout deed.
$error .= "Je hebt geen wachtwoord ingevuld.<br>";
}
//Als er een error is, dan geven we deze maar weer.
if($error != "")
{
//Hem is duidelijk maken wat hij fout deed.?
echo $error;
die();
}
else
{
//We kijken of hij wel alles juist heeft ingevuld.
$sql = "SELECT * FROM `users` WHERE `user`='".$user."' AND `pass`='".md5($pass)."' AND `emailactief`='yes'";
$res = mysql_query($sql);
//Kijken of hij alles juist heeft ingevuld.
if(mysql_num_rows($res) == 0)
{
echo "Je gebruikersnaam of wachtwoord zijn niet juist, of je account is nog niet geactiveerd!";
}
else
{
//Alle gegevens waren correct, nu hem nog inloggen.
$_SESSION['user'] = $user;
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
header('Location: /leden/index.php');
}
}
}
else
{
?>
<h2>Inloggen</h2>
<form action="" method="post" enctype="multipart/form-data" />
Gebruikersnaam:<br />
<input name="user" type="text" /><br /><br />
Wachtwoord:<br />
<input name="pass" type="password" /><br /><br />
<input type="submit" name="submit" value="Inloggen" /></td>
</form>
<?php
}
include("html_bottom.php");
?>
- Fout met inloggen
-
25-04-2010, 14:03 #1
- Berichten
- 314
- Lid sinds
- 15 Jaar
Fout met inloggen
-
-
25-04-2010, 14:05 #2
- Berichten
- 30
- Lid sinds
- 19 Jaar
Dit moet je maar een keer versturen, en als je in je include ook zegt dat de sessie gestart wordt, verstuur je hem dubbel, en dat mag niet.
Oplossing: Een van de session_start(); commando's verwijderen.Laatst aangepast door Max Grim : 25-04-2010 om 14:10
-
25-04-2010, 14:11 #3
- Berichten
- 314
- Lid sinds
- 15 Jaar
Mijn include ziet er zo uit:
PHP Code:<?
$dbhost = 'localhost'; //De server waar je database gehost word. Meestal 'localhost'.
$dbuser = '***'; //Je gebruikersnaam van je database.
$dbpass = '***'; //Het wachtwoord van je database.
$dbname = '***'; //De naam van je database.
mysql_select_db($dbname,mysql_connect($dbhost,$dbuser,$dbpass));
function check_login()
{
if(empty($_SESSION['user']) || empty($_SESSION['ip']))
{
echo 'Je bent niet ingelogd. ';
echo "<a href='/inloggen.php'>Klik hier</a> om je in te loggen";
die();
}
if($_SESSION['ip'] != $_SERVER['REMOTE_ADDR'])
{
echo 'Je bent niet ingelogd. ';
echo "<a href='/inloggen.php'>Klik hier</a> om je in te loggen";
die();
}
$sql = "SELECT * FROM `users` WHERE `user`='".$_SESSION['user']."'";
$res = mysql_query($sql);
if(mysql_num_rows($res) == 0)
{
echo 'Je bent niet ingelogd. ';
echo "<a href='/inloggen.php'>Klik hier</a> om je in te loggen";
die();
}
}
function login(){
$sql = "SELECT * FROM `users` WHERE `user`='".$_SESSION['user']."'";
$res = mysql_query($sql);
if(empty($_SESSION['user']) || empty($_SESSION['ip'])){
return '0';
}else if($_SESSION['ip'] != $_SERVER['REMOTE_ADDR']){
return '0';
}else if(mysql_num_rows($res) == 0){
return '0';
}else{
return '1';
}
}
function admin(){
$sql = "SELECT * FROM `users` WHERE `level`='10' AND `user`='".$_SESSION['user']."'";
$res = mysql_query($sql);
if(mysql_num_rows($res) == 0){
return '0';
}else{
return '1';
}
}
function check_admin()
{
$sql = "SELECT * FROM `users` WHERE `level`='10' AND `user`='".$_SESSION['user']."'";
$res = mysql_query($sql);
if(mysql_num_rows($res) == 0)
{
echo 'Je bent geen admin! ';
die();
}
}
function vip_actief(){
$sql = "SELECT * FROM `users` WHERE `vip`='yes' AND `user`='".$_SESSION['user']."'";
$res = mysql_query($sql);
if(mysql_num_rows($res) == 0){
return '0';
}else{
return '1';
}
}
?>
-
25-04-2010, 14:54 #4
- Berichten
- 492
- Lid sinds
- 16 Jaar
Vreemde opbouw.
Zou je niet eerst een db connectie maken alvorens je een bestand include,
En session start moet HELEMAAL boven aan staan,
Dus Deze zou in html top op de eerste regel moeten staan,
-
26-04-2010, 08:56 #5
Elephant Media GbR
- Berichten
- 1.253
- Lid sinds
- 18 Jaar
Lees dit maar eens door.
http://www.edwinv.nl/webdevelopment/...-already-sent/
Geeft je een goed beeld bij headers.
-
26-04-2010, 14:04 #6
- Berichten
- 750
- Lid sinds
- 15 Jaar
Wat staat er in html_top.php ?
-
27-04-2010, 14:17 #7
- Berichten
- 62
- Lid sinds
- 15 Jaar
session_start(); ??
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic