Diskuze: nefunkční PHP na Windows 10 64bit
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Protoze ta kalkulacka je spatne napsana. Autor ji osidil o radu podminek. A php nejspis vypisuje chyby.
1. Zkus si tam prdat vypis chyb. php.net/error_reporting
2.
$a = $_POST['cislo1'];
$b = $_POST['cislo2'];
$operace = $_POST['operace'];
///...
echo("Výsledek: $vysledek");
---
// oprava
$a = isset($_POST['cislo1']) ? $_POST['cislo1'] * 1 : 0;
$b = isset($_POST['cislo2']) ? $_POST['cislo2'] * 1 : 0;
$operace = isset($_POST['operace']) ? $_POST['operace'] : '';
$vysledek = '';
//...
echo "Výsledek: $vysledek";
Peter, děkuji za návrh opravy, nicméně nepomohlo to.
" místo toho se na stránku vypíše obsah pomocného php skriptu"
To bud php nejede, nemas ho spustene, nebo hlasi konflikt s portem a tak ho
nespusti.
Nebo mas spatne nastaveny server, jina slozka.
Nebo nespoustit soubory pres server, localhost, ale jako file://.
A nebo mozna selhalo kodovani, w1250 default na serveru zpracuje php utf8 jako
text. Mozna proto, ze prvni 3 znaky jsou utf8-BOM.
Po zanesení tvé opravy se při spuštění kódu v NetBeans vypíše na stránce pouze slovo "Výsledek:" bez nabídky vložení hodnot. PHP server zde tedy funguje. Také když zadám do vyhledávacího řádku localhost:80 načte se dashboard od Netbeans. Avšak když ve složce kliknu na ikonu "kalkulacka.html", korektně se mi otevře dialog s nabídkou vložení čísel a volby početní operace. Nicméně když čísla a operaci zadám a stisknu tlačítko "Vypočítej", akce se neprovede a místo toho se na stránce vypíše celý kód souboru vypocet.php. Viz zde níže:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Kalkulačka</title>
</head>
<body>
<?php
$a = isset($_POST['cislo1']) ? $_POST['cislo1'] * 1 : 0;
$b = isset($_POST['cislo2']) ? $_POST['cislo2'] * 1 : 0;
$operace = isset($_POST['operace']) ? $_POST['operace'] : '';
$vysledek = '';
if ($operace == 'scitani')
$vysledek = $a + $b;
else if ($operace == 'odcitani')
$vysledek = $a - $b;
else if ($operace == 'nasobeni')
$vysledek = $a * $b;
else if ($operace == 'deleni')
if ($b != 0)
$vysledek = $a / $b;
else
$vysledek = 'Chyba';
echo("Výsledek: $vysledek");
?>
</body>
</html>
Zjistil jsem zvláštní věc, že dokonce ani v prémiové úloze k lekci PHP, když stisknu tlačítko "Spustit kód", tak se kód nespustí, ale stránka přepne z úloh na úvodní stranu ITnetwork. Když ale stisknu "Odevzdat úlohu", akce se provede. Zřejmě je tedy nějaký problém v prohlížečích, dělá mi to ale jak Chrome, tak i IE, takže je to asi něco přímo ve Windows.
A muzes sem dat kod a nazev souboru a slozku souboru, jak to spoustis?
---aaa.php---
<form action="aaa.php" method="post">
<input name="xxx" value="123">
<input type="submit">
</form>
<?php
$name = 'xxx';
$poslano = isset($_POST[$name ]) ? $_POST[$name ] : '';
echo "xxx=$poslano";
?>
Zkus tohle, kliknes odeslat a melo by to vypsat xxx=123
Ano, výpis se zdařil. Mé spouštěcí html je toto:
<!DOCTYPE html>
<html>
<head>
<title>Kalkulačka</title>
<meta charset="UTF-8"/>
</head>
<body>
<p>Zadejte dvě čísla a operaci:</p>
<form method="POST" action="vypocet.php">
<input name="cislo1" type="text"/><br />
<input name="cislo2" type="text"/><br />
Operace:
<select name="operace">
<option value="scitani">Sčítání</option>
<option value="odcitani">Odčítání</option>
<option value="nasobeni">Násobení</option>
<option value="deleni">Dělení</option>
</select><br />
<input type="submit" value="Vypočítej" />
</form>
</body>
</html>
Vše se nachází ve složce "C:\xampp\htdocs\kalkulacka" Soubory jsou "kalkulacka.html" a "vypocet.php".
Pro neparove tagy, ty zpetna lomitka tam delat nemusis, to je podle starsich
pravidel.
No, takze, pokud muj kod funguje, tak mas nejake divne znaky v tom tvem. Mozna 3
znaky pro utf, bom, na zacatku kodu. Editor ti to neukazuje, ale pridava ti je
do kodu. Mozna zkusit v tom editoru rici, at to nedela.
Nebo zkus pouzit notepad a zkopiruj kod do nej pres ctrl+c, ctrl+v.
Nebo zkopiruj kod tady do okenka pro psani zpravy, pak jej oznac a ctrl+c a
zkopiruj do notepadu nebo neceho jineho. Editacni pole tady urcite potlaci
znaky, se kterymi si html moc nerozumi, ani php.
Petře, děkuji za cenné podněty, které pro mne byly jistě poučné, i když nevyřešily daný problém. Měl jsi pravdu, že problém byl s php v PC. Ačkoli xampp fungovalo a vše bylo zelené, bylo nutné v php.ini zakomentovat "sqlite extension" a spouštět xampp jako administrátor. Také bylo nutné pokaždé zkontrolovat obsah adresního řádku, protože místo "localhost/..." se tam vypisovala adresa C:/xampp/htdocs/... Když jsem údaj v řádku opravil u ovládacího html, i php pak už fungovalo. V každém případě díky za ochotnou asistenci.
Zobrazeno 11 zpráv z 11.