Avatar billede ®azzer® Nybegynder
10. december 2000 - 12:32 Der er 61 kommentarer og
1 løsning

Hjælp til PHP Afstemning

Nu har jeg 2 gange tidligere forsøgt at få svar på et spørgsmål som åbenbart er lidt svært.

Jeg har en afstemning...

<?
  if(isset($stem)){
    $status=\"stemt16\";
    setcookie(\"status\",$status,time()+86400);
    $counterfile = \"$stem.txt\";
    if(file_exists($counterfile))    {
            $fil = fopen($counterfile,  \"r\");
            $count = fread($fil, 8);
            fclose($fil);
    }
    else    $count=0;
    $count++;    $fil = fopen($counterfile,  \"w\");
    fwrite($fil, $count);    fclose($fil);
    header(\"Location: index.php\");
}
  $hoejre = \"hoejre.php\";
  if(isset($status) && $status == \"stemt16\"){
    setcookie(\"status\",\"stemt16\",time()+86400);
    $hoejre = \"hoejrestemt.php\";
  }
?>

Og her hentes resultatet:

<?php
$fp = fopen(\"ja.txt\", \"r\");
$ja = fread($fp, filesize(\"ja.txt\"));
fclose($fp);

$fp = fopen(\"nej.txt\", \"r\");
$nej = fread($fp, filesize(\"nej.txt\"));
fclose($fp);

$fp = fopen(\"vedikke.txt\", \"r\");
$vedikke = fread($fp, filesize(\"vedikke.txt\"));
fclose($fp);

$ialt = $ja+$nej+$vedikke;
$ja2= $ja/$ialt*100;
$nej2= $nej/$ialt*100;
$vedikke2= $vedikke/$ialt*100;
?>

<?
print \"<font face=\\\"verdana\\\" size=\\\"2\\\" color=#ffffff>\"; echo substr($ja2,0,4); print\"%\"; print\"</font>\\n\";
?>

<?
print \"<img src=\\\"zap.gif\\\" width=\\\"\"; echo substr($ja2,0,5); print \"\\\" height=\\\"12\\\" border=\\\"0\\\">\\n\";
?>

<?
print \"<font face=\\\"verdana\\\" size=\\\"2\\\" color=#ffffff>\"; echo substr($nej2,0,4); print\"%\"; print\"</font>\\n\";
?>

<?
print \"<img src=\\\"zap.gif\\\" width=\\\"\"; echo substr($nej2,0,5); print \"\\\" height=\\\"12\\\" border=\\\"0\\\">\\n\";
?>

<?
print \"<font face=\\\"verdana\\\" size=\\\"2\\\" color=#ffffff>\"; echo substr($vedikke2,0,4); print\"%\"; print\"</font>\\n\";
?>

<?
print \"<img src=\\\"zap.gif\\\" width=\\\"\"; echo substr($vedikke2,0,5); print \"\\\" height=\\\"12\\\" border=\\\"0\\\">\\n\";
?>

<?
print \"<font face=\\\"verdana\\\" size=\\\"2\\\" color=#ffffff>$ialt</font>\\n\";
?>

Problemet er lige nu at IE ikke får en cookie smidt efter sig, og netscape får en underlig \"document has been moved\" fejl, men virker når man trykker på linket til hvorhen det skulle være flyttet.

Jeg kører Apache/PHP4 på serveren så mit håb er at der findes en som er så venlig at:

1. Enten at rette mit script så det virker. ?
2. Eller lave et nyt der fungere på samme ? måde ?
Avatar billede jd Nybegynder
10. december 2000 - 12:57 #1
...vil bare lige gøre dig opmærsom på at det nedeste kode er skrevet så det fylder dobbel så meget som det kan::

print \"<font face=\\\"verdana\\\" size=\\\"2\\\" color=#ffffff>\".substr($ja2,0,4).\"%</font>\\n\";
print \"<img src=\\\"zap.gif\\\" width=\\\"\".substr($ja2,0,5).\"\\\" height=\\\"12\\\" border=\\\"0\\\">\\n\";
print \"<font face=\\\"verdana\\\" size=\\\"2\\\" color=#ffffff>\".substr($nej2,0,4).\"%</font>\\n\";
print \"<img src=\\\"zap.gif\\\" width=\\\"\".substr($nej2,0,5).\"\\\" height=\\\"12\\\" border=\\\"0\\\">\\n\";
print \"<font face=\\\"verdana\\\" size=\\\"2\\\" color=#ffffff>\".substr($vedikke2,0,4).\"%</font>\\n\";
print \"<img src=\\\"zap.gif\\\" width=\\\"\".substr($vedikke2,0,5).\"\\\" height=\\\"12\\\" border=\\\"0\\\">\\n\";
print \"<font face=\\\"verdana\\\" size=\\\"2\\\" color=#ffffff>$ialt</font>\\n\";

:)
Avatar billede ®azzer® Nybegynder
10. december 2000 - 13:00 #2
ah.. ja det kan vist godt forkortes lidt kan jeg se...
Avatar billede jd Nybegynder
10. december 2000 - 13:05 #3
har du selv skrevet den?
Avatar billede ®azzer® Nybegynder
10. december 2000 - 13:10 #4
Nej.. grund koden er en gammel en jeg fandt på nettet, som så er blevet skrevet om af en jeg kender så der virkede som jeg ville have det og så har jeg så selv lavet nogle små ændringer.
Avatar billede ®azzer® Nybegynder
10. december 2000 - 13:10 #5
Ja og så har Erik Jacobsen editeret lidt i den uden held! Det skal lige siges at koden virker fint på servere med php3
Avatar billede jd Nybegynder
10. december 2000 - 13:13 #6
virker fint? Hvad er så problemet? Er det lokalt den ikke virker, eller hvad?
Avatar billede ®azzer® Nybegynder
10. december 2000 - 13:16 #7
nu er det jo sådan at min server kører php4
Avatar billede jd Nybegynder
10. december 2000 - 13:22 #8
Oki...det lyder mærkeligt med et cookie problem, ved skift fra PHP3 til PHP4..
Avatar billede ®azzer® Nybegynder
10. december 2000 - 13:24 #9
ja meget...
Avatar billede ®azzer® Nybegynder
10. december 2000 - 13:24 #10
du er velkommen til at prøve at løse problemet
Avatar billede jd Nybegynder
10. december 2000 - 13:30 #11
Hvis du lige vil fortælle hvad der ligger i hvilke filer, og hvad de hedder, så skal jeg prøve at sætte det op!
Avatar billede ®azzer® Nybegynder
10. december 2000 - 13:38 #12
du kan få hele sitet i en mail hvis du vil ?
Avatar billede jd Nybegynder
10. december 2000 - 13:49 #13
ok... jonas@delfs.dk
Avatar billede ®azzer® Nybegynder
10. december 2000 - 14:48 #14
site sendt
Avatar billede thundercall Nybegynder
11. december 2000 - 12:15 #15
NS: Document Moved!
header(\"Location: index.php\");

Prøv:
header(\"Location: http://$HTTP_HOST$REDIRECT_URL\");
exit;

altså den fulde URL til filen...

,...Jeg vil tro at grunden til at IE ikke får Cookie er at den får besked om at skride væk fra siden inden at den får besked om at skrive en cookie,....

prøv muligvis at sætte din cookie før header(\"Location: blah\");


Avatar billede jd Nybegynder
11. december 2000 - 17:00 #16
thundercall-> Ahhh ja, det er vel det sædvanlige cookie og header problem... det med kager og headers lige efter hindanden (ligegyldigt hvilken først) fungerer ikke rigtigt.
Og det kan godt passe er det kun er i php3 det er sådan....så har vi jo også fået svaret på det spørgsmål :)

/Jon@z
Avatar billede ®azzer® Nybegynder
11. december 2000 - 17:22 #17
Det med den fulde URL virkede ikke.

Jeg har haft så mange problemer med scriptet, så jeg ville ønske hvis en af jer kunne skrive det på den rigtige måde, altså det med at cookie før header.

På forhånd mange tak.
Avatar billede jd Nybegynder
11. december 2000 - 20:19 #18
Jeg tror ikke at problemet kan løses ved at skrive det på den \"rigtige\" måde... det skal nok skrives helt om.
Avatar billede ®azzer® Nybegynder
11. december 2000 - 20:24 #19
Er det noget man kan lokke en af jer 2 til ? Min forstand på php er for begrænset til at jeg kan skrive et sådan script fra bunden.
Avatar billede jd Nybegynder
11. december 2000 - 21:04 #20
...har ik tid, for points, men det skulle da ikke være umuligt at finde noget på www.hotscripts.com/php/ under \"scripts and programs\"...
Avatar billede ®azzer® Nybegynder
11. december 2000 - 21:07 #21
Desværre ikke... mit script er for anderledes til at kunne finde det andre steder :(
Avatar billede jd Nybegynder
11. december 2000 - 21:24 #22
Hvad kan dit som andre scripts ikke kan?
Avatar billede ®azzer® Nybegynder
11. december 2000 - 21:37 #23
Det skriver til samme side... altså at man bliver på samme side.

Alle de andre jeg har set sender videre til en ny side og så kan jeg ikke bruge det til så meget for det er jo ikke så fedt at folk uanset hvad bliver smidt hen til resultatsiden....
Avatar billede thundercall Nybegynder
12. december 2000 - 10:26 #24
Måske kigger jeg på det!!

Er her ALT, hvad jeg skal bruge ??
Avatar billede ®azzer® Nybegynder
13. december 2000 - 01:03 #25
:o) .. det ville jeg da blvie glad for!

Hele Scriptet er her så hvis du kan forstå hvad meningen med scriptet er, så er her alt hvad du skal bruge.

altså scriptet sender includefilen hoejre.php videre til hoejrestemt.php når man har stemt. Og hvis man logger på igen så tjekker den om man tidligere har stemt og hvis ja sendes hoejre.php igen videre til hoejrestemt.php
Avatar billede nyhjem Nybegynder
19. december 2000 - 17:28 #26
Hmm... mener at kunne huske han har lavet det script før??*gs*
Avatar billede ®azzer® Nybegynder
19. december 2000 - 18:15 #27
*GG*

Ja Martin så kan du vel også løse problemet med hvorfor det ikke virker i IE.
Avatar billede nyhjem Nybegynder
19. december 2000 - 18:21 #28
*Gs* bruger iøjeblikket et script der ligner det der.. og fældes for det \"nye\" jeg har og det jeg lavede dengang er at setcookie skal stå over alt andet..*Ss* så hvis du har en side der hedder index.php skal set cookie bare stå aller øverst i filen før du kalder alle dine includes og før du begynder at skrive designet... så virker det skam*S*
Avatar billede ®azzer® Nybegynder
19. december 2000 - 18:28 #29
Må jeg se hvordan du vil stille det op ? Hvis du kan få scriptet til at virke skal du med glæde få point! :o)
Avatar billede nyhjem Nybegynder
19. december 2000 - 18:53 #30
<?php
if($status == \"stemt2\")
{
    setcookie(\"status\",\"stemt2\",time()+86400);


$fp = fopen(\"god.txt\", r);
$god = fread($fp, filesize(\"god.txt\"));
fclose($fp);

$fp = fopen(\"middel.txt\", r);
$middel = fread($fp, filesize(\"middel.txt\"));
fclose($fp);

$fp = fopen(\"darlig.txt\", r);
$darlig = fread($fp, filesize(\"darlig.txt\"));
fclose($fp);

$ialt = $god+$middel+$darlig;
$god2 = $god/$ialt*100;
$middel2 = $middel/$ialt*100;
$darlig2 = $darlig/$ialt*100;

$afstemning = \"
Resultatet er nu:
<br>
<img src=zap.gif width=\".substr($god2,0,5).\" height=12 border=0><br>\".substr($god2,0,4).\"% -  Blive åben.
<br>
<img src=zap.gif width=\".substr($middel2,0,5).\" height=12 border=0><br>\".substr($middel2,0,4).\"% -  Lukke midlertidig
<br>
<img src=zap.gif width=\".substr($darlig2,0,5).\" height=12 border=0><br>\".substr($darlig2,0,4).\"% - Lukke permenent.
<br>
Ialt har $ialt stemt\";
} else {
$afstemning = \"
Hvad skal starchats fremtid være?
<form action=$PHP_SELF method=post>
<input type=hidden name=cookie value=stem>
<input type=Radio name=stem value=god>Blive åben<br>
<input type=Radio name=stem value=middel>Lukke til den ny server er klar<br>
<input type=Radio name=stem value=darlig>Lukke permenent<br>
<input type=\\\"submit\\\" value=\\\"Stem\\\" style=\\\"background-color: #330090; color: #FFFFFF; font-size: 8pt; border-color:000000; font-weight: none; border: 1px outset\\\">
</form>
\";
}

if($stem)
{
  setcookie(\"status\",\"stemt2\",time()+86400);

  $counterfile = \"$stem.txt\";
  if(file_exists($counterfile))
    {
    $fil = fopen($counterfile,  \"r\");
    $count = fread($fil, 8);
    fclose($fil);
    }
  else
    $count=0;
    $count++;
    $fil = fopen($counterfile,  \"w\");
    fwrite($fil, $count);
    fclose($fil);

  header(\"Location: login.php\");
  exit();
}


include(\"design_top.php\");
include(\"design_midte.php\");
include(\"design_bund.php\");

?>

Der hvor du så vil have din afstemning ( f.eks i design_top.php ) skriver du så bare:
<? print $afstemning; ?>


Tadaa*Gs*
Avatar billede ®azzer® Nybegynder
19. december 2000 - 19:22 #31
Avatar billede nyhjem Nybegynder
19. december 2000 - 19:49 #32
*Gs* det er nu nem nok..*Ss* undefinde variable kommer i php4 medmindre du slår warnings fra i php.ini*Ss* grunden til den kommer er fordi du bruger en variable før du gider den i værdi*S*
Hvis du først skriver $status = 0; $stem = 0; eller slår warnings fra, burde det være løst*S*
Avatar billede ®azzer® Nybegynder
19. december 2000 - 21:50 #33
Martin:

Jeg får 0 fejl når jeg kører scriptet uden at
<? print $afstemning; ?>

men når:
<? print $afstemning; ?>
er på så kommer der en parseerror.


Men hvorfor er det egentlig er det script jeg brugt e før ikke virker. Det virkede fint med php3.
Avatar billede jd Nybegynder
19. december 2000 - 21:56 #34
...lige præcist fordi du har skiftet til php4 :)
Avatar billede nyhjem Nybegynder
19. december 2000 - 21:58 #35
Rasmus>> Aner \'ikk hvorfor det gamle \'ikk virker i den ny.. hvis det virkede før og du \'ikk har ændret noget velatmærke, burde det også virke nu medmindre PHP er sat op til at skriver alle de der latterlige fejl heletiden som PHP3 \'ikk sagde fejl i*Ss*

hmm... hvis den siger fejl i den linie der er det formentelig mig der har lavet en mindre BuG i indholdet af $afstemning variablen*Ss*
Ka\' bare \'ikk helt forstå det, for har kopieret det direkte fra starchat.dk hvor det virker fint*Ss* men prøv lige at se om der skulle være en mindre fejl der hvor $afstemning variablens værdi bliver defineret*S*
Avatar billede ®azzer® Nybegynder
20. december 2000 - 00:31 #36
MEGET WEIRD!! Det har nu rent faktisk lykkedes mig at få det script som Erik Jacobsen rettede i til at virke (det som jeg kæmper med). Jeg har ikke gjort en skid ved scriptet. Jeg tjekke bare på apacheserveren på min egen maskine og VUPTI så virkede.

Men... nu er det hele blevet endnu sjovere. Jeg kan nemlig ikke se at det virker på den rigtige server!!! Der sker nemlig ikke noget hos mig og jeg bruger IE 5.5

re-loaded.net/index.php <-- virker afstemningen ?
Avatar billede nyhjem Nybegynder
20. december 2000 - 00:36 #37
Rasmus>> Den virker \'ikk her :O/
Avatar billede ®azzer® Nybegynder
20. december 2000 - 00:36 #38
ARGH!

har du IE 5.5 ?
Avatar billede ®azzer® Nybegynder
20. december 2000 - 00:42 #39
Det er sku mystisk.

Der er 2 der har sagt at afstemningen virker fint og den ene brugte 5.5 ligesom mig!!
Avatar billede nyhjem Nybegynder
20. december 2000 - 01:50 #40
jeg bruger os IE 5.5, men under windows NT godt nok*Ss*
Avatar billede ®azzer® Nybegynder
20. december 2000 - 01:55 #41
Og forresten. Hvis jeg åbner siden fra Serverens IE så virker det fint!! .. underligt eller hva?
Avatar billede nyhjem Nybegynder
20. december 2000 - 01:58 #42
Jepper... her sker der bare \'ikk andet end siden refresher når jeg trykker*s*
Avatar billede ®azzer® Nybegynder
20. december 2000 - 02:00 #43
Jeps præcist!

Mon ikke at det er noget cookiehalløj ? Hos mig smider den ihvertfald ingen cookie. Kunne det være noget serveropsætning?
Avatar billede nyhjem Nybegynder
20. december 2000 - 02:04 #44
Ve\' jeg sQ \'ikk*gs* prøv at lave et php script som kun indeholder en setcookie og check den.. hvis det stadig \'ikk virker så er det nok php der er sat forkert op, ellers er det scriptet der skodder*s*
Avatar billede ®azzer® Nybegynder
20. december 2000 - 02:38 #45
: E_WARNING          - run-time errors(non fatal errors)

hvad skal jeg så skrive istedet i php.ini?
Avatar billede nyhjem Nybegynder
20. december 2000 - 02:43 #46
Jeg bruger den her*Ss*
error_reporting = E_ALL & ~E_NOTICE
Avatar billede ®azzer® Nybegynder
20. december 2000 - 02:45 #47
ok.. det står min også til men hvordan ændrere jeg så warning level  som du snakkede om ?
Avatar billede nyhjem Nybegynder
20. december 2000 - 02:49 #48
det der står ~ foran bliver slået fra*S* så det der står ovenover betyder egentlig hvis alle fejl undtagen notices, sådan ka\' du os slå warnings fra*S*
Avatar billede ®azzer® Nybegynder
20. december 2000 - 03:31 #49
Tak .. det var nemt nok at fikse!
Jeg hopper snart ud fra en bro!!!

Nu har nummer 3 og 4 meldt sig over dem som siger at det virker!

Mon ikke at det som netscape siger med at \"document has moved\" når man har stmet har noget med det at gøre ?
Avatar billede ®azzer® Nybegynder
20. december 2000 - 04:05 #50
Martin:

Hvormange point skal du have for at lave et script der virker?
Avatar billede nyhjem Nybegynder
23. december 2000 - 02:36 #51
Rasmus>> ve\' jeg sQ \'ikk*Gs* er her kun for sjov og ej for point jo*SsS*
Avatar billede ®azzer® Nybegynder
24. december 2000 - 01:23 #52
Hm.. hvormeget sjov skal du så have for det*GG*
Avatar billede nyhjem Nybegynder
24. december 2000 - 01:26 #53
*GG* et godt spgm. er sQ næstne ligeglad*S* det ta\'r jo \'ikk meget mere end 5 minz at få det fixed*S*
Avatar billede ®azzer® Nybegynder
24. december 2000 - 01:28 #54
5 min... Sig ikke det til pigerne :o)

ej, det ville være kanon hvis du ville. Specielt hvis det kun tager 5 minutter *S*.
Avatar billede nyhjem Nybegynder
24. december 2000 - 01:32 #55
heheh*gs* ka\' godt lige kigge på det, men får nok ej tid før om en dag eller to.. ska\' til og iseng nu jo, og imorgen er det juleaften :)
Avatar billede ®azzer® Nybegynder
24. december 2000 - 01:33 #56
hehe... faktisk er det idag! Gud jul *G*!

Det sætter jeg sku pris på Martin! :o)
Avatar billede nyhjem Nybegynder
24. december 2000 - 02:30 #57
Iligemåde da*Gs*

når nu jeg alligevel kan det, ka\' jeg jo ligeså godt hjælpe andre*Ss*
Avatar billede ®azzer® Nybegynder
31. december 2000 - 00:43 #58
Hej Martin

Har du haft tid til at kigge på det ?
Avatar billede nyhjem Nybegynder
31. december 2000 - 02:07 #59
Har slet \'ikk brugt computeren til andet end at tegne :O/ ka\' stadig \'ikk forstå det \'ikk virker hos dig, når det virker hos mig :O/
Avatar billede ®azzer® Nybegynder
31. december 2000 - 02:10 #60
martin :>

Virker hos dig ? Har du haft \"MIT\" script oppe at køre på din server ?

Og vel og mærke haft ANDRE til til at tjekke om det virker. Problemet er nemlig at det virker for mig selv men ikke for andre. altså scriptet virker på den computer der hoster scriptet men virker ikke for mange andre (´vel og mærke ikke alle)

Avatar billede ®azzer® Nybegynder
09. januar 2001 - 12:56 #61
point anyone ?
Avatar billede ®azzer® Nybegynder
11. januar 2001 - 09:27 #62
okay så lukker vi :(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester