webForumDet fria alternativet

problem med cookies i php.

PHPur PHP

4 svar · 200 visningar · startad av Ohrstrom

Medlem sedan aug. 200216 inlägg
Frågan#1

Hej!
Jag kan inte php så bra och har använt mig av enkla include funktioner samt använt mig av ett loginscript och ett newsscript.

Men jag har problem med loginscriptet. När jag försöker logga ut knäppar det sig. När någon annan försöker logga in med sin inloggning händer samma sak.

Felkommando:
Warning: Cannot modify header information - headers already sent by (output started at d:\webroot\work\login.php:2) in d:\webroot\work\index-login.php on line 17

På den raden står det:

setcookie('accid', '', time()-(60*60*24*30), '/', '', 0);

Läste i någon faq att den här raden måste finnas innan all text skickas och det gjorde ju det inte, för jag hade hela den här filen includad i en annan. Men jag vände på includandet och lade det så att all text skulle komma efter denna rad. Men det hjälpte inte, samma problem.

Hoppas på en lätt lösning! :P

Medlem sedan mars 20032 667 inlägg
#2

All utskrift till klienten inklusive mellanslag måste ligga efter det du sätter din kaka.

Medlem sedan aug. 200216 inlägg
#3

Men det gör den ju
eller?

<?php

include("includes/db_config.php");

if ($login) {
	if (empty($username) || empty($password)) {
		echo "<link href=$css rel=stylesheet media=screen>";
		echo "Username and Password is required<br>Use your back button to return";
	} else {
		$sql = mysql_query("SELECT * FROM fcg_access WHERE uname='$username' AND pword='$password' ",$dblink)
		or die(mysql_error());
		$p = mysql_fetch_array($sql);
			$user = "".$p["uname"]."";
			$pass = "".$p["pword"]."";
		if ($user == $username && $pass == $password) {
			$accid = "".$p["id"]."";
			setcookie('accid', $accid, time()+(60*60*24*30), '/', '', 0);
			echo "<META HTTP-EQUIV='refresh' CONTENT='0; URL=$destination'>";
		} else {
			echo "<link href=$css rel=stylesheet media=screen>";
			echo "You entered incorrect information";
		}
	}
} else
if ($logout) {
setcookie('accid', '', time()-(60*60*24*30), '/', '', 0);
echo "<META HTTP-EQUIV='refresh' CONTENT='0; URL=$PHP_SELF'>";
} else

if (!$HTTP_COOKIE_VARS['accid']) {
?>

<?php
include("menu.php");
?>
        <tr>
          <td valign="middle" style="width: 1px; height: 1px" align="left"></td>
          <td valign="top" style="width: 450px; height: 100%" align="left">

<table style="width: 100%; height: 100%" cellpadding="0" cellspacing="0" align="center">
  <tr>
    <td valign="top">

					<form action="<?php echo "$PHP_SELF"?>" method="post">
						<table width="100%" valign="top" border="0" cellspacing="0" cellpadding="2">
							<tr>
								<td align="right" width="79" class="r1">. username</td>
								<td><input type="text" name="username" size="12"></td>
							</tr>
							<tr>
								<td align="right" width="79" class="r1">. password</td>
								<td><input type="password" name="password" size="12"></td>
							</tr>
							<tr height="10">
								<td align="right" width="79" height="10"></td>
								<td height="10"></td>
							</tr>
							<tr>
								<td align="right" width="79"></td>
								<td><input type="submit" name="login" value=". login"></td>
							</tr>
  </table>
     </form>

    </td>
  </tr>
</table>

        </td>

<?php
include("latest.php"); ?>

</table>
</body>
</html>

<?php
} else {
echo "<META HTTP-EQUIV='refresh' CONTENT='0; URL=$destination'>";
}
?>
Medlem sedan aug. 20002 975 inlägg
#4

Kolla så du inte har en tomrad eller mellanslag före PHP-taggen. Detta gäller även den inkluderade filen db_config.php.
Där är det också viktigt att du inte har några tomrader, mellanslag eller radbrytningar efter den avslutande PHP-taggen.

För säkerhets skull, sätt markören direkt efter den avslutande PHP-taggen i db_config.php, och tryck upprepade gånger på delete tills du är säker på att där inte finns något.

Medlem sedan aug. 200216 inlägg
#5

Gick upp för mig att jag länkat fel, när jag klickar logout så går han till den gamla filen vilket innebar att den includade cookien efter redan inlagd text, nu verkar det fungera :>

137 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)