Gå til innhold

Nybegynner skal prøve å lage et php script


Anbefalte innlegg

ja.. gjorde det...

testa rett etter at jeg posta her.. :thumbup:

men i og med at jeg er nybegyner så vet jeg ikke om jeg kan gjøre det enklere eller har gjort noe som er feil...

 

har nå forresten gjort ferdig hele scriptet:

PHPSIDEN

<?php

$lengde = $_POST['lengde'];
$ovelse = $_POST['ovelse'];
$minutter = $_POST['minutter'];
$sekunder = $_POST['sekunder'];
$tiendeler = $_POST['tiendedeler'];

if ($lengde == "femogtyve") {
if ($ovelse == "femtifri") {
  $wr = 2129; }
elseif ($ovelse == "hundrefri") {
  $wr = 4700; }
elseif ($ovelse == "tohundrefri") {
  $wr = 10335; }
elseif ($ovelse == "firehundrefri") {
  $wr = 21912; }
elseif ($ovelse == "attehundrefri") {
 $wr = 45677; }
elseif ($ovelse == "femtenhundrefri") {
 $wr = 87196; }
elseif ($ovelse == "hundremedley") {
 $wr = 5297; }
elseif ($ovelse == "tohundremedley") {
 $wr = 11582; }
elseif ($ovelse == "firehundremedley") {
 $wr = 24615; }
elseif ($ovelse == "femtirygg") {
 $wr = 2365; }
elseif ($ovelse == "hundrerygg") {
 $wr = 5134; }
elseif ($ovelse == "tohundrerygg") {
 $wr = 11229; }
elseif ($ovelse == "femtibryst") {
 $wr = 2650; }
elseif ($ovelse == "hundrebryst") {
 $wr = 5846; }
elseif ($ovelse == "tohundrebryst") {
 $wr = 12689; }
elseif ($ovelse == "femtifly") {
 $wr = 2286; }
elseif ($ovelse == "hundrefly") {
 $wr = 5089; }
elseif ($ovelse == "tohundrefly") {
 $wr = 11260; }
}

if ($lengde == "femti") {
if ($ovelse == "femtifri") {
  $wr = 2187; }
elseif ($ovelse == "hundrefri") {
  $wr = 4838; }
elseif ($ovelse == "tohundrefri") {
  $wr = 10615; }
elseif ($ovelse == "firehundrefri") {
  $wr = 22420; }
elseif ($ovelse == "attehundrefri") {
 $wr = 46798; }
elseif ($ovelse == "femtenhundrefri") {
 $wr = 89057; }
elseif ($ovelse == "hundremedley") {
 $wr = 0; }
elseif ($ovelse == "tohundremedley") {
 $wr = 11966; }
elseif ($ovelse == "firehundremedley") {
 $wr = 25347; }
elseif ($ovelse == "femtirygg") {
 $wr = 2529; }
elseif ($ovelse == "hundrerygg") {
 $wr = 5422; }
elseif ($ovelse == "tohundrerygg") {
 $wr = 11728; }
elseif ($ovelse == "femtibryst") {
 $wr = 2756; }
elseif ($ovelse == "hundrebryst") {
 $wr = 6057; }
elseif ($ovelse == "tohundrebryst") {
 $wr = 13091; }
elseif ($ovelse == "femtifly") {
 $wr = 2359; }
elseif ($ovelse == "hundrefly") {
 $wr = 5224; }
elseif ($ovelse == "tohundrefly") {
 $wr = 11539; }
}

$minuttregner = ($minutter * 60 * 100);
$sekundregner = ($sekunder * 100);
$oppnadregner = ($minuttregner + $sekundregner + $tiendeler);
$oppnadd = $oppnadregner;

$forste = ($wr/$oppnadd);
$andre = ($forste * $forste * $forste);
$tredje = ($andre * 1000);
$resultat = floor($tredje);

if(empty($sekunder)) {
echo "du har ikke fylt ut alle feltene!";
}
if(empty($tiendeler)) {
echo "du har ikke fylt ut alle feltene!";
}
else {
echo "du har fått $resultat poeng";
}
?>

 

og

 

HTMLsiden

<html>
<head>
</head>
<body>
<form method="post" action="phpside.php">
<fieldset>
<legend>Svømmegreie</legend>
<select name="lengde" size="1">
<option value="femogtyve">25m basseng</option>
<option value="femti">50m basseng</option>
</select><br />
<select name="ovelse" size="1">
<option value="femtifri">50 m fri</option>
<option value="hundrefri">100m fri</option>
<option value="tohundrefri">200m fri</option>
<option value="firehundrefri">400m fri</option>
<option value="attehundrefri">800m fri</option>
<option value="femtenhundrefri">1500m fri</option>
<option value="hundremedley">100m medley</option>
<option value="tohundremedley">200m medley</option>
<option value="firehundremedley">400m medley</option>
<option value="femtirygg">50m rygg</option>
<option value="hundrerygg">100m rygg</option>
<option value="tohundrerygg">200m rygg</option>
<option value="femtibryst">50m bryst</option>
<option value="hundrebryst">100m bryst</option>
<option value="tohundrebryst">200m bryst</option>
<option value="femtifly">50m butterfly</option>
<option value="hundrefly">100m butterfly</option>
<option value="tohundrefly">200m butterfly</option>
</select>
<br />
<input type="text" name="minutter" value="Minutter" /><br />
<input type="text" name="sekunder" value="Sekunder" /><br />
<input type="text" name="tiendedeler" value="Tiendedeler" /><br />
<input type="submit" value="Kjør!" />
</fieldset>
</form>
</body>
</html>

 

kan sees her: LINK

 

tusen takk for all hjep!!

da har jeg fått laget mitt første script

 

m.v.h Christian :w00t:

Lenke til kommentar
Videoannonse
Annonse

Tør jeg forslå bruken av switch() ?

Blir sinnsykt mye penere kode hvis du bruker switch().

 

 switch($ovelse)
{
case 'femtifri':
 $wr = 2187;
break;
case 'hundrefri':
 $wr = 4838;
break;
case 'tohundrefri':
 $wr = 10615;
break;
}

osv. www.php.net/switch

Lenke til kommentar

Du kan korte det ned endel, ihvertfall:

 

<?php

$lengde = $_POST['lengde'];
$ovelse = $_POST['ovelse'];
$minutter = $_POST['minutter'];
$sekunder = $_POST['sekunder'];
$tiendeler = $_POST['tiendedeler'];


if ($lengde == "femogtyve") {

$wr = array('femtifri' => 2129, 'hundrefri' => 4700,
   'tohundrefri' => 10335, 'firehundrefri' => 21912,
   'attehundrefri' => 45677, 'femtenhundrefri' => 87196,
   'hundremedley' => 5297, 'tohundremedley' => 11582,
   'firehundremedley' => 24615, 'femtirygg' => 2365,
   'hundrerygg' => 5134, 'tohundrerygg' => 11229,
   'femtibryst' => 2650, 'hundrebryst' => 5864,
   'tohundrebryst' => 12689, 'femtifly' => 2286, 
   'hundrefly' => 5089, 'tohundrefly' => 11260);
}
elseif ($lengde == "femti") {

$wr = array('femtifri' => 2187, 'hundrefri' => 4838,
   'tohundrefri' => 10615, 'firehundrefri' => 22420,
   'attehundrefri' => 46798, 'femtenhundrefri' => 89057,
   'hundremedley' => 0, 'tohundremedley' => 11966,
   'firehundremedley' => 25347, 'femtirygg' => 2529,
   'hundrerygg' => 5422, 'tohundrerygg' => 11728,
   'femtibryst' => 2756, 'hundrebryst' => 6057,
   'tohundrebryst' => 13091, 'femtifly' => 2359, 
   'hundrefly' => 5224, 'tohundrefly' => 11539);
}

$minuttregner = ($minutter * 60 * 100);
$sekundregner = ($sekunder * 100);
$oppnadregner = ($minuttregner + $sekundregner + $tiendeler);
$oppnadd = $oppnadregner;

$forste = ($wr["$ovelse"]/$oppnadd);
$andre = ($forste * $forste * $forste);
$tredje = ($andre * 1000);
$resultat = floor($tredje);

if(empty($sekunder)) {
echo "du har ikke fylt ut alle feltene!";
}
if(empty($tiendeler)) {
echo "du har ikke fylt ut alle feltene!";
}
else {
echo "du har fått $resultat poeng";
}
?>

 

LoS: Switch gir lettere lesbarhet på koden, men når det er snakk om resultater og relativt store datamengder er det like greit å bruke et array. if-else-ifelse er ihvertfall uaktuelt. ;)

 

btw: Hvorfor er hundremedley lik 0? :dontgetit:

Endret av jorgis
Lenke til kommentar
btw: Hvorfor er hundremedley lik 0? :dontgetit:

fordi det ikke går ann å svømme 100m medley i et 50 m basseng :tease:

du svømmer 25m av hver svømmeart og man kan ikke skifte svømmeart midt i et basseng....

så jeg skrev 0 der så får du summen null....

vet noen om en måte jeg kan skrive tekst som kommer opp hvis man velger 100m medley og 50 m basseng?

Lenke til kommentar

hvis jeg har html-siden inkludert i en annen side..

hvordan kan jeg da få svaret opp i samme inklude side når jeg trykker på submit..?

og hva er koden for en knapp som nuller ut alle former?

og hvordan kan jeg få en form som man kunn kan putte tall inni hvis ikke får man opp en feilmelding...

Endret av chs89
Lenke til kommentar
if(!is_numeric($var))
{


}

ah!!

kom jo på at ! betyr ikke.. :wallbash:

takk!

 

men hva med den inkluderingen? hvordan kan jeg legge hele scriptet i en fil?

 

og dem reset knappen....

den sletter alt innhold i select dropdownmenyene.. :(

går det ann f.eks:

<input type="reset: minutter, sekunder, tiendedeler" value="Trykk her for å nullstille" />

?? slik at kun de tre blir nullstilt?

Lenke til kommentar

 

og dem reset knappen....

den sletter alt innhold i select dropdownmenyene.. :(

går det ann f.eks:

<input type="reset: minutter, sekunder, tiendedeler" value="Trykk her for å nullstille" />

?? slik at kun de tre blir nullstilt?

Nei, det er ikke mulig å spesifisere nøyaktig hva en reset-knapp skal resette, med mindre man putter noe i en egen form-tagg, noe som blir semantisk feil. Du får bare leve med det, eller hoppe over reset-knappen. HTML er et ganske restriktivt språk å drive på med i.

 

men hva med den inkluderingen? hvordan kan jeg legge hele scriptet i en fil?

 

Du endrer action i HTML-biten til f.eks. phpfil.php?sendt=1, slik at phpfilen kan finne ut om noe har blitt sendt.

 

Så lager du filen phpfil.php, og setter den f.eks. opp slik:

 

<?php
if (!@$_GET['sendt']) {
?>
HTML-filinnhold her
<?php
}
elseif (@$_GET['sendt'] == 1) {

//phpfilen her

}

?>

 

:)

Endret av jorgis
Lenke til kommentar
God jobb...

Nå kan jeg sjekke ut hvor mye poeng jeg får/har fått... husker bare på tidene jeg :xmas:

[OT]Driver du med svømming?[/OT]

 

[ON]

Jeg kikket litt på noen andre skript f.eks mailskript så lå hele scriptet i en fil..

det var der jeg fikk ideen fra.. :thumbup:

men går det ann å få svaret i samme include uten å ha det i en fil?

[/ON]

Lenke til kommentar

jeg har et par problemer nå..

 

Jeg skal lage en "5-siste med navn" funksjon

som kjøres når en med navn vil ha poeng.

 

og for å skrive til filen femsiste.txt gjør jeg slik:

$gammelfil = implode("", file("femsiste.txt"));
$fh = fopen("femsiste.txt", "w"); 

fwrite($fh, "<b>$navn</b> fikk $resultat poeng på øvelsen $ovelse<br />");
fwrite($fh, " \n $gammelfil");  
fclose($fh);

problemet er det at når det printes en ny score så skal den nye printes på toppen av fila og de gamle skal flyttes en linje ned..

 

altså:

 

fila inneholder:

 

ole fikk 600 poeng på sin 400m fri <br />

sten fikk 500 poeng på sin 50m fri <br />

 

og når en ny person legger til en tid så skal den legges i toppen av fila, uten at det andre blir slettet.

 

den koden som jeg skrev over her gjør det men den lager ikke linjeskift i fila :(

hva er galt med koden?

 

PS! er det egentlig veldig enkelt å fikse så ikke mobb meg :p jeg er nybegynner :hrm:

Endret av chs89
Lenke til kommentar
If you are writing data to a txt file on a windows system and need a line break. use \r\n

 

Mye rart som finnes i php-manualen... Den anbefales sterkt ;)

hvor i php manualen står det??

fant det ikke?

 

det funka iallefall :w00t:

takk!

 

da er jeg kommet til det neste spørsmålet....

hvordan kan jeg printe ut de 5 øverse linjene i femsiste.txt

har prøvd i php manualen men finner ikke det jeg leter etter..

Lenke til kommentar

Tja, er det noe slikt du mener: http://ylox.hopto.org/skriv.php

 

 

Her er iallfall koden for den siden:

 

<?
// Skrive
$filnavn = "klokke.txt";
$open = fopen($filnavn,"a+");
if (!fwrite($open, "klokken er ".date ("H:i:s d-m-y")."\r\n"))
{
   die("Feil");
}
else // Lese 5 siste ( Nyeste først ).
{
    $file = file($filnavn);
    $nr = count($file);
    for ($x = $nr; $x+5 >= $nr; $x--)
    {
        echo $file[$x]."<br>";
    }
}
fclose($open);
?>

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...