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
K@llenMedlem sedan mars 20032 667 inlägg All utskrift till klienten inklusive mellanslag måste ligga efter det du sätter din kaka.
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'>";
}
?>
MatteMedlem sedan aug. 20002 975 inlägg 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.
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 :>