mboost-dp1

Hjælp med plus og minus i php?


Gå til bund
Gravatar #1 - kasperbje
5. nov. 2009 13:41
Hejsa :) Jeg har vil gerne vide hvordan jeg bruger plus og minus i php kan ikke helt få det til og virke??
Lad os sige jeg har en fil der hedder: noget.php og inde i den står der: 1 så går jeg ind på noget2.php og klikker en knap så åbner den noget.php tager 1 og ligger 1 til og lukker noget.php (selv uden man kan se det) så står der 2 inde i noget.php osv... Ved godt hvordan jeg åbner den og skriver noget nyt i den men ved ikke hvordan jeg tager 1 inde i den og ligger 1 mere til/trækker 1 fra??

Nogen der kan hjælpe ?
Gravatar #2 - myplacedk
5. nov. 2009 13:49
Øh, vil du ændre indholdet i selve filen?

Er det en fil som ikke indeholder andet end et tal?

I så fald er det ikke en PHP, den indeholder jo ikke PHP. Så vil det være god skik at kalde den noget andet.

Men du kan nok gøre det sådan her:

$taeller = (int)file_get_contents("taeller.dat");
$taeller++;
file_put_contents("taeller.dat");


Der er ingen form for fejlhåndtering, og hvis to gør det på samme tid vil kun den ene blive talt med. I værste fald kan jeg forestille mig at tælleren bliver nulstillet.
Gravatar #3 - trylleklovn
5. nov. 2009 13:49
Ehm. Vil du skrive til filerne? Det er nok lidt indviklet at begynde med.
Gravatar #4 - kasperbje
5. nov. 2009 13:56
Ja ups mente noget.txt det en txt fil og ja der står kun et tal inde i den men har prøvet det der $noget++; men det vil ikke helt virke
Gravatar #5 - kasperbje
5. nov. 2009 13:59
Men prøver lige det du sendte
Gravatar #6 - kasperbje
5. nov. 2009 14:01
Altså jeg har ændret det du sendte til det her:
if($_POST["submit"])
{
$taeller = (int)file_get_contents($myFile);
$taeller++;
file_put_contents($myFile);
}

Men det vil ikke helt virke ?
Den kommer med denne error
Warning: file_put_contents() expects at least 2 parameters, 1 given
Gravatar #7 - myplacedk
5. nov. 2009 14:03
kasperbje (4) skrev:
men har prøvet det der $noget++; men det vil ikke helt virke

Jo, lige præcis det vil helt sikkert virke. ;-)
Prøv at skrive værdien af variablen ud før og efter.

echo "<p>Før: $noget</p>";
$noget++;
echo "<p>Efter: $noget";
Gravatar #8 - kasperbje
5. nov. 2009 14:04
Når ja det vil virke men ikke som jeg vil have det til ?
Gravatar #9 - myplacedk
5. nov. 2009 14:04
Hov, du skal da også have variablen med ned i filen:

file_put_contents($myFile, $taeller);
Gravatar #10 - myplacedk
5. nov. 2009 14:04
kasperbje (8) skrev:
Når ja det vil virke men ikke som jeg vil have det til ?

Den lægger én til. Er det ikke det du vil?

$noget++;

svarer til:

$noget = $noget + 1;
Gravatar #11 - kasperbje
5. nov. 2009 14:06
Gravatar #12 - kasperbje
5. nov. 2009 14:06
Jeg vil have den til når du klikker op går den en op og ned så ned
Gravatar #13 - myplacedk
5. nov. 2009 14:06
#11
Det kan jeg ikke, den er spærret i firmaets proxy.
Gravatar #14 - myplacedk
5. nov. 2009 14:07
kasperbje (12) skrev:
Jeg vil have den til når du klikker op går den en op og ned så ned

Og hvad gør den i stedet?
Gravatar #15 - kasperbje
5. nov. 2009 14:11
Svært og forklare men altså inde på den der side kan man klikke på op og på ned også nede under står der en fordi det står der jo inde i noget filen men når jeg så klikker op så skriver den bare en to steder istedet for og ændre 1 til 2 og inde i noget filen er den stadig 1
Gravatar #16 - kasperbje
5. nov. 2009 14:12
sådan her ser mit script ud:
<form method="POST">
<input type="submit" name="submit" value="En op !">
<input type="submit" name="submit2" value="En ned !">
</form>

<?php
$myFile = "ids.txt";
$total = include "$myFile";

if($_POST["submit"])
{
$taeller = (int)file_get_contents($myFile);
$taeller++;
file_put_contents($myFile, $taeller);
}
if($_POST["submit2"])
{
$taeller = (int)file_get_contents($myFile);
$taeller--;
file_put_contents($myFile, $taeller);
}
echo $total;
?>
Gravatar #17 - myplacedk
5. nov. 2009 14:22
Dvs. dit problem er at 1 + 1 giver 11? Hvad giver 11 - 1 så?
Gravatar #18 - myplacedk
5. nov. 2009 14:23
Har du prøvet mit tip i #7? Hvad siger den så?
Gravatar #19 - kasperbje
5. nov. 2009 14:36
altså 1 + 1 giver ikke 11 den skriver bare 1 to steder ikke ved siden af hinanden og hvis jeg trykker på ned så giver den bare en og hvis jeg trykker op også ned så giver den minus 1 og den kan ikke komme længere ned end minus 1/ højere op end 1
Gravatar #20 - myplacedk
5. nov. 2009 15:20
"include" gør ikke du tror den gør. I dette tilfælde udskriver den indholdet af filen til browseren.

Det betyder også at $total ikke indeholder det du tror den gør, så der bliver også udskrevet noget sjovt.

Og endelig: Selv hvis include virkede som du troede, så indlæser du den før du er færdig med at lave beregninger, så det er en gammel værdi du viser.

Noget af dette ville du har fået hints om, hvis du havde prøvet det jeg skrev i #7!!

Prøv dette:

<form method="POST">
<input type="submit" name="submit" value="En op !">
<input type="submit" name="submit2" value="En ned !">
</form>

<?php
$myFile = "ids.txt";
$total = (int)file_get_contents($myFile);

if($_POST["submit"]) {
$total++;
file_put_contents($myFile, $taeller);
}

if($_POST["submit2"]) {
$taeller--;
file_put_contents($myFile, $taeller);
}

echo $taeller;
?>
Gravatar #21 - kasperbje
5. nov. 2009 16:27
Tusind tak nu virker det
Gravatar #22 - kasperbje
5. nov. 2009 22:00
Hva er der galt med dette:
if (isset($_SESSION['superadmin']) or (isset($_SESSION['admin']))
Gravatar #23 - myplacedk
5. nov. 2009 22:16
#22
Hvad er problemet med det?
Gravatar #24 - kasperbje
6. nov. 2009 11:29
Er der ikke noget der mangler ? Når jeg bruger dette
if (isset($_SESSION['superadmin']) or (isset($_SESSION['admin']))
{
(Det er linje 21 og 22)
så giver den denne error:
Parse error: syntax error, unexpected '{' on line 22
Gravatar #25 - Windcape
6. nov. 2009 11:42
kasperbje (24) skrev:
Er der ikke noget der mangler ?
Hvorfor spørger du istedet for at læse fejlmeddelsen?

unexpected '{'
Altså en { før den er forventet. Hvordan kan det mon være? Måske har du glemt en parentes?

Jamen hov, du HAR glemt en parentes. Det var godt nok svært at finde ud af.
Gravatar #26 - kasperbje
6. nov. 2009 12:05
Jamen hvis du nu er så klog.... Hvorfor siger du så ikke bare hvor den "parentes" skal være ? -.-
Gravatar #27 - Windcape
6. nov. 2009 12:09
Fordi jeg synes det ville være bedre om du lærte at tænke selv. Og hvis du ikke kan finde en manglede parentes på en så kort linje, så er den fandme helt galt med dig!
Gravatar #28 - kasperbje
6. nov. 2009 12:14
Nå men det kan jeg ikke.....
Gravatar #29 - Mandalae
6. nov. 2009 12:19

if (isset($_SESSION['superadmin']) or (isset($_SESSION['admin'])))
{


Der manglede bare en parantes til sidst i den nævnte linje.
Gravatar #30 - kasperbje
6. nov. 2009 12:20
Tak for hjælpen
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login