Eigenenes (Umfrage-) Modul -> Problem mit Cookie setzen

Gesperrt
MatzeP
Beiträge: 3
Registriert: Mi 14. Jul 2004, 19:09
Wohnort: Lingen
Kontaktdaten:

Eigenenes (Umfrage-) Modul -> Problem mit Cookie setzen

Beitrag von MatzeP »

Hi!

wir sind mit unserer Homepage vor kutzem auf Contenido umgestiegen; dabei hab ich verschiedene Sachen von der alten Seite im Prinzip einfach "mitgenommen" und auf Contenido umgeschrieben.

Nun folgendes Problem: Das Umfrage Modul basiert auf Cookies; und ebendiese kann ich nicht setzen. Es ist kein Parse-Error oder so in dem Script; es wird genau so (nur eben mit anderen Antworten und ein paar anderen HTML Stilen) auf unserer alten Seite verwendet.
Im Error log befindet sich nach dem Voten nur folgender Eintrag:
ErrorLog hat geschrieben: [13-Jan-2005 22:11:45] PHP Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/rodijah/cms/front_content.php(563) : eval()'d code:9) in /www/htdocs/rodijah/cms/front_content.php(563) : eval()'d code on line 492
... dabei wird die header-Funktion doch garnicht verwendet...

Hier ist der Quelltext des Votes:

Code: Alles auswählen

<?
//include_once("config.php");

$antwort[1] = "Oberaffengeil!";
$antwort[2] = "super";
$antwort[3] = "geht so";
$antwort[4] = "Geschmacksache";
$antwort[5] = "einfach schlecht";
$antwort[6] = "ich war nicht da";

$umfrage_form = "
      <table width="100%">
       <form method="POST" action="" . $PHP_SELF . "?idcat=" . $idcat . "">
        <tr>
          <td width="100%"><span class="umfrage_antwort"><input type="radio" value="1" name="vote" style="height: 18px;" class="umfrage" checked> " . $antwort[1] . "</span></td>
        </tr><tr>
          <td colspan="2"><span class="umfrage_antwort"><input type="radio" value="2" name="vote" style="height: 15px;" class="umfrage"> " . $antwort[2] . "</span></td>
        </tr><tr>
          <td colspan="2"><span class="umfrage_antwort"><input type="radio" value="3" name="vote" style="height: 15px;" class="umfrage"> " . $antwort[3] . "</span></td>
        </tr><tr>
          <td colspan="2"><span class="umfrage_antwort"><input type="radio" value="4" name="vote" style="height: 15px;" class="umfrage"> " . $antwort[4] . "</span></td>
        </tr><tr>
          <td colspan="2"><span class="umfrage_antwort"><input type="radio" value="5" name="vote" style="height: 15px;" class="umfrage"> " . $antwort[5] . "</span></td>
        </tr><tr>
          <td colspan="2"><span class="umfrage_antwort"><input type="radio" value="6" name="vote" style="height: 15px;" class="umfrage"> " . $antwort[6] . "</span></td>
        </tr><tr>
          <td width="100%" colspan="2"><p align="center"><span class="umfrage_antwort">
		    <input type="submit" value="Vote!" name="gerade_gevoted" class="umfrage">
			<input type="submit" value="Ergebnisse anzeigen" name="ergebnisse_anzeigen" class="umfrage"></td>
        </tr>
       </form>
      </table>";

//mysql_connect ($cfg['mysql']['host'], $cfg['mysql']['user'], $cfg['mysql']['pw']) or die (mysql_error());
//mysql_select_db ($cfg['mysql']['db']) or die (mysql_error());

list ($stimmen[1], $stimmen[2], $stimmen[3], $stimmen[4], $stimmen[5], $stimmen[6], $stimmen[0], $prozent[1], $prozent[2], $prozent[3], $prozent[4], $prozent[5], $prozent[6], $umfrage_ergebnis) = calc();

if(!isset ($RadiJohVote)) 
{
 if(isset ($gerade_gevoted))
 {
   setcookie ("RadiJohVote", true, time() + 6151680);
   switch($vote) {
	case 1:
	 $stimmen[1]++;
	 break;
	case 2:
	 $stimmen[2]++;
	 break;
	case 3:
	 $stimmen[3]++;
	 break;
	case 4:
	 $stimmen[4]++;
	 break;
	case 5:
	 $stimmen[5]++;
	 break;
	case 6:
	 $stimmen[6]++;
	 break;
   }

   mysql_query ("UPDATE `umfrage` SET `1` = '" . $stimmen[1] . "', `2` = '" . $stimmen[2] . "', `3` = '" . $stimmen[3] . "', `4` = '" . $stimmen[4] . "', `5` = '" . $stimmen[5] . "', `6` = '" . $stimmen[6] . "' WHERE `id` = '1' LIMIT 1 ;") or die (mysql_error());

   list($stimmen[1], $stimmen[2], $stimmen[3], $stimmen[4], $stimmen[5], $stimmen[6], $stimmen[0], $prozent[1], $prozent[2], $prozent[3], $prozent[4], $prozent[5], $prozent[6], $umfrage_ergebnis) = calc();

   $umfrage = $umfrage_ergebnis;
 }
 else{
  $umfrage = $umfrage_form;
 }

}
else{
  $umfrage = $umfrage_ergebnis;
}

if (isset ($ergebnisse_anzeigen))
{
  $umfrage = $umfrage_ergebnis;
}

/* Definition der Funktion */
function calc() 
{
  global $antwort;

  $query = mysql_query("SELECT * FROM `umfrage` WHERE `id` = '1';") or die (mysql_error());

   $stimmen[1] = mysql_result ($query, 0, '1');
   $stimmen[2] = mysql_result ($query, 0, '2');
   $stimmen[3] = mysql_result ($query, 0, '3');
   $stimmen[4] = mysql_result ($query, 0, '4');
   $stimmen[5] = mysql_result ($query, 0, '5');
   $stimmen[6] = mysql_result ($query, 0, '6');

	$stimmen[0] = $stimmen[1] + $stimmen[2] + $stimmen[3] + $stimmen[4] + $stimmen[5] + $stimmen[6];

  if($stimmen[0] == 0)
   {
	$prozent[1] = "0";
	$prozent[2] = "0";
	$prozent[3] = "0";
	$prozent[4] = "0";
	$prozent[5] = "0";
	$prozent[6] = "0";
	
	$balkenlaenge[1] = 1;
	$balkenlaenge[2] = 1;
	$balkenlaenge[3] = 1;
	$balkenlaenge[4] = 1;
	$balkenlaenge[5] = 1;
	$balkenlaenge[6] = 1;
   }
   else
	{
	$prozent[1] = round (100 * $stimmen[1] / $stimmen[0]);
	$prozent[2] = round (100 * $stimmen[2] / $stimmen[0]);
	$prozent[3] = round (100 * $stimmen[3] / $stimmen[0]);
	$prozent[4] = round (100 * $stimmen[4] / $stimmen[0]);
	$prozent[5] = round (100 * $stimmen[5] / $stimmen[0]);
	$prozent[6] = round (100 * $stimmen[6] / $stimmen[0]);

	$balkenlaenge[1] = round ($prozent[1] / 1.2);
	$balkenlaenge[2] = round ($prozent[2] / 1.2);
	$balkenlaenge[3] = round ($prozent[3] / 1.2);
	$balkenlaenge[4] = round ($prozent[4] / 1.2);
	$balkenlaenge[5] = round ($prozent[5] / 1.2);
	$balkenlaenge[6] = round ($prozent[6] / 1.2);
	}

  $umfrage_ergebnis = "
       <table width="100%">
		<tr>
          <td colspan="2" height="10"><span class="umfrage_antwort">" . $antwort[1] . " (" . $stimmen[1] . ")<br>
          <img alt="" . $prozent[1] . "%" src="/bilder/scripte/u_1.jpg" height="10" width="" . $balkenlaenge[1] . ""> " . $prozent[1] . "%</span></td>
        </tr>
        <tr>
          <td colspan="2" height="10"><span class="umfrage_antwort">" . $antwort[2] . " (" . $stimmen[2] . ")<br>
          <img alt="" . $prozent[2] . "%" src="/bilder/scripte/u_2.jpg" height="10" width="" . $balkenlaenge[2] . ""> " . $prozent[2] . "%</span></td>
        </tr>
        <tr>
          <td colspan="2" height="10"><span class="umfrage_antwort">" . $antwort[3] . " (" . $stimmen[3] . ")<br>
          <img alt="" . $prozent[3] . "%" src="/bilder/scripte/u_3.jpg" height="10" width="" . $balkenlaenge[3] . ""> " . $prozent[3] . "%</span></td>
        </tr>
        <tr>
          <td colspan="2" height="10"><span class="umfrage_antwort">" . $antwort[4] . " (" . $stimmen[4] . ")<br>
          <img alt="" . $prozent[4] . "%" src="/bilder/scripte/u_4.jpg" height="10" width="" . $balkenlaenge[4] . ""> " . $prozent[4] . "%</span></td>
        </tr>
        <tr>
          <td colspan="2" height="10"><span class="umfrage_antwort">" . $antwort[5] . " (" . $stimmen[5] . ")<br>
          <img alt="" . $prozent[5] . "%" src="/bilder/scripte/u_5.jpg" height="10" width="" . $balkenlaenge[5] . ""> " . $prozent[5] . "%</span></td>
        </tr>
        <tr>
          <td colspan="2" height="10"><span class="umfrage_antwort">" . $antwort[6] . " (" . $stimmen[6] . ")<br>
          <img alt="" . $prozent[6] . "%" src="/bilder/scripte/u_6.jpg" height="10" width="" . $balkenlaenge[6] . ""> " . $prozent[6] . "%</span></td>
        </tr>
        <tr class="menutable-ohnemarkierung">
          <td colspan="2" height="10" class="menutable-ohnemarkierung"><span class="umfrage_antwort"><b>Gesamt: " . $stimmen[0] . "</b></span></td>
        </tr>
	   </table>";
	   
  return array($stimmen[1], $stimmen[2], $stimmen[3], $stimmen[4], $stimmen[5], $stimmen[6], $stimmen[0], $prozent[1], $prozent[2], $prozent[3], $prozent[4], $prozent[5], $prozent[6], $umfrage_ergebnis);
}


echo $umfrage;

?>
... das ist der Output; einen Input gibt es hier nicht.

hier ist unsere Seite:
http://www.RadiJOH.de/cms
hier die alte, wos funktioniert:
http://www.RadiJOH.de/radijoh.php


Vielen Dank für die Hilfe
Matze
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

ganz einfach: Cookies können nur gesetzt werden, bevor irgendeine Ausgabe auf der Website passiert ist.

vgl auch die Funktionsbeschreibung zu setcookie
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

du musst an den anfang der front_content.php ein ob_start(); setzen und an das ende ein ob_end_flush();

dann kannst du in modulen cookies setzen.

gruss,
andreas
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
MatzeP
Beiträge: 3
Registriert: Mi 14. Jul 2004, 19:09
Wohnort: Lingen
Kontaktdaten:

Beitrag von MatzeP »

könntest du mir das einmal näher erklähren?

ich versetehe das nich soo ganz...
chobbert
Beiträge: 371
Registriert: Mo 14. Jul 2003, 10:14
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von chobbert »

Google hilft:

http://www.google.de/search?q=cookie+ph ... E:official


Schöne Grüße

Robert
Gesperrt