Gå til innhold

feil melding ved innlegg i DB


Anbefalte innlegg

får denne beskjeden når jeg legger inn nyheter

 

Warning: Cannot modify header information - headers already sent by (output started at /hsphere/local/home/stianweb/stianweb.com/admin/meny.htm:11) in /hsphere/local/home/stianweb/stianweb.com/admin/addnews.htm on line 6

 

linje 6:

<?php

session_start();

if($bruker=="") {

 

//include('login.htm');

Header("Location: login.htm");

 

} else {

// SQL database Variables

 

linje seks er Header linja

 

 

under dette kommer seff sql setningen

 

Noe som kan hjelpe?

 

På forhånd tusen takk :D

Lenke til kommentar
Videoannonse
Annonse

HAr prøvd å om gå litt her men nå sliter jeg

etter å ha lagt inn alt i tekstbokser og den skal validere mot addnews.php så bare hopper den til login.htm

 

fila:

<?php 
session_start();
if($bruker=="") {

//include('login.htm');
Header("Location: login.htm");

} else {
?>
<table width="750" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="000000">
<tr>
 <td width="100" align="center" valign="top">
 	<? include("meny.htm") ?>
 <td width="650" align="left" valign="top">
 	<?php
 	// SQL database Variables 
 	
 	$hostname="***";
 	$user="****";
 	$pass="****";
 	$dbase="****"; 
 	$connection = mysql_connect("$hostname" , "$user" , "$pass");
 	$db = mysql_select_db($dbase , $connection);
 	
 	//legge inn nyhet
 	
 	$q="INSERT into news (id,head,teaser,dato) VALUES ('','$head','$teaser',now())";
 	
 	$result= mysql_query($q, $connection) or die 
 	("Could not execute query : $q." . mysql_error());
 	
 	if ($result) {
   echo "Nyheten er lagt inn!<br>";
   
 	}
 	?>
 </td>
</tr>
</table>
<?php

}

?>

går jeg for mye inn og ut?

Endret av Svendsen
Lenke til kommentar

En regel som jeg har satt for meg selv er:

  • logikk/håndtering av data/login osv først
  • den visuelle delen, generering av tabeller/lister osv til slutt

Du hopper her litt inn og ut ja, og virker som du bruker register_globals=on ? $bruker kommer fra session?

 

At du legger til nyhet der du gjør synes jeg ikke passer, bedre å holde orden på det først, utenfor den visuelle delen. Faktisk foretrekker jeg at html kode er utenfor php koden, kjent som templates ;)

 

Ser jeg nærmere etter, så mangler du en exit(); etter header(); Dette for å utføre redirection din med engang. Ellers er det ikke mye annet jeg kan se, er kanskje en cookie som ikke blir satt med riktig session id eller at cookie ikke blir satt. Kanskje det er noe feil med siden som kaller på addnews.php'en. Kanskje sjekken på $bruker == "" ikke fungerer som det skal.

 

PS: bruker ikke PHP sin egen session sak, siden jeg har opplevd en del bugs, endte opp med å lage en mysql basert session sak. Kommer vel til å legge den opp i den faste tråden på forumet etterhvert som jeg har finpusset på den litt ;)

Lenke til kommentar

Det som er litt rart er at jeg har fått en annen variant til å funke før, men så slutta den å virke pga mitt første problem i tråden :(

 

hadde to celler i en tabbel. Der jeg brukte $_GET til å bestem ut fra url og include reine koder... men det stoppa å virke

 

 

Hvis noen har en god tut eller beskrivelse på :

login med session mot MySQL ( alt er det)

legge inn ting og slette og edit

 

så ja takk :)

Lenke til kommentar

Du må vite at HTTP headers er en del av enhver http session

 

(når du åpner en hvilken som helst link, f.eks et php skript, så er det en http session - og nei, dette er ikke innholdet i <head> taggen)

 

HTTP fungerer slik at det først sendes headers, deretter innholdet av fila/skriptet/whatever. *ALLE* headers må ut før innhold kan sendes. Hvis ikke, vil headers bare vises på siden som en hvilken som helst annen tekst.

 

PHP luller brukeren inn i en falsk virkelighet der headers ikke finnes, men det gjør de så absolutt.

 

I PHP håndteres de automatisk. Den skjønner at det trengs headers før innholdet (som regel html) skrives ut. Problemet her, er at det har blitt skrevet ut innhold (nok med en "usynlig" linjeskift) og da er det for sent med headers. Hvis du prøver å starte sessions etter at innhold er skrevet ut, vil du få denne feilen.

 

Den innlysende løsningen er å flytte session_start til øverst i skriptet.

 

Den slappe latmannsløsningen er å kjøre en ob_start() øverst i skriptet.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...