Jonas Skrevet 2. september 2004 Del Skrevet 2. september 2004 Heisann Plutselig en dag funka ikke voten på siden min. Hvis jeg trykker på "resultater"-knappen vises bare stemme-alternativene. Vet det står en IF og to variabler, og ser at de aldri blir endret i koden. Hadde jeg vist hva det i IF'en betyr hadde jeg sikker fiksa det, men det vet jeg ikke (Se siden min for eksempel) Her er koden: <?php $RESULT_FILE_NAME = "php_poll/poll_data.txt"; $QUESTION = "<td><p>Hva synes du om siden?</p></td>"; $ANSWER = array("Nydelig!", "Bra", "Passe..", "Dårlig!"); $IMG_DIR_URL = "php_poll/vote"; $REVOTE_TIME = 3600; if (! $vote && ! $result) { echo "<FORM METHOD=\"POST\" ACTION=\"\">\n"; echo "<TABLE WIDTH=\"100%\" BORDER=0><TR><TD><TABLE WIDTH=\"100%\" BORDER=0>\n"; echo "<TR>$QUESTION</TR>\n"; while (list($key, $val) = each($ANSWER)) { echo "<TR><TD align=\"left\"><INPUT TYPE=\"radio\" NAME=\"answer\" VALUE=\"$key\"> $val</TD></TR>\n"; } echo "<TR><TD><INPUT STYLE=\"background-color:#79c4e2; FONT-SIZE: 8pt; COLOR: #354c74; FONT-FAMILY: tahoma;\" TYPE=\"Submit\" NAME=\"vote\" VALUE=\" Stem \"> <INPUT STYLE=\"background-color:#79c4e2; FONT-SIZE: 8pt; COLOR: #354c74; FONT-FAMILY: tahoma;\" TYPE=\"Submit\" NAME=\"result\" VALUE=\"Resultat\"></TD></TR>\n"; echo "</TABLE></TD></TR></TABLE></FORM>"; } else { $file_array = file($RESULT_FILE_NAME); if ($answer < count($ANSWER) && $vote) { if (count($file_array) < count($ANSWER)) { $file_array = array("0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n"); } $old_answer = $file_array[$answer]; $old_answer = preg_replace("/\n\r*/", "", $old_answer); $file_array[$answer] = ($old_answer + 1)."\n"; $file = join('', $file_array); $fp = fopen("$RESULT_FILE_NAME", "w"); flock($fp, 1); fputs($fp, $file); flock($fp, 3); fclose($fp); } while (list($key, $val) = each($file_array)) { $total += $val; } echo "<center><p STYLE=\"COLOR: #354c74;\">Resultater:</p></center>"; echo "<TABLE CELLSPACING=2 CELLPADDING=1 BORDER=0>"; while (list($key, $val) = each($ANSWER)) { $percent = $file_array[$key] * 100 / $total; $percent_int = floor($percent); $percent_float = number_format($percent, 1); $tp += $percent_float; echo "<tr><td> $ANSWER[$key] </td><td> <img height=9 src=\"$IMG_DIR_URL/vote_left.gif\"><img height=9 width=\"$percent_int\" src=\"$IMG_DIR_URL/vote_middle.gif\"><img height=9 src=\"$IMG_DIR_URL/vote_right.gif\"></td><td> $percent_int %</td></tr>"; } echo "</TABLE><br>"; echo "<p STYLE=\"COLOR: #354c74;\">Antall stemmer: $total</p>"; } ?> Lenke til kommentar
jorgis Skrevet 2. september 2004 Del Skrevet 2. september 2004 Problemet ditt ligger i at du har start.no (home.no.net) som webhost, og at de nettopp oppgraderte PHP-versjonen. Den har register_globals avslått som default. Ergo kan du ikke lenger hente variabler rett fra løse luften. Gå gjennom koden din og prøv å finne ut hvor det er meningen at variablene skal komme fra. Skal de komme fra et skjema med POST, bytter du ut $variabelnavn med $_POST['variabelnavn']. Er det data fra skjema med GET eller adresselinjen, bruker du $_GET['variabelnavn']. Lenke til kommentar
Jonas Skrevet 2. september 2004 Forfatter Del Skrevet 2. september 2004 Nå får jeg vist resultatene, men hvis jeg stemmer, stemmer jeg blankt! Noen som ser feilen i koden? <?php $RESULT_FILE_NAME = "php_poll/poll_data.txt"; $QUESTION = "<td><p>Hva synes du om siden?</p></td>"; $ANSWER = array("Nydelig!", "Bra", "Passe..", "Dårlig!"); $IMG_DIR_URL = "php_poll/vote"; $REVOTE_TIME = 3600; if (! $_POST['vote'] && ! $_POST['result']) { echo "<FORM METHOD=\"POST\" ACTION=\"\">\n"; echo "<TABLE WIDTH=\"100%\" BORDER=0><TR><TD><TABLE WIDTH=\"100%\" BORDER=0>\n"; echo "<TR>$QUESTION</TR>\n"; while (list($key, $val) = each($ANSWER)) { echo "<TR><TD align=\"left\"><INPUT TYPE=\"radio\" NAME=\"answer\" VALUE=\"$key\"> $val</TD></TR>\n"; } echo "<TR><TD><INPUT STYLE=\"background-color:#79c4e2; FONT-SIZE: 8pt; COLOR: #354c74; FONT-FAMILY: tahoma;\" TYPE=\"Submit\" NAME=\"vote\" VALUE=\" Stem \"> <INPUT STYLE=\"background-color:#79c4e2; FONT-SIZE: 8pt; COLOR: #354c74; FONT-FAMILY: tahoma;\" TYPE=\"Submit\" NAME=\"result\" VALUE=\"Resultat\"></TD></TR>\n"; echo "</TABLE></TD></TR></TABLE></FORM>"; } else { $file_array = file($RESULT_FILE_NAME); if ($_POST['ANSWER'] < count($ANSWER) && $_POST['vote']) { if (count($file_array) < count($_POST['ANSWER'])) { $file_array = array("0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n"); } $old_answer = $file_array[$_POST['ANSWER']]; $old_answer = preg_replace("/\n\r*/", "", $old_answer); $file_array[$_POST['ANSWER']] = ($old_answer + 1)."\n"; $file = join('', $file_array); $fp = fopen("$RESULT_FILE_NAME", "w"); flock($fp, 1); fputs($fp, $file); flock($fp, 3); fclose($fp); } while (list($key, $val) = each($file_array)) { $total += $val; } echo "<center><p STYLE=\"COLOR: #354c74;\">Resultater:</p></center>"; echo "<TABLE CELLSPACING=2 CELLPADDING=1 BORDER=0>"; while (list($key, $val) = each($ANSWER)) { $percent = $file_array[$key] * 100 / $total; $percent_int = floor($percent); $percent_float = number_format($percent, 1); $tp += $percent_float; echo "<tr><td> $ANSWER[$key] </td><td> <img height=9 src=\"$IMG_DIR_URL/vote_left.gif\"><img height=9 width=\"$percent_int\" src=\"$IMG_DIR_URL/vote_middle.gif\"><img height=9 src=\"$IMG_DIR_URL/vote_right.gif\"></td><td> $percent_int %</td></tr>"; } echo "</TABLE><br>"; echo "<p STYLE=\"COLOR: #354c74;\">Antall stemmer: $total</p>"; } ?> Lenke til kommentar
jorgis Skrevet 2. september 2004 Del Skrevet 2. september 2004 Har du sjekket over alt, og vært konsistent på hva du bruker? Ser at du veksler mellom $_POST['ANSWER'] og $ANSWER endel. Lenke til kommentar
Jonas Skrevet 3. september 2004 Forfatter Del Skrevet 3. september 2004 (endret) Har du sjekket over alt, og vært konsistent på hva du bruker? Ser at du veksler mellom $_POST['ANSWER'] og $ANSWER endel. Det er det jeg har problemer med. Jeg ser at det står count et par steder, men jeg vet ikke om den teller anntall alternativer i array'et, eller om den skal hente stemmen til brukeren! Jeg prøvde å sette en echo under denne IF'en, men ingen ting kom frem: if ($_POST['ANSWER'] < count($ANSWER) && $_POST['vote']) { Hva betyr && ? Plusse sammen to variabler? "vote"-variablen er ikke et tall som jeg kan se Det er bare navnet på en knapp. Endret 3. september 2004 av Jonas Lenke til kommentar
dabear Skrevet 3. september 2004 Del Skrevet 3. september 2004 Noen som ser feilen i koden?Ja jøss. Og du ser ikke feilene sjøl? Trur du er totalt blind jeg mann. Her er en modifisert versjon, mye igjen og fikse, men det får du gjøre sjøl (om du gjør det veit jeg ikke). Jeg har fjerna doble fnutter og erstatta dem med enkle (som er absolutt anbefalt), og fjerna noe, men scriptet ditt var så trakasert at jeg simpelthen ikke gidda gjøre om alle feilene dine. Hvorfor nested tables? Alle tager skal være lowercase ++ <?php $RESULT_FILE_NAME = 'php_poll/poll_data.txt'; $QUESTION = '<td><p>Hva synes du om siden?</p></td>'; $ANSWER = array('Nydelig!', 'Bra', 'Passe..', 'Dårlig!'); $IMG_DIR_URL = 'php_poll/vote'; $REVOTE_TIME = 3600; if (! $vote && ! $result) { echo <<<form <form method="post" action=""> <table width="100%" style="border: 1px solid black;"> <tr> <td> <table width="100%" style="border: 0;"> <tr>$QUESTION</tr> form; foreach($ANSWER as $key => $val) { echo '<tr><td align="left"><input type="radio" name="answer" value="' . $key . '">' . $val . "</td></tr>\n"; } echo <<<hello <tr> <td><input style="background-color:#79c4e2; font-size: 8pt; color: #354c74; font-family: tahoma;" type="Submit" name="vote" value=" Stem "> <input style="background-color:#79c4e2; font-size: 8pt; color: #354c74; font-family: tahoma;" type="Submit" name="result" value="Resultat"></td></tr> </table></td></tr></table></form> hello; } else { $file_array = file($RESULT_FILE_NAME); if($answer < count($ANSWER) && $vote) { $count_answer = count($ANSWER); if (count($file_array) < $count_answer) { $file_array = array("0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n"); } $old_answer = $file_array[$answer]; $old_answer = preg_replace("/\n\r*/", "", $old_answer); $file_array[$answer] = ($old_answer + 1)."\n"; $file = join('', $file_array); $fp = fopen($RESULT_FILE_NAME, 'w'); flock($fp, 1); fputs($fp, $file); flock($fp, 3); fclose($fp); } while (list($key, $val) = each($file_array)) { $total += $val; } echo '<center><p style="color: #354c74;">Resultater:</p></center> <table cellspacing="2" cellpadding="1" style="border: 0;">'; foreach($ANSWER as $key => $val) { $percent = $file_array[$key] * 100 / $total; $percent_int = floor($percent); $percent_float = number_format($percent, 1); $tp += $percent_float; echo <<<answer <tr> <td>{$ANSWER[$key]}</td> <td> <img height="9" src="$IMG_DIR_URL/vote_left.gif"><img height="9" width="$percent_int" src="$IMG_DIR_URL/vote_middle.gif"><img height="9" src="$IMG_DIR_URL/vote_right.gif"></td> <td>  $percent_int%</td></tr>\n answer; } echo '</table><br /> <p style="color: #354c74;">Antall stemmer: ' . $total . '</p>'; } ?> Lenke til kommentar
Jonas Skrevet 3. september 2004 Forfatter Del Skrevet 3. september 2004 (endret) dabear, hvis du hadde lest tråden min godt hadde du sett at problemet var at resultat og vote-knappen ikke virket. Du hadde også skjønt at jeg ikke fant feilene. Derfor spør jeg! Trur du er totalt blind jeg mann. Edit: Og hvis du ikke fikk det med deg: Koden din fikset ikke problemet! Endret 3. september 2004 av Jonas Lenke til kommentar
Torbjørn Skrevet 3. september 2004 Del Skrevet 3. september 2004 er det du som har skrevet originalskriptet? Lenke til kommentar
Jonas Skrevet 3. september 2004 Forfatter Del Skrevet 3. september 2004 er det du som har skrevet originalskriptet? Nei, hvordan det? Lenke til kommentar
Torbjørn Skrevet 3. september 2004 Del Skrevet 3. september 2004 isåfall hadde det vært rart at du ikke visste hva din egen kode gjorde. du må bytte ut alle forekomster av $variabel, med $_POST['variabel'], eller andi $variabel = $_POST['variabel']; øverst i ditt skript. bortsett fra det trenger du ikke vite noen ting. Lenke til kommentar
Cucum(r) Skrevet 3. september 2004 Del Skrevet 3. september 2004 Jeg forstår ikke helt hvorfor folk henvender seg hit når de vil ha hjelp med ferdige script, da de fleste skikkelige script har egne support-forum. Lenke til kommentar
Jonas Skrevet 3. september 2004 Forfatter Del Skrevet 3. september 2004 Jeg forstår ikke helt hvorfor folk henvender seg hit når de vil ha hjelp med ferdige script, da de fleste skikkelige script har egne support-forum. Leeengde siden jeg lastet det ned, og nå husker jeg ikke hvor. Torbjørn, jeg er klar over det, men skriptet har to $answer, en som inneholder spørsmål, og en som inneholder stemmen til brukeren. Jeg skjønner ikke helt hvilken som brukes hvor Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå