NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.

Diskuze – Lekce 7 - Podmínky v PHP

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
studnicka.ji
Člen
Avatar
studnicka.ji:24.12.2013 21:31

jj to mě taky napadlo mrknu nato a uvidím zda se někam dohrabu :D

 
Odpovědět
24.12.2013 21:31
Avatar
studnicka.ji
Člen
Avatar
studnicka.ji:25.12.2013 7:55

tak fakt nevím co je jinak pokud si ten výpočtet zkopíruju podle sdraca tak mi taky neběží ale to jsem si stahl tak to běží

Editováno 25.12.2013 7:56
 
Odpovědět
25.12.2013 7:55
Avatar
Kamil
Člen
Avatar
Kamil:1.1.2014 20:51

Zdravím,

Začal jsem od začátku projíždět a zkoušet si PHP podle zdejších tutoriálů a naprogramoval jsem si tuto kalkulačku, vše se tvářilo v pořádku. Vypl jsem počítač odjel jsem pryč, no a teď jsem zapnul znova PC, nastartoval jsem wampserver a kalkulačka mi vyhazuje tyto chyby. Jak zadám hodnoty dvou čísel, tak je vše zas v normálu.

Přikládám dvě fotografie a zdrojový kod PHP...

<?php
if(isset($_POST["cislo1"])){
$cislo1=$_POST["cislo1"];
$cislo2=$_POST["cislo2"];
$operace= $_POST["operace"];
}
/* Pro sčítání */
if($operace=='scitani'){
     $vysledek = $cislo1+$cislo2;
     }
/* Pro odčítání */
else if($operace=='odcitani'){
     $vysledek = $cislo1-$cislo2;
}
/* Pro násobení */
else if($operace=='nasobeni'){
     $vysledek = $cislo1*$cislo2;
}
/* Pro dělení */
else if ($operace=='deleni'){
     if($cislo2!=0){
     $vysledek = $cislo/$cislo2;
     }
     else{
        echo("Nulou nelze dělit!");
     }

}
echo ("Výsledek:".$vysledek);
 
Odpovědět
1.1.2014 20:51
Avatar
Odpovídá na Kamil
Patrik Valkovič:1.1.2014 21:01

Předpokládám že se to objeví když příjdeš poprvé. Je to způsobeno tím, že jakmile příjdeš poprvn, tak není nastaveno $_POST['cislo1'], tudíž se ti nevytvoří proměnná $operace, se kterou dále pracuješ. Celý ten kód musíš vložit do té podminky if(isset($_POS­T['cislo1]))

Editováno 1.1.2014 21:02
Odpovědět
1.1.2014 21:01
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Kamil
Kit:1.1.2014 21:03

Zřejmě máš prázdné pole $_POST a tím se ti nenaplní $cislo1, $cislo2 ani $operace.

Odpovědět
1.1.2014 21:03
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kamil
Člen
Avatar
Odpovídá na Patrik Valkovič
Kamil:1.1.2014 21:04

Ano máš pravdu, mělo mě to napadnout hned....

Díky za radu.

 
Odpovědět
1.1.2014 21:04
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Kamil
Kit:1.1.2014 21:08

Tady by se hodil switch.

Odpovědět
1.1.2014 21:08
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Kamil
Kit:1.1.2014 21:22
<?php

function operace($cislo1, $cislo2, $operace) {
    switch ($operace) {
    case 'scitani' : return $cislo1 + $cislo2;
    case 'odcitani' : return $cislo1 - $cislo2;
    case 'nasobeni' : return $cislo1 * $cislo2;
    case 'deleni' :
        if($cislo2 == 0) throw new Exception("Nulou nelze dělit!");
        return $cislo / $cislo2;
    }
    throw new Exception("Neznámá operace '$operace'");
}

if (isset($_POST["cislo1"]) && isset($_POST["cislo1"]) && isset($_POST["operace"])){
    try {
        echo ("Výsledek:" . operace( $_POST["cislo1"], $_POST["cislo2"], $_POST["operace"]));
    } catch (Exception $e) {
        echo $e->getMessage(), "\n";
    }
}
Odpovědět
1.1.2014 21:22
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kamil
Člen
Avatar
Odpovídá na Kit
Kamil:1.1.2014 21:23

Budu pokračovat na další tutoriál, tam se switch rozebírá.
Ale děkuji za ukázku. :)

 
Odpovědět
1.1.2014 21:23
Avatar
Vasekdvor
Člen
Avatar
Odpovídá na Kamil
Vasekdvor:28.3.2014 0:04

No pro testovací účely to bude vyhazovat undefined variable přesně z důvodu jak psali výše ale na live servech většinou je nastavený
error_reportin­g(E_ALL ^ E_NOTICE);
což je také výchozí nastavení PHP. Takže tam to neuvidíš.

 
Odpovědět
28.3.2014 0:04
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 97.