Inlägg
header('location:..); att skriva ut före html -
Hej! Har en fråga gällande min kod nedan för en login sida. Jag får följande felmeddelande:
Warning: Cannot modify header information - headers already sent by (output started at /Applications/MAMP/htdocs/Curie/webroot/nobel_login.php:1) in /Applications/MAMP/htdocs/Curie/src/CUser/CUser.php on line 33
Jag har sett många inlägg här och på andra ställen vad man bör tänka på när man får detta felmeddelande. Jag vet att header('location:'); skall föregå innan html skrivs ut. Inga Witespaces osv. Har försökt ändra och flytta om, men får inte till koden nedan. Kan ni som är proffs se vad som är fel?
<?php
/**
* A class for handeling login
*
*/
class CUser extends CDatabase {
/**
* Members
*
*/
private $database;
/**
* Initiate child and parent constructor
*
*/
public function __construct($database) {
parent::__construct($database);
}
/**
* Check if user and password is okey and reload page
*
*/
private function Login() {
if(isset($_POST['login'])) {
$sql = "SELECT acronym, name FROM USER WHERE acronym = ? AND password = md5(concat(?, salt))";
$params = array(strip_tags($_POST['acronym']), strip_tags($_POST['password']));
$res = $this->ExecuteSelectQueryAndFetchAll($sql, $params);
if(isset($res[0])) {
$_SESSION['user'] = $res[0];
}
// Den ska skrivas ut innan html skrivs ut.
header('Location: nobel_login.php');
}
// Logga ut användare / Logout the user
if(isset($_POST['logout'])) {
unset($_SESSION['user']);
header('Location: nobel_login.php');
}
}
/**
* Verify if user is logged in or not and return message
*
*/
private function IsAuthenticated($acronym) {
if($acronym) {
$acronym = $_SESSION['user']->acronym;
$name = $_SESSION['user']->name;
$output = "Du är inloggad som: {$acronym} ({$name})";
}
else {
$output = "Du är för närvarande inte inloggad.";
}
return $output;
}
/**
* Create login form
*
*/
private function LoginForm($acronym) {
$form = "<form method='post'><fieldset><legend><br></legend>";
$form .= "<p><em>Du kan logga in med vinga:vinga eller pippi:pippi</em></p>";
$form .= "<p><label>Användare:</label><br><input type='text' name='acronym' value='pippi'></p>";
$form .= "<p><label>Lösenord:</label><br><input type='password' name='password' value='pippi'></p>";
$form .= "<p><input type='submit' name='login' value='Login'> ";
$form .= "<input type='submit' name='logout' value='Logout'></p>";
$form .= "<p><b>{$this->IsAuthenticated($acronym)}</b></p>";
$form .= "</fieldset></form>";
return $form;
}
/**
* Sum it all up and create HTML output
*
*/
public function UserLogin() {
// Get parameters
$acronym = isset($_SESSION['user']) ? true : false;
// Create HTML output based on parameters
$html = $this->Login();
$html .= $this->LoginForm($acronym);
return $html;
}
}
- Igår Grafikprestanda i Senua's Saga: Hellblade II – ett av de tyngsta PC-spelen någonsin 45
- 19 / 5 Ghost of Tsushima kan använda DLSS och FSR 3 samtidigt 11
- 17 / 5 27 år senare – Winamp får öppen källkod 45
- 17 / 5 Grafikprestanda i Ghost of Tsushima – en välpolerad PC-version 28
- 17 / 5 Microsoft: Byt till Bing om du vill reparera din dator 39
- Uppgraderingspaket till sambo4
- Nyhetstips!481
- Dålig prestanda.4
- Samlingstråd LG OLED 2023 (A3/B3/C3/G3/Z3)766
- Wordle på svenska - ordlig.se7945
- Bra/okej inear som är billiga13
- 4080 Aero 110° hotspot - Garanti ärende1
- Noctua lanserar Home – fläktlösningar för hemmet47
- Surface-tangentbord med AI-knapp kostar 5 000 kronor29
- Moddat 4070 Ti Super snabbare än 4080 Super31
- Säljes Acer Predator XB323QK 32" IPS 144Hz 1ms
- Köpes Köper ditt 2080Ti el liknande
- Säljes Mäktig dator 7950X, RX 7900 XTX, 64 GB, 2x2TB 990 PRO, 1300W
- Säljes Speldator från komplett säljes
- Säljes Samsung Galaxy Watch5 LTE (44mm) grafit
- Skänkes Chassidelar och skrot skänkes kanske för test bench bygge?
- Säljes Linksys Velop WIFI 6 1-pack
- Säljes Speldator - i9-9900k, 3070, 16GB
- Säljes Bose Noise Cancelling Headphones 700
- Säljes 2 detskops Hp omen (3080) (1060)
Tester av chassi, grafikkort, processorer m.m.
- Grafikprestanda i Senua's Saga: Hellblade II – ett av de tyngsta PC-spelen någonsin45
- Grafikprestanda i Ghost of Tsushima – en välpolerad PC-version28
- SweClockers Noob-byggarguide Del 213
- Köpråd: 8 bästa komponenterna just nu67
- SweClockers Noob-byggarguide Del 117
- Prispressat mejselkit är Testlabbets favorit51
- Corsair Platform 6: För dig som inte nöjer dig med Ikea-skrivbord11
- Airtec Pro Type1 – batteridrivet alternativ till tryckluft på burk129
- Snabbtest: Bli mer Pro med mindre tangentbord43
- Snabbtest: Högre spelprestanda med Intel APO46
Externa nyheter
Spelnyheter från FZ
- Kingdom Hearts till Steam, efter tre års Epic-exklusivitet igår
- Se Microsofts AI-tjänst guida (en noob vid) Minecraft-spelande igår
- Embracer säljer Switch-utvecklaren Shiver till Nintendo igår
- CoD till Game Pass innebär "förändrad" Game Pass-modell, påstås det igår
- Take-Two är "väldigt säkra" på GTA 6:s släppfönster igår