Chyba v knize ?

29 příspěvků · strana 1 z 2

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. Dobrý den, podle knížky jsem napsal kód: <head> <title>Bob's auto parts</title> </head> <body> <h1>Bob's auto parts</h1> <h2>Order result</h2> <?php echo "<p>Order processed at "; echo date("H:i, jS F"); echo "<br />"; echo "<p>Your order is as follows"; echo "<br />"; echo "$tireqty tires<br />"; echo "$oilqty bottles of oil<br />"; echo "$sparkqty spark plugs<br />"; define("TIREPRICE", 100); define("OILPRICE", 100); define("SPARKPRICE", 4); $totalqty = $tireqty + $oilqty + $sparkqty; $totalamount = $tireqty * TIREPRICE + $oilqty * OILPRICE + $sparkqty * SPARKPRICE; $totalamount = number_format($totalamount, 2); echo "<br />\n"; echo "Items ordered: ".$totalqty."<br />\n"; echo "Subtotal: $".$totalamount."<br />\n"; $taxrate = 0.10; //Místní daň z prodeje je 10% $totalamount = $totalamount * (1 + $taxrate); $totalamount = number_format($totalamount, 2) echo "Total including tax: $".$totalamount."<br>\n"; ?> </body> A server mi vyhodí chybu Parse error: syntax error, unexpected T_ECHO in /7p/wz.cz/g/grelek/processorder.php on line 31 Prosím, pokud víte kde je chyba, odpovězte :-) děkuji
  2. $totalamount = number_format($totalamount, 2)
  3. <HTML>$totalamount = number_format($totalamount, 2) na konci chybí středník. Příště vyznač řádek, kterého se chyba týká.</HTML>
  4. Děkuji a ano, pro příště to udělám :-)
  5. <head> <title>Bob's auto parts</title> </head> <body> <h1>Bob's auto parts</h1> <h2>Order result</h2> <?php echo "<p>Order processed at "; echo date("H:i, jS F"); echo "<br />"; echo "<p>Your order is as follows"; echo "<br />"; if( $totalqty == 0) { echo "You did not order anything on the previous page!"; } else { if( $tireqty>0 ) echo "$tireqty tires<br />"; if( $oilqty>0 ) echo "$oilqty bottles of oil<br />"; if( $sparkqty>0 ) echo "$sparkqty spark plugs<br />"; } define("TIREPRICE", 100); define("OILPRICE", 100); define("SPARKPRICE", 4); $totalqty = $tireqty + $oilqty + $sparkqty; $totalamount = $tireqty * TIREPRICE + $oilqty * OILPRICE + $sparkqty * SPARKPRICE; $totalamount = number_format($totalamount, 2); echo "<br />\n"; echo "Items ordered: ".$totalqty."<br />\n"; echo "Subtotal: $".$totalamount."<br />\n"; $taxrate = 0.10; //Místní daň z prodeje je 10% $totalamount = $totalamount * (1 + $taxrate); $totalamount = number_format($totalamount, 2); echo "Total including tax: $".$totalamount."<br>\n"; ?> </body> Nechápu kde je problém v if( $totalqty == 0) { echo "You did not order anything on the previous page!"; } else { if( $tireqty>0 ) echo "$tireqty tires<br />"; if( $oilqty>0 ) echo "$oilqty bottles of oil<br />"; if( $sparkqty>0 ) echo "$sparkqty spark plugs<br />"; } před tím, i když byl formulář vyplněný, to hlásilo chybu kterou jsem si napsal, ale teď i když není nic vyplněného to zase chybovou hlášku ignoruje. Už jsem z toho na prášky, prosím poraďte.
  6. To skutečně chceš, abychom pročítali ten skript řádek po řádku a hledali chybu? Aspoň napiš nějakou chybovou hlášku, kterou to píše. V tuto chvíli vidím použití nedefinovaných proměnných $totalqty, $tireqty, $oilqty, $sparkqty.
  7. Kite, zřejmě jsem to napsal blbě, ok beru ;) Chybovou hlášku to nehlásí, problém je v tom že ať si s tím lámu hlavu jak chci, tak to buď napíše: You did not order anything on the previous page! ; což má napsat pokud jsi v formláři nic nevyplnil. Nebo i když je formulář prázdný tak to zase vypíše: 0 tires 0 bottles of oil 0 spark plugs a toto by zase měl vypsat na chybovou hlášku stručně a znovu: Když má vypsat MNOU VYTVOŘENOU chybovou hlášku, vypisuje nákup který obsahu 0 ode všeho. A když má VYPSAT NÁKUP tak zase nějak napíše chybovou hlášku. Jinak se omlouvám ale takhle na fórech jsem zhruba 2 měsíce protože je mi teprve 13 a zajímám se o HTML apod. asi od dubna ;)
  8. Dobrá, zkusíme to trochu jinak. Proměnnou $tireqty nemáš nijak naplněnu. Zřejmě očekáváš, že se ti tam dostane hodnota ze vstupního formuláře z položky se jménem "tireqty". Ve skutečnosti se ta hodnota nachází v proměnné $_GET['tireqty'] nebo $_POST['tireqty']. Záleží na tom, kterou metodu jsi použil ve formuláři. Pokud jsi použil metodu GET (default), tak zkus ještě před prvním použitím proměnné $tireqty udělat toto přiřazení: $tireqty=$_GET['tireqty']; Nevím, jakou máš knížku, ale asi je od nějakého amerického autora. Zkus tuhle: http://www.kosek.cz/php/php-tvorba-interaktivnich-internetovych-aplikaci.pdf Je tam podobný příklad a je udělaný správně. I když ... já to dělám trochu jinak a myslím si, že lépe. Ovšem to je věc názoru.
  9. Kniha je PHP a MySQL z roku 2002. Taky čtu Linuxsoft Díky moc a na odkaz se podívám ;-)
  10. Parse error: syntax error, unexpected T_STRING in /7p/wz.cz/g/grelek/processorder.php on line 80 řádky které se PHP nelíbí: $date = date("H:i, jS F"); $outputstring = $date ,TIRES $tireqty ,OIL $oilqty ,SPARK PLUGS $sparkqty ,$ $totalamount , $address , $find; $fp = fopen(orders.txt, "a"); fwrite($fp, $outputstring); fclose($fp);
  11. $outputstring = $date .",TIRES". $tireqty .",OIL". $oilqty .",SPARK PLUGS". $sparkqty .",". $totalamount . "," . $address. "," .$find;
  12. Chybička :) do orders.txt [http://grelek.wz.cz/orders.txt/] se mi zapisuje při každé objednávce $outputsting místo jeho obsahu
  13. Možná proto, že $outputstring máš v apostrofech.
  14. Teď koukám, že tohle asi nebude fungovat: $fp = fopen(orders.txt, "a"); Zkus takto: $fp = fopen("orders.txt", "a"); Správná volba uvozovek/apostrofů je někdy dost důležitá.
  15. Kite, mohl by jsi mi to prosím vysvětlit ? Myslím kdy se píší uvozovky a kdy apostrofy, to je mi zatím na PHP největší záhadou protože jsem to prostě nepochopil.
  16. Ježiš já jsem roura, "" je méně důležité než ' ' že ano ?
  17. Zkus si to na příkladu: $string="text"; echo "text1: $string\n"; echo 'text2: $string\n'; Pokud máš řetězec v uvozovkách, tak se zpracuje $string i \n, ale v apostrofech se to vypíše jen jako text.
  18. Roura je velmi užitečný unixový operátor. Není to v důležitosti, ale ve způsobu zpracování vnitřku řetězce.
  19. áha :-) díky ;-) už to funguje :)))
  20. Koukám že si pleteš pojmy hack a cheat. Hackování je často užitečná činnost, cheatování nikoli.
  21. No táák :-D vždyť to předělam na něco jinýho ;-) na tydle účely máme ve skupině profíka :) http://bonfires.ic.cz/ - toť jeho dílo ;)
  22. A poslední pruďas, pak si jdu hrát :P... Jak mám udělat aby se mi v textovém dokumentu orders.txt, zobrazovala každá nová objednávka na nový řádek ? zde kód: $date = date("H:i, jS F"); $outputstring = $date .",TIRES ". $tireqty .",OIL ". $oilqty .",SPARK PLUGS ". $sparkqty .", $". $totalamount . "," . $address. "NEXT CUSTOMER"; $fp = fopen("orders.txt", "a"); fwrite($fp, $outputstring); fclose($fp);
  23. Už jsem to naznačil: $outputstring = $date .",TIRES ". $tireqty .",OIL ". $oilqty .",SPARK PLUGS ". $sparkqty .", $". $totalamount . "," . $address."NEXT CUSTOMER\n"; Je to ta drobnost "\n" na konci. Bohužel tady se projevuje nejednotnost formátů souborů u různých OS, pro Windows je vhodnější "\r\n". Vyzkoušej obojí. Často se to definuje pomocí define('NL',"\n"); // NL jako New Line a pak se to používá takto: $outputstring = $date .",TIRES ". $tireqty .",OIL ". $oilqty .",SPARK PLUGS ". $sparkqty .", $". $totalamount . "," . $address."NEXT CUSTOMER".NL;
  24. Mnohokráté díky ... :)
  25. <?php $jmeno = $_POST["jmeno"]; $zprava = $_POST["zprava"]; $odeslat = $jmeno ."-". $zprava."\n"; $fp = fopen(odeslane.txt, a); fwrite($fp, $odeslat); fclose($fp); readfile(odeslane.txt, r); ?> Jak mám udělat aby se: $odeslat = $jmeno ."-".$zprava."\n"; dalo pokaždé na nový řádek ? Děkuji

← Zpět na všechna témata