/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Newbie-spørgsmål: Hente javascriptværdi og~
Fra : Jakob Højlev Jørgens~


Dato : 08-07-06 16:04

Hej gruppe

Jeg er ikke særlig tjekket til php desværre. Jeg er webmaster på en
hjemmeside til et fritidshjem, og vi kunne godt tænke os at have et lille
spil kørende på siden hen over sommerferien. Jeg har rettet et
javascript-spil en anelse til fra http://www.dynamicdrive.com -
http://www.dynamicdrive.com/dynamicindex12/snake/index.htm

Det skal helst være sådan, at man kan se de tre, der har fået flest point.
Det kunne være sådan, at når man har afsluttet et spil, skal man indtaste
sit navn, hvorefter antallet af point og det indtastede navn sendes til en
fil. Jeg har søgt efter et færdigt script, der kan sådan noget, men det
tætteste jeg er kommet på det er:
http://www.hotscripts.com/Detailed/16593.html der kan hentes på
http://scripts.protoplex.ru/scripts_show/1293.html Dette script bruger
desværre mySQL, som vores webhotel ikke kan håndtere.

Jeg har fundet
http://www.activewidgets.com/javascript.forum.4257.6/javascript-and-php-variables.html
som kan hente værdien af en javascript-variabel ind i php, men så stopper
overblikket også.

Kan man på en eller anden måde tjekke om resultatet er blandt de tre højeste
og så erstatte det relevante i en txt-fil. Alternativt kunne man måske
oprette en hotmail-konto, hvortil man sendte den opnåede score og sit navn.
(Vi regner ikke med at få voldsomt mange resultater) Det sjoveste ville
selvfølgelig være, hvis man på siden kunne se, de 3 største pointantal.

Jeg er på ret bar bund. Kender I til en nem og god løsning, eller skal vi
bare finde på noget andet? Jeg ved godt, at Google er min ven, men jeg ved
ikke rigtigt, hvad jeg skal søge på.

Håber en venlig sjæl vil hjælpe...

Venlig hilsen
Jakob Højlev Jørgensen



 
 
Kasper Johansen (08-07-2006)
Kommentar
Fra : Kasper Johansen


Dato : 08-07-06 16:27

Jakob Højlev Jørgensen skrev:
> Det skal helst være sådan, at man kan se de tre, der har fået flest point.
> Det kunne være sådan, at når man har afsluttet et spil, skal man indtaste
> sit navn, hvorefter antallet af point og det indtastede navn sendes til en
> fil. Jeg har søgt efter et færdigt script, der kan sådan noget, men det

> Kan man på en eller anden måde tjekke om resultatet er blandt de tre højeste
> og så erstatte det relevante i en txt-fil. Alternativt kunne man måske
> oprette en hotmail-konto, hvortil man sendte den opnåede score og sit navn.
> (Vi regner ikke med at få voldsomt mange resultater) Det sjoveste ville
> selvfølgelig være, hvis man på siden kunne se, de 3 største pointantal.

Du kan gemme resultaterne i en fil (hvis du ikke kan få en database
understøttet, som helt klart ville gøre dit arbejde meget nemmere).

Du kan herefter finde frem til en format at gemme resultaterne i. F.eks.:

navn;score;dato


Når et nyt resultat bliver meldt, kan du herefter ændre i filen således:

<?
//Åbner fil i "append"-mode (tilføjer indhold til filen).
$fp = fopen("scores.txt", "a");
fwrite($fp, $_POST[texnavn] . ";" . $_POST[texscore] . ";" . time()
.. "\n");
fclose($fp);
?>

Her går jeg så ud fra, at du har lavet en form med felterne "texnavn" og
"texscore", og at du bruger post-metoden.

"texscore" kunne være en "hidden" variabel, som kunne ændres på følgende
måde (ved at hente JavaScript-variablen).

<form method="post" action="score.php">
<input type="hidden" name="texscore" id="texscore" value="" />
<input type="text" name="texnavn" />
<input type="submit" value="Gem" />
</form>

<script type="text/javascript">
//Sætter "texscore". Lav variablen om til det rigtige navn.
document.getElementById("texscore").value = javascript_variabel;
</script>


Hvis du vil have resultaterne ud fra filen igen, så kan du gøre følgende:
<?
//Indlæser data til $scores
$filecont = explode("\n", file_get_contents("scores.txt"));

foreach($filecont AS $line){
$data = explode(";", $line);

$scores[$data[1]] = $data;
}

//Sorterer $scores i korrekt rækkefølge (dem med flest points først)
ksort($scores);
$filecont = array_reverse($scores);

//Udskriver $scores
foreach($scores AS $data){
echo $data[0] . "<br />" . $data[1] . "<br />" . date("d/m Y -
H:i", $data[2] . "<br /><br />";
}
?>


Jeg håber, at du kan bruge det til noget :)


--
Med venlig hilsen
Kasper Johansen

Jakob Højlev Jørgens~ (08-07-2006)
Kommentar
Fra : Jakob Højlev Jørgens~


Dato : 08-07-06 20:22

"Kasper Johansen" <kaspernj@gmail.com> skrev :

> Du kan gemme resultaterne i en fil (hvis du ikke kan få en database
> understøttet, som helt klart ville gøre dit arbejde meget nemmere).
>
> Du kan herefter finde frem til en format at gemme resultaterne i. F.eks.:
>
> navn;score;dato
> ... og en masse kode

Tak for dit fyldige svar. Jeg tror, det vil være at slå meget større brød op
end jeg kan bage. Jeg har siden fundet et gratis webhotel med mySQL (hvor
selve spillet og hiscore-scriptet så kunne afvikles) men selv det er for
stor en mundfuld for mig at få til at fungere. Det er ret irriterende.

Jeg tror, løsningen bliver at sende en email med navn og score til en
nyoprettet hotmailkonto, hvis brugeren får over 250 point.

> Jeg håber, at du kan bruge det til noget :)

Jeg siger endnu en gang tak for din indsats, men som sagt må jeg vælge at
kringle noget sammen et sted, hvor gærdet er lavere...

Venlig hilsen
Jakob Højlev Jørgensen



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste