Permalänk

felmedelande

hej!
skulle vara tacksam om någon kunde hjälpa mig att bli av eller förstå detta felmedelande.
håller på med en hemsida och detta är php

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/test/public_html/connect.php:1) in /home/test/public_html/connect.php on line 2

tack

Permalänk
Medlem
Skrivet av Scarfacee:

hej!
skulle vara tacksam om någon kunde hjälpa mig att bli av eller förstå detta felmedelande.
håller på med en hemsida och detta är php

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/test/public_html/connect.php:1) in /home/test/public_html/connect.php on line 2

tack

Tjena!

Hur ser koden ut som generar felet?

Permalänk
Medlem

Du har troligtvis någon utskrift eller liknande före du skickar en header.

Permalänk

zakire , menar du inuti connect.php?
hamre vad ska jag göra då?
tackar

Permalänk
Medlem

Det är ju ett väldigt självförklarande meddelande. connect.php skickar ut något innan headern, och headern måste komma först - därav felmeddelandet.

Visa signatur

11600K@5.1 GHz + 32GB Corsair Vengeance RGB PRO 3200@3400 MHz + MSI RTX 2080 Super Gaming X Trio +
WDC Blue SN550 1TB + Black OEM SN730 500GB + Kingston A1000 480GB + A2000 500GB + NV2 1TB + 2TB R10 + RGB most of THE THINGS! + Corsair 4000D Airflow + 2*ZyXEL NSA326 2*3TB @ R1 + Netgear RN2100 4*3TB @ R10 + RN204 4*4TB @ R5 + Synology DS216j 2*4TB @ SHR R1 + DS418 4*8TB @ SHR R6
| tmp: R5 3600@4.2 GHz + 32GB 2666@3066MHz + 1060 6GB@2100/4500MHz + 1 TB NV2 & 512GB SN730

Permalänk

ok tack men ska koden redigeras eller? vad ska i så fall ändras

Permalänk
Medlem
Skrivet av Scarfacee:

ok tack men ska koden redigeras eller? vad ska i så fall ändras

Headern måste skrivas ut först.

Permalänk

<?php
session_start();
//connect.php
$server = 'localhost';
$username = '1';
$password = '1';
$database = '1';

if(!mysql_connect($server, $username, $password))
{
exit('Error: could not establish database connection');
}
if(!mysql_select_db($database))
{
exit('Error: could not select the database');
}
?>

??? vad är fel i connect.php filen?

Permalänk

Använd PHP-Taggar nästa gång så blir det lättare för oss att läsa.

<?php session_start(); //connect.php $server = 'localhost'; $username = '1'; $password = '1'; $database = '1'; if(!mysql_connect($server, $username, $password)) { exit('Error: could not establish database connection'); } if(!mysql_select_db($database)) { exit('Error: could not select the database'); } ?>

Visa signatur

Ryzen m-atx:
|| Windows 10 || MSI B350M || Ryzen 1700X OC@ 3.8GHz || Nvidia 1060 6GB || 32GB RAM || EVGA P2 750W ||
HTPC:
|| Windows 10 || Asrock Z77m-itx || I7 3770k || 8GB RAM || Corsair 620W ||
________________________________________________________________________________________________

Permalänk

exakt likadant ju?
tackar

Permalänk
Medlem

Kolla så du inte har något gömt tecken innan session_start();
Om du inte kan se något så ladda ner en hex-editor och se om det finns en UTF-8 BOM i början av filen.
Ser ut så här (EF,BB,BF) i hex-editorn.
Ta bort det i så fall.

Permalänk
Medlem

Vilken sida är du inne på som genererar felet? Är det connect.php som du tittar på i webbläsaren, eller includar du bara den sidan i någon annan sida?

Permalänk
Medlem

Min tolkning är att du har ett mellanslag eller liknande före <?php i connect.php filen. Säkerställ så det inte är något före starttagg eller efter sluttagg.

Permalänk

Jag tror mer på att du försöker starta en session 2 gånger. En gång i connect.php och en gång i den fil som just nu försöker visa i din webbläsare (index.php?).

Eller du kanske har inkluderat connect.php filen efter <body> elementet?

Det meddelandet säger är ju att headers redan har skickats och därför kan inte session_start() headern skickas i efterhand.

Såhär bör det se ut:

<?php include('connect.php') ?> <html> <head> </head> <body> </body> </html>

Som du nu ser så är connect.php inkluderad i DOM trädet INNAN någon annan som helst kod. Det får heller inte förekomma någon ny session_start(); i nedankommande kod. Självklart kan du deklarera sessionsvariabler när som helst, vart som helst. Men du kan inte starta en ny session när en redan är startad.

Som sagt. Berätta gärna lite mer om hur din kod ser ut där du inkluderar din connect.php fil. Ligger den efter eller före någon annan kod?

Permalänk
Medlem

Om du sätter igång "output buffering" i PHP så slipper du tänka på detta.

Permalänk

har fortfarande inte fått det att fungera, har tagit bort alla session_start(); och det funkar inte helt

Permalänk
Medlem
Skrivet av Scarfacee:

har fortfarande inte fått det att fungera, har tagit bort alla session_start(); och det funkar inte helt

Har du satt igång output buffering i PHPs konfigurationsfil(er) och startat om webbservern?

Permalänk

var ska jag sätta ob_start;
asså så jobbbigt allt funkar bara, koden som dyker upp och förstör

Permalänk
Skrivet av Scarfacee:

har fortfarande inte fått det att fungera, har tagit bort alla session_start(); och det funkar inte helt

session_start();

krävs nog för att den koden du sitter och klipper och klistrar i ska fungera.

Antingen inkluderar du filen först i varje dokument samt ser till att det inte finns några tecken innan, eller så aktiverar du output buffering.

Visa signatur

Citera, tack!
Har du läst tråden om strandhögtalare och andra musiklådor?

Permalänk
Medlem

Du har antagligen ett byte order mark i början av dina filer. Vad använder du för texteditor?

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Scarfacee:

var ska jag sätta ob_start;
asså så jobbbigt allt funkar bara, koden som dyker upp och förstör

Suck, sista försöket... Om du sätter det globalt i php.ini så slipper du detta. Det är snabbaste lösningen istället för att leta efter filer med skräp i.

Permalänk

edit* ska se om det funkar

Permalänk

en annan fråga
om jag har ett vanligt html form som se ut så här:

<input type="text" name="user" maxlength="10" value="<?php echo $form->value("user"); ?>">

Hur ska jag skriva det i php med if session och echo
if($session->logged_in){
echo
..
else
..

tackar

Permalänk
Skrivet av Scarfacee:

en annan fråga
om jag har ett vanligt html form som se ut så här:

<input type="text" name="user" maxlength="10" value="<?php echo $form->value("user"); ?>">

Hur ska jag skriva det i php med if session och echo
if($session->logged_in){
echo
..
else
..

tackar

Du är på god väg redan där. Här står det: http://se2.php.net/manual/en/control-structures.if.php

Visa signatur

Citera, tack!
Har du läst tråden om strandhögtalare och andra musiklådor?

Permalänk

kan du hjälpa mig? va är också skillnad mellan -> och isset?

Permalänk
Medlem
Skrivet av Scarfacee:

kan du hjälpa mig? va är också skillnad mellan -> och isset?

Kolla php.net
Vad är INTE skillnaden mellan -> och isset? Vad är skillnaden mellan en Ford Fiesta och ett äpple?

Visa signatur

11600K@5.1 GHz + 32GB Corsair Vengeance RGB PRO 3200@3400 MHz + MSI RTX 2080 Super Gaming X Trio +
WDC Blue SN550 1TB + Black OEM SN730 500GB + Kingston A1000 480GB + A2000 500GB + NV2 1TB + 2TB R10 + RGB most of THE THINGS! + Corsair 4000D Airflow + 2*ZyXEL NSA326 2*3TB @ R1 + Netgear RN2100 4*3TB @ R10 + RN204 4*4TB @ R5 + Synology DS216j 2*4TB @ SHR R1 + DS418 4*8TB @ SHR R6
| tmp: R5 3600@4.2 GHz + 32GB 2666@3066MHz + 1060 6GB@2100/4500MHz + 1 TB NV2 & 512GB SN730

Permalänk

<?php if (!isset($_SESSION['id'])) { echo " "; } else { echo } ?>

Jag vet inte hur man ska omvandla värdet <?php echo $form->value("user"); ?> så att den funkar i echo

Permalänk
Medlem
Skrivet av Scarfacee:

Jag vet inte hur man ska omvandla värdet <?php echo $form->value("user"); ?> så att den funkar i echo

Du får nog ta och beskriva exakt vad du vill göra.

Permalänk

jag ska sätta in denna html kod :

<input type="text" name="user" maxlength="10" value="<?php echo $form->value("user"); ?>">

i denna php kod( i echo)

<?php if (!isset($_SESSION['id'])) { echo " dafsdafsdfsadfsadfdfadfdfafddadffda här "; } else { echo } ?>

Permalänk
Medlem
Skrivet av Scarfacee:

jag ska sätta in denna html kod :

<input type="text" name="user" maxlength="10" value="<?php echo $form->value("user"); ?>">

i denna php kod( i echo)

<?php if (!isset($_SESSION['id'])) { echo " dafsdafsdfsadfsadfdfadfdfafddadffda här "; } else { echo } ?>

Ta bort echo, stäng det öppna PHP-kontextet, klistra in raden.

Så här typ:

<?php $something = 42; ?> <p>Det magiska numret är <?php echo $something ?></p> <?php // mer kod ?>

Visa signatur

Kom-pa-TI-bilitet