Variable in php veranderen
Hoe kan ik ervoor zorgen dat als in een php bestand dit staat: $saldo = 100,
het getal 100 kan worden verandert (+1 en -1)?
het getal 100 kan worden verandert (+1 en -1)?
$salo++; & $saldo--?
Kan gewoon zo:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$saldo = 100;
// Ik wil het veranderen naar 50:
$newsaldo = ($saldo - 50);
echo 'Oud: ' . $saldo . ', nieuw: ' . $newsaldo;
[/code]
$saldo = 100;
// Ik wil het veranderen naar 50:
$newsaldo = ($saldo - 50);
echo 'Oud: ' . $saldo . ', nieuw: ' . $newsaldo;
[/code]
Deze regel: $newsaldo = ($saldo - 50); betekent dit dat er 50 word afgehaalt?
'Thijn:
Deze regel: $newsaldo = ($saldo - 50); betekent dit dat er 50 word afgehaalt?
Ja, je kunt die - ook vervangen door een + of een / of een *. Afhankelijk van wat je er mee wilt gaan doen.
ok, dankje wel!
Ik heb nog één vraag: Hoe zorg ik ervoor dat als ik dit script heb uitgevoert, het getal wat eruit komt, dus als saldo 100 is en er komt 99 uit ($saldo - 1), dat dit zo word opgeslagen?
met de function opslaan($saldo).
Waar wil je wat opslaan? Iets duidelijker aub
Waar wil je wat opslaan? Iets duidelijker aub
bijvoorbeeld het bestand: saldo.php met als inhoud: $saldo = 100, die 100 heb ik bewerkt, door het script van GaMer13, naar 99 ($saldo - 1), dat getal (99) wil ik weer opslaan in saldo.php met als inhoud: $saldo = 99
Niemand??
Niemand??
Gewijzigd op 01/01/1970 01:00:00 door Thijn
Heel erg bedankt allemaal het is opgelost met dit script:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$saldo = file_get_contents('thijn.php');
$newsaldo = $saldo - 1;
echo 'Je nieuwe saldo is: ' . $newsaldo;
$fp = fopen("thijn.php", "w");
fwrite($fp, "$newsaldo");
fclose($fp);
?>
$saldo = file_get_contents('thijn.php');
$newsaldo = $saldo - 1;
echo 'Je nieuwe saldo is: ' . $newsaldo;
$fp = fopen("thijn.php", "w");
fwrite($fp, "$newsaldo");
fclose($fp);
?>
Gewijzigd op 01/01/1970 01:00:00 door Thijn
Zo kun je dat inderdaad doen ja, maar haal op regel 8 wel even de variabel buiten haakjes, dus zo:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$saldo = file_get_contents('thijn.php');
$newsaldo = $saldo - 1;
echo 'Je nieuwe saldo is: ' . $newsaldo;
$fp = fopen("thijn.php", "w");
fwrite($fp, $newsaldo); // hier dus
fclose($fp);
[/code]
Dat bespaart je weer 2 [s]bits[/s] bytes ;)
$saldo = file_get_contents('thijn.php');
$newsaldo = $saldo - 1;
echo 'Je nieuwe saldo is: ' . $newsaldo;
$fp = fopen("thijn.php", "w");
fwrite($fp, $newsaldo); // hier dus
fclose($fp);
[/code]
Dat bespaart je weer 2 [s]bits[/s] bytes ;)
Gewijzigd op 01/01/1970 01:00:00 door GaMer B
Als dit voor een gebruikerssysteem is kan je het beste met een database gaan werken... allemaal bestandjes per gebruiker is niet echt handig aangezien je dan de kracht van een goed werkende database mist!
Ik zou me even verdiepen in databases als ik jou was!
Crispijn
Ik zou me even verdiepen in databases als ik jou was!
Crispijn
Kan ik er voor zorgen dat als je thijn meezend met de url (saldo.php?naam=thijn) dat hij dan het bestand thijn.php neemt, en dus als de naam pietje is het bestand pietje.php word uitgelezen. Ik dacht zo maar dit lukt niet:
Niemand??
Variabelen buiten quotes halen. Een var tussen enkele quotes wordt namelijk niet geparsed:
Variabelen zet je nooit tussen quotes en al helemaal niet tussen enkele quotes...
Doe nog wel wat aan controles, dat is de basis van een goed systeem en deze basis ontbreekt nog.
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$naam = $_GET['naam']; // hier ontbreekt iedere vorm van controle/beveiliging!
$saldo = file_get_contents($naam.'.php');
?>
$naam = $_GET['naam']; // hier ontbreekt iedere vorm van controle/beveiliging!
$saldo = file_get_contents($naam.'.php');
?>
Doe nog wel wat aan controles, dat is de basis van een goed systeem en deze basis ontbreekt nog.
Ja:
index.php?naam=test
Dit haalt het bestand 'account_test.php' op.
index.php?naam=test
Dit haalt het bestand 'account_test.php' op.
En is tevens heerlijk te misbruiken voor XSS...
Wie zegt dat $_GET['naam'] een geldige waarde bevat? Dat zul je dus eerst moeten controleren!
Wie zegt dat $_GET['naam'] een geldige waarde bevat? Dat zul je dus eerst moeten controleren!
Code (php)
Als de naam in de array staat, en het bestand, wordt ie pas geladen.
Wie zegt dat de $_GET bestaat? Controleer dit dus ook even. Het aanbieden van een default waarde is eveneens een goede gewoonte en bijzonder eenvoudig te realiseren.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$allow = array('naam1','naam2'); // uitbreiden naar eigen behoefte
if(!empty($_GET['naam']) && in_array($_GET['naam'],$allow) && file_exists("account_".$_GET['naam'].".php")){
$naam = $_GET['naam'];
}
else {
$naam = $allow[0]; // eerste uit de array als default waarde
}
require_once("account_".$naam.".php");
?>
$allow = array('naam1','naam2'); // uitbreiden naar eigen behoefte
if(!empty($_GET['naam']) && in_array($_GET['naam'],$allow) && file_exists("account_".$_GET['naam'].".php")){
$naam = $_GET['naam'];
}
else {
$naam = $allow[0]; // eerste uit de array als default waarde
}
require_once("account_".$naam.".php");
?>




