Gå til innhold

løst: cookie ER header() , takk for infoen


Anbefalte innlegg

Hei, har to classer inne i en php fil.

 

De skilles ved 2 if tester:

 

if (!file_exists("config.php"))
{
setcookie("installed", "0", time()+36000);
}

$instaled = $_COOKIE["installed"];

 

Config.php finnes ikke, når jeg starter dokumentet, men blir laget rett etterpå.

 

Så den første if testen:

 

if ($installed == "0")
{
masse php...

}

 

så kommer den som ikke virker, den som omskriver cookien fra 0 til 1:

 

$isint="1";

 if($isint == "1")
 	{
 	setcookie("installed", "1", time()+36000);
 	}

 

Siste if test: (kommer ikke opp, error:

 

Cannot modify header information - headers already sent by (output started at D:\TOnet\www\php&mysql\cdregisteret\instal_form.php:9) in )

 

 

 

 

if ($installed == "1") 
{
masse php....
}

 

Hva er galt?

 

På forhånd takk

Endret av robgar
Lenke til kommentar
Videoannonse
Annonse

Ja, men problemet er: JEG BRUKER IKKE HEADER.

 

EDIT: glemte å legge ved instal_form.php

 

<form action="instal.php" method="post">
       <td width="50%"><div align="right">Hostname/Server name: </div></td>
     <td>
<input type="text" name="h"></td>
   </tr>
   <tr> 
     <td><div align="right">Username: </div></td>
     <td><input type="text" name="u"></td>
   </tr>
   <tr> 
     <td><div align="right">Password:</div></td>
     <td><input type="password" name="p"></td>
   </tr>
   <tr> 
     <td><div align="right">Db_Name:</div></td>
     <td><input type="text" name="db"></td>
   </tr>
   <tr> 
     <td> </td>
     <td> </td>
   </tr>
 </table>
 <div align="center"><br>
   <br>
   <br>
   <input name="submit" type="submit" value="Install">
 </div>
</form>

 

Det er ikke en eneste linje med header() funksjonen, i noen av filene.

Feilen kommer opp pga, jeg prøver å overskrive en cookie!.

Endret av robgar
Lenke til kommentar

Det går for det samme. Så vidt jeg vet må du plassere setcookie før alt annen output.

 

EDIT:

"setcookie() defines a cookie to be sent along with the rest of the HTTP headers. Like other headers, cookies must be sent before any output from your script (this is a protocol restriction). This requires that you place calls to this function prior to any output, including <html> and <head> tags as well as any whitespace. If output exists prior to calling this function, setcookie() will fail and return FALSE. If setcookie() successfully runs, it will return TRUE. This does not indicate whether the user accepted the cookie."

Endret av Loomy
Lenke til kommentar

ok, takk for hjelpen.

 

Men hvordan skal jeg da få til min mening med scriptet:

 

Scriptet er delt i 2, splitet av COOKIE (instaled)

 

Om 0

{

så kommer det opp et form fra instal_form, og det skrives til filen config.php

(dette har jeg fått til)

}

 

Om 1

{

så kommer det opp en sql query, som lager en tabell, utifra dataen på config.php,

som ble lagret ved "Om 0".

 

(har testet dette ut, i individuel fil, og der virket det helt fint)

}

 

Sammendrag:

 

Altså en cookie skiller mellom de to classene i php fila, om 0 eller 1.

 

Hvordan setter jeg Cookien til 1, når jeg har skrevet til fila?

eller er det andre metoder, som f.eks CONSTANT eller lignende?

Lenke til kommentar

Fant en løsning selv.

Byttet ut COOKIE med en CONSTANT,

 

$i = $_GET['i'];

if ($i == "1")
{
define("INSTALLED", 1);
}

 

 

og første if test:

if (!defined("INSTALLED"))

 

Andre if test:

if (defined("INSTALLED"))

eller :

else{}

 

i instal_form:

 

<form action="install.php?i=1" method="post">

Endret av robgar
Lenke til kommentar

vet det er pirk og OT og alt som er, men etter å ha lest denne tråden så klarer jeg ikke la være å si det. Har lest "instaled" ca 20 ganger iløpet av denne tråden, og det ER feil skrevet!! :wallbash: "installed" er riktig, eller "installert".

...åå..det føltes godt å få det ut. :D

 

..dessuten lurer jeg på om dette kunne blitt fikset med if og else if. Istedet for 2 if setninger. (Hah...ikke heeelt OT posting :p )

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...