Timeout und Header

G

glen

Hiho!
Bitte helfen (erst Code, dann Problembeschreibung ^^)!

Mein Timeout, wie es nicht funktioniert:
Code:
<?
session_start();
include("dbconnect.php");

if(session_is_registered('nick'))
{
$select = mysql_query("SELECT * FROM online WHERE nick = '".$_SESSION['nick']."'");
$row = mysql_fetch_array($select);

$old = $row['check'];

$rechne = time() - $old;
$runden = round($rechne);

if ($runden == 1 || $runden > 1)
{
$del = mysql_query("DELETE FROM online WHERE nick = '".$_SESSION['nick']."'");

session_destroy();
echo "<script>".window_alert("AUSGELOGGT!")."</script>";
die;
}
else
{
$up = mysql_query("UPDATE online SET nick = '".$_SESSION['nick']."', check = time() WHERE nick = '".$_SESSION['nick']."'");
}
}
?>

Naja, jedoch updatet er nicht ABER löscht dne user nicht!
Woran liegts?

Dann habe ich ein Tablelayout.
Nun, dauernd wenn ich (z..B beim löschen eines GB-Eintrags)header benutze kommt

Warning: Cannot modify header information - headers already sent by (output started at /home/www/ncf20/html/glen/index.php:30) in /home/www/ncf20/html/glen/gb.php on line 21

Was bedeutet das? In der index.php ist NIX mit header und in der gb.php wird VOR dem header auch NIX ausgegeben (siehe code):

Code:
<?
include("time.php");
include("dbconnect.php");

if(isset($_POST["submit"]))
{
if(empty($_POST["name"]) || empty($_POST["text"]))
{
echo "Bitte fülle die Felder \"Name\" und \"Text\" aufjedenfall (!) aus";
}
else
{
$name = $_POST["name"];
// ..noch ein paar $variablen

$insert = mysql_query("INSERT INTO gb (name,mail,page,text,created,ip) VALUES ('$name','$mail','$page','$text',Now(),'$ip')");

header("Location: index.php?go=gb");
die;
}
die;
}

if(isset($_GET['del']))
{
$did = $_GET['id'];

$dele = mysql_query("DELETE FROM gb WHERE id = '$did'");

header("Location: index.php?go=gb");
die;
}

Das wars...da beschwert er sich

help plz
mfg
 
Sorry, ich check vllt nicht ganz so schnell, aber die variable $runden wird doch
PHP:
$select = mysql_query("SELECT * FROM online WHERE nick = '".$_SESSION['nick']."'");
$row = mysql_fetch_array($select);

$old = $row['check'];

$rechne = time() - $old;
$runden = round($rechne);
definiert, oder?! ^^

Und wo wird denn in meinem header vorher ein echo "ausgesendet" ?:confused:

help please :confused:

danke dir :)
 
Es reicht schon,
wenn vor dem <?PHP ein Leerzeichen oder soetwas steht um diese Fehlermeldung zu bekommen...
 
Warning: Cannot modify header information - headers already sent by (output started at /home/www/ncf20/html/glen/index.php:30) in /home/www/ncf20/html/glen/gb.php on line 21

Ist bei deinem ersten Posting der erste Quellcodeausschnitt die index.php? Wenn nicht, poste sie bitte.

mfg, snuu
 
ob_start(); bringt leider nix!

die index.php ?
Die Ganze? Das ist aber viel...moment

Code:
? session_start();
include("time.php");
include("dbconnect.php");
?>
<html>
<body bgcolor="#BEBEBE" marginwidth="0" marginheight="0" leftmargin="0" topmargin="0">
<?
echo "
<table width='100%' border='0' height='95%' cellspacing='0' cellpadding='0' style='border-collapse: collapse;'>
  <tr> 
    <td colspan='3' height='134'><img src='head.gif' width='100%' height='133' border='0'></td>
  </tr>
  <tr> 
    <td colspan='3' height='11'><img src='line.gif' width='100%' height='11' border='0'></td>
  </tr>
  <tr> 
    <td height='39%' width='20%'>"; 

Statistik 2";

echo "</td>
    <td height='90%' width='1%' class='trenn' rowspan='5'>&shy</td>
    <td height='70%' width='79%' rowspan='4' valign='top'><center>";

switch($_GET['go']) 
{
...
case "logout":
include "logout.php";
break;

default:
include "news.php";
break;
}


echo "</td>
  </tr>
  <tr> 
	<td class='tut' height='6%' width='20%'>&shy</td></tr>
<tr>
    <td height='39%' width='20%'>"; die Statistik ";

echo "</td>
    </tr>
<tr> <td class='news' height='6%' width='20%'>&shy</td></tr>
  <tr> <td> &shy </td>";

echo "<td><center><table width='79%' style='border-collapse: collapse;'>";
echo "<tr><td> Die Links usw</td></tr>";
echo "</table></td></tr>";

echo "    <tr><td colspan='3' height='11'><img src='line.gif' width='100%' height='11' border='0'></td>
  </tr>
  <tr> 
    <td width='20%' height='2'>&shy</td>
    <td width='1%' height='2'>&shy</td>
    <td width='79%' height='2'>&shy</td>
  </tr>
</table>
";
?>
Hab versucht unwichtiges zu kürzen! Hoffentlich blickt ihr jetzt noch durch den Code der index.php!

mfg

Nochmal danke für euere Bemühungen!
 
Also:
Der Location-Header ist nicht dazu gedacht, um den Benutzer nachträglich wei-
terzuleiten!

Sprich: Wenn du dem User irgend etwas anzeigen willst, und ihn dann weiter-
leiten willst, kommst du um einen Meta-Refresh oder JavaScript nicht herum.

Wenn es heißt, dass vor der header-Anwesiung keine Zeichen an den Client ge-
sendet werden dürfen, dann bedeuted das nicht, dass du zuerst irgend welche
schlechten echo-HTML Mischungen anwendest, und dann weiterleitest, sondern,
dass eben gar nichts an den Client gesendet weren darf!

Beispiele:
Code:
// folgende Beispiele sind falsch:

//---
echo "tralala";
header("Location: http://deineseite/datei.html");
//---
?>
lalala, unnützes Zeugs
<?php
header("Location: http://deineseite/datei.html");
//---

// usw...


// besser:
if ($bWeiterleiten) {
    header("Location: http://deineseite/datei.html");
} else {
    // Ausgabe
}
Ps: Location-Angaben müssen immer aus einer absoluten URI bestehen!
Code:
Falsch:
Location: index.php

Richtig:
Location: http://deineseite/index.php
 
Zurück