Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [pomoc]Sonda
Forum PHP.pl > Forum > Gotowe rozwiązania
d12
Witam. Ściągłem sobie skrypt jaco. Sonda 1.0, skonfigurowałem i wszystko ok. Głosuje i wywala taki błąd:
Warning: Cannot modify header information - headers already sent by (output started at c:usrkrasnalwwwtpoll.php:8) in c:usrkrasnalwwwtpollinc.php on line 95
A oto plik inc.php
[php:1:32fe30dd4e]
<?

# === === === === === === === ===

# autor: Paweł Jaczewski #
# email: jaco@g3.pl #
# strona: http://phparea.xu.pl #

# === === === === === === === ===


function poll_form() {

global $a_tbl, $b_tbl;


$query = "SELECT * FROM $a_tbl ORDER BY id DESC";
$result = mysql_query($query);

$r = mysql_fetch_array($result);

$id = $r['id'];
$votes = $r['votes'];
$title = $r['title'];


// =======================================
// zmiana wygladu formularza
// =======================================

echo '<form method="post" name="vote" action="poll.php">';
echo '<table border="0" align="center" width="100%">';
echo '<tr>
<td colspan="2"><p style="{font-family:Verdana;
font-size: 11px;
text-align: center;
text-valign:
top;font-weight: bold;
color:black">
'.$title.'<br></td>
</tr>';

$qu_ = "SELECT * FROM $b_tbl WHERE vid='$id' ORDER BY id";
$re_ = mysql_query($qu_);

while($r_ = mysql_fetch_array($re_)) {

$value = $r_['value'];
$title = $r_['title'];

if($title<>'')

echo '<tr>
<td valign="top"><input type="radio" name="voteVALUE" value="'.$value.'"></td>
<td class="menu" width="90%"><p style="{font-family:Verdana;
font-size: 11px;
text-align: left;
text-valign:
top;font-weight: normal;
color:black"> '.$title.'</td>
</tr>';


}

echo '
<tr>
<td colspan="2" class="menu">
<center><input type="submit" name="ok" value="Głosuj" style="background-color: #C9D7DA; font-family: Verdana; font-size: 11px; border-bottom: black 1px solid; border-top : black 1px solid; border-left: black 1px solid; border-right: black 1px solid;">

<p style="{font-family:Verdana;
font-size: 10px;
text-align: center;
text-valign:top;
font-weight: bold;
color:black">

[<a href="poll.php">wyniki</a> | <a href="poll.php?cmd=old">ankiety</a>]</td>
</tr>
</table>
<input type="hidden" name="cmd" value="count">
<input type="hidden" name="pollID" value="'.$id.'">
</form>';

}




function count_poll($id, $val) {

global $a_tbl, $b_tbl, $poll_cookie, $poll_err;

if($poll_cookie<>10) {
setcookie("poll_cookie", "10", time()+3700);
}

if($poll_cookie<>10) {

// ===========================================

$query = "SELECT * FROM $a_tbl WHERE id='$id'";
$result = mysql_query($query);
$r = mysql_fetch_array($result);


$votes = $r['votes'];
$votes++;

$query = "UPDATE $a_tbl SET votes='$votes' WHERE id='$id'";
$result = mysql_query($query);

// ============================================

$query = "SELECT * FROM $b_tbl WHERE vid='$id' AND value='$val'";
$result = mysql_query($query);
$r = mysql_fetch_array($result);

$count = $r['count'];
$count++;


$query = "UPDATE $b_tbl SET count='$count' WHERE vid='$id' AND value='$val'";
$result = mysql_query($query);

$poll_err = ' - Dzięki za oddanie głosu!</b>';

} else {

$poll_err = ' -
<p style="{font-family:Verdana;
font-size: 11px;
text-align: left;
text-valign:
top;font-weight: normal;
color:black">
<b>Nie możesz 2 razy głosować!</b></p>';


}

}


function poll_result($id='no') {

global $a_tbl, $b_tbl, $theme;

if($id<>'no') {

$query = "SELECT * FROM $a_tbl WHERE id='$id'";

} else {

$query = "SELECT * FROM $a_tbl ORDER BY id DESC LIMIT 1";

}

$result = mysql_query($query);
$r = mysql_fetch_array($result);

$id = $r['id'];
$votes = $r['votes'];
$title = $r['title'];


echo '<table width="300" border="0" valign="top" align="center">
<tr>
<td class="menu" colspan="2" ><center>
<b>
'.$title.'</b><br><br></td>
</tr>';

$query = "SELECT * FROM $b_tbl WHERE vid='$id' ORDER BY value";
$result = mysql_query($query);

while($r = mysql_fetch_array($result)) {

$title = $r['title'];
$count = $r['count'];

if($title<>'') {

if($votes<>0) {
$a = $count / $votes;
$a = $a * 100;
$a = round($a);
$b = $a * 2;
} else {
$a = 0;
$b = 0;
}

echo '<tr>

<td class="menu" width="30%">
'.$title.'</td>
<td class="menu" ><img src="poll/poll.gif" height="10" width="'.$b.'"> '.$a.'% ('.$count.')</td>
</tr>';


}

}

echo '<table width="90%" border="0" align="center">
<tr>
<td class="menu" colspan="2" ><br><br><center>ł&plusmn;cznie głosów oddano: <b>'.$votes.'</b></td>
</tr>';
echo '</table>';

}


function old_poll() {

global $a_tbl, $b_tbl, $theme;


$query = "SELECT * FROM $a_tbl ORDER BY id DESC";
$result = mysql_query($query);
$num = mysql_num_rows($result);

$s = 0;

if($num>1) {

echo '<hr size="1" noshade><center><b>Stare sondy</b></center><hr size="1" noshade><br>';

}

while($r = mysql_fetch_array($result)) {

$pollID = $r['id'];

if($s<>0) {
poll_result($pollID);
echo '<hr size="1" noshade><br>';
}

$s++;
}








}


?>[/php:1:32fe30dd4e]
czachor
przed wysłaniem ciacha nie możesz nic wysyłać do przeglądarki (żadnego htmla)... coś pewnie masz wstawione przed sondą, musisz tak poprawić całość, żeby najpierw poleciało ciacho, a potem pozostała zawartość strony
d12
To nie mój skrypt. A nie znam się na php sad.gif. Czy mógły by ktoś sprubować zmodyfikować skrypt? Z góry wielkie dzięki :-)
ebe
Skrypt skoro został udostepniony do użytkowania jest na 99% poprawny to Ty musisz go umieścić w miejscu przed który NIC nie zostało wypisane na stronie żaden znacznik nawet <html> polecam wkleić skrypt na samym początku strony czyli:



Kod
<? ten skrypt... ?>



<html> właściwa strona...



</html>
d12
Niestety nic to nie daje sad.gif
czachor
Cytat
Warning: Cannot modify header information - headers already sent by (output started at c:usrkrasnalwwwtpoll.php:8 ) in c:usrkrasnalwwwtpollinc.php on line 95

no to poczęstuj jeszcze plikiem poll.php, bo tam w 8 linii coś wysyła jak widać zresztą w komunikacie :wink:
d12
Oto poczęstunek smile.gif
[php:1:a4b44094f8]<?php

<p style="{font-family:Verdana;
font-size: 12px;
text-align: left;
text-valign:top;
font-weight: bold;
color:black">
<?
include('poll/config.php');
if($cmd=='count') count_poll($pollID, $voteVALUE);
?>
<?



if($cmd=='old') {


echo 'Wyniki głosowania:'.$poll_err;


echo '';
poll_result();
echo '';
old_poll();


} else {


echo 'Wyniki głosowania'.$poll_err;

echo '<br>';
poll_result();
echo '<div align="right"><a href="poll.php?cmd=old">stare sondy >></a></div><br>';



}


?>
?>[/php:1:a4b44094f8]
d12
Umie ktoś zaradzić na ten problem? smile.gif
czachor
Błąd powoduje te kilka pierwszych linijek z kodem HTML; zmień początek pliku na ten kod:[php:1:a57449ad3c]
<?
include('poll/config.php');
if($cmd=='count') count_poll($pollID, $voteVALUE);
?>
<p style="{font-family:Verdana;
font-size: 12px;
text-align: left;
text-valign:top;
font-weight: bold;
color:black">
<?
if($cmd=='old') {
echo 'Wyniki głosowania:'.$poll_err;
// i ciąg dalszy kodu...
?>[/php:1:a57449ad3c]
Najpierw musi być wywołana funkcja count_poll(), a potem dopiero jakiś HTML. Teraz powinno już być dobrze.
d12
Wielkie dzięki czachor. Bardzo mi pomogłeś! smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.