PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
Tuvastamine ei tööta
Postitaja: tt 2015-10-12 21:04:48

case 1:
$tulemus=$keel['cm'];$cm=1;$me=0.01;$km=0.00001;$ft=0.3280839;$in=0.39370078;$mi=0.000006213;$ya=0.010936132;break;


Mujal $keel['cm']; töötab, aga kui sinna panna, ei echo enam midagi. Milles võib viga olla?
RE: Tuvastamine ei tööta
Postitaja: asd 2015-10-12 21:45:57
TSITEERITUD:

case 1:
$tulemus=$keel['cm'];$cm=1;$me=0.01;$km=0.00001;$ft=0.3280839;$in=0.39370078;$mi=0.000006213;$ya=0.010936132;break;


Mujal $keel['cm']; töötab, aga kui sinna panna, ei echo enam midagi. Milles võib viga olla?


no ilmselt vastav väärtus ei eksisteeri
http://php.net/manual/en/control-structures.switch.php
RE: Tuvastamine ei tööta
Postitaja: - 2015-10-12 22:10:57
Kas tõesti usud, et selle info põhjal on võimalik midagi vastata?
RE: Tuvastamine ei tööta
Postitaja: tt 2015-10-13 00:05:58
TSITEERITUD:


no ilmselt vastav väärtus ei eksisteeri
http://php.net/manual/en/control-structures.switch.php

Põhimõtteliselt polegi võimalust Switchide puhul, et echotav sisu tuleb teisest failist?
RE: Tuvastamine ei tööta
Postitaja: asd 2015-10-13 00:30:07
TSITEERITUD:

Põhimõtteliselt polegi võimalust Switchide puhul, et echotav sisu tuleb teisest failist?


sul on need asjad "udused", näita oma koodi täielikult või vähemalt see jupp, kus on switch ja switchis kasutatavad andmed
näiteks
$i = "10";
switch ($i) {
case 0:
echo "i = 0";
break;
case 1:
echo "i = 1";
break;
default:
echo "$i ja 'i' ei ole 0 või 1";
}
RE: Tuvastamine ei tööta
Postitaja: tt 2015-10-13 10:41:25
TSITEERITUD:


sul on need asjad "udused", näita oma koodi täielikult või vähemalt see jupp, kus on switch ja switchis kasutatavad andmed
näiteks
$i = "10";
switch ($i) {
case 0:
echo "i = 0";
break;
case 1:
echo "i = 1";
break;
default:
echo "$i ja 'i' ei ole 0 või 1";
}

http://pastebin.com/tFZx1ykE

see on kogu osa ja peale seda ainult echo. Nagu näha, on üleval pool olemas $keel['kontroll_nr'], mis töötab ilusti. Kuid seal sees ei tööta ükski selline enam.
Väärtused võtab teisest failist include abil ja see töötab. Ainult "switch" rikub selle ära.
RE: Tuvastamine ei tööta
Postitaja: - 2015-10-13 10:51:42
Kohe teine asi, kui laiemat pilti näitad. See kood on funktsioonis function assign($from,$val) (oletan, et selle ikka kusagil käivitad ka). Muutuja $keel ei ole funktsiooni sees nähtav, tee endale muutujate skoobid selgeks. Lahenduseks kas:

Annad keele massiivi parameetrina kaasa:

PHP kood:
 
// Funktsiooni defineerimine
function assign($from$val$keel) {
...


// Funktsiooni välja kutsumine
assign($from$val$keel);


või siis kasutad keelt kui globaalset muutujat

PHP kood:
 
// Funktsiooni defineerimine
function assign($from$val) {
  global 
$keel;
...


Vaatan et mu soovitust numbri kontrollimise regex korda teha (või lihtsama variandina is_numeric() kasutada) pole Sa tõsiselt võtnud.
RE: Tuvastamine ei tööta
Postitaja: tt 2015-10-13 12:56:52
TSITEERITUD:
Kohe teine asi, kui laiemat pilti näitad. See kood on funktsioonis function assign($from,$val) (oletan, et selle ikka kusagil käivitad ka). Muutuja $keel ei ole funktsiooni sees nähtav, tee endale muutujate skoobid selgeks. Lahenduseks kas:

Annad keele massiivi parameetrina kaasa:

PHP kood:
 
// Funktsiooni defineerimine
function assign($from$val$keel) {
...


// Funktsiooni välja kutsumine
assign($from$val$keel);


või siis kasutad keelt kui globaalset muutujat

PHP kood:
 
// Funktsiooni defineerimine
function assign($from$val) {
  global 
$keel;
...


Vaatan et mu soovitust numbri kontrollimise regex korda teha (või lihtsama variandina is_numeric() kasutada) pole Sa tõsiselt võtnud.


Seda osa kasutasin, mida soovitasid: val = str_replace(',', '.', $_POST['val']);. Enam pole vähemalt , või . probleeme.
RE: Tuvastamine ei tööta
Postitaja: - 2015-10-13 13:19:10
TSITEERITUD:

Seda osa kasutasin, mida soovitasid: val = str_replace(',', '.', $_POST['val']);. Enam pole vähemalt , või . probleeme.


Seda küll, et osa probleemist saab sellega korda, samas võtab skript rõõmsalt väärtused "1.2,34" või "12abc" vastu ning arvutab ka vastuse välja, kuigi oleks viisakas kasutajale teada anda, et need nüüd küll numbrid ei ole. Kõige lihtsam, asenda see pregmatch if(!is_numeric($val)). Ühtlasi vaata ka if-id else-d üle - kui oled tuvastanud, et number pole korrektne, kuvad veateate, kuid lähed siiski arvutustega edasi.
RE: Tuvastamine ei tööta
Postitaja: tt 2015-10-13 19:37:46
TSITEERITUD:


Seda küll, et osa probleemist saab sellega korda, samas võtab skript rõõmsalt väärtused "1.2,34" või "12abc" vastu ning arvutab ka vastuse välja, kuigi oleks viisakas kasutajale teada anda, et need nüüd küll numbrid ei ole. Kõige lihtsam, asenda see pregmatch if(!is_numeric($val)). Ühtlasi vaata ka if-id else-d üle - kui oled tuvastanud, et number pole korrektne, kuvad veateate, kuid lähed siiski arvutustega edasi.


Vaatan selle ka üle! Tänud!

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0808861255646