Skript shopu se neuložuje do view-orders – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Skript shopu se neuložuje do view-orders – PHP – Fórum – Programujte.comSkript shopu se neuložuje do view-orders – PHP – Fórum – Programujte.com

 

Starý chábr
~ Anonymní uživatel
6 příspěvků
10. 12. 2019   #1
-
0
-

Dobrý den,

nedávno jsem dělal skript pro "shop" pomocí php form metody ale informace se neuložují do view-orders.php

zde vám dám soubory:

index.php:

 <?php
/*

Author: gmboyYT
Last Edit: 10.12.2019 21:08 (EU)
Its Simple shop

*/
?>


<!DOCTYPE html>
 <html>
  <head> 
 <title>Title</title>
</head>
<body>
 <form action="method.php" method="post">
<table style="border: 0px;"
 <tr style="background: #cccccc;">
 <td style="width: 150px; text-align: center;">Item</td>
 <td style="width: 15px; text-align: center;">Quantity</td>
 </tr>
 <tr>
<td>Your item 1</td>
<td><input type="text" name="item1" placeholder="1" size="9" maxlength="9" /></td>
 </tr>
 <tr>
<td>Your item 2</td>
<td><input type="text" name="item2" placeholder="2" size="9" maxlength="9" /></td>
 </tr>
 <tr>
<td>Your item 3</td>
<td><input type="text" name="item3" placeholder="3" size="9" maxlength="9" /></td>
 </tr>
 <tr>
<td>Your Adress</td>
<td><input type="text" name="adress" placeholder="Postal Code, City, Adress and number of a home" size="32" maxlength="70" /></td>
 </tr> 
 <tr>
  <td colspan="2" style="text-align: center;">
  <input type="submit" value="Submit" />
 </td>
 </tr>

   </table>
  </form>
 </body>
</html>


method.php:

Nahlásit jako SPAM
IP: 46.231.77.–
Starý chábr
~ Anonymní uživatel
6 příspěvků
10. 12. 2019   #2
-
0
-

nedopsal jsem to :D

method.php:

<?php 
$item1 = (int) $_POST['item1'];
$item2 = (int) $_POST['item2'];
$item3 = (int) $_POST['item3'];
$adress = (int) $_POST['adress'];
$document_root = $_SERVER['DOCUMENT_ROOT'];
$date = date('j.n. Y H:i');




/*

Author: gmboyYT
Last Edit: 10.12.2019 21:08 (EU)
Its Simple shop

*/




?>

<!DOCTYPE html>
<html>
<head>
<title>Title</title>
</head>
<body>


 <h1>Your order</h1>




<?php 



$totalqty = 0;
$totalqty = $item1 + $item2 + $item3;
$totalamount = 0.00;


define('ITEM1PRICE', 100);
define('ITEM2PRICE', 200);
define('ITEM3PRICE', 300);


$totalamount = $item1 * ITEM1PRICE +
               $item2 * ITEM2PRICE +
               $item3 * ITEM3PRICE;


echo '<p>Order has been ordered. On '.date('j.n. Y H:i'); 


echo '<p>Your order:</p>';
if ($totalqty == 0) {
echo "Nic jste si neobjednal.<br />";
} else {
if ($item1 > 0) {
echo 'Your item1: '.htmlspecialchars($item1).'<br />';
} 
if ($item2 > 0) {
echo 'Your item 2: '.htmlspecialchars($item2).'<br />';
} 
if ($item3 > 0) {
echo 'Your item 3: '.htmlspecialchars($item3).'<br />';
 }
}
echo 'Your Adress: '.htmlspecialchars($adress).'<br />';
echo "<p>Your Ordered items: ".$totalqty."<br />";
echo "Price: ".number_format($totalamount, 2)."<br />";


$taxrate = 0.25; // DPH is 25%
$totalamount = $totalamount * (1 + $taxrate);
echo "Price with DPH: ".number_format($totalamount, 2)."<br />";

$outputstring = $date."\t".$item1." items1\t".
                $item2." items2\t".
                $item3." items3\t".$totalamount." Dollars\t".$adress."\n";

@$fp = fopen("$document_root/../shop/orders.txt", 'ab');
if (!$fp) {
echo "<p><strong>Vaše objednávka nemohla být zpracována. Zkuste to prosím pozdějí.</strong></p>";
 exit;
}
flock($fp, LOCK_EX);
fwrite($fp, $outputstring, strlen($outputstring));
flock($fp, LOCK_UN);
fclose($fp);
echo "<p>Objednávka byla uložena</p>";

?>

</body>
</html>

view-orders.php:

<?php
$document_root = $_SERVER['DOCUMENT_ROOT'];
/*

Author: gmboyYT
Last Edit: 10.12.2019 21:08 (EU)
Its Simple shop

*/
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Title</title>
</head>
<body>
<h1>Orders of customer</h1>
<?php

@$fp = fopen("$document_root/../shop/orders.txt", 'rb');
flock($fp, LOCK_SH);

if (!$fp) {
echo "<p><strong>Žádné vyřízené objednávky zde zatím nejsou</strong></p>";

 exit; 
}

while (!feof($fp)) {
$order = fgets($fp);
echo htmlspecialchars($order)."<br />";
}

flock($fp, LOCK_UN); 
fclose($fp);
?>
</body>
</html>
Nahlásit jako SPAM
IP: 46.231.77.–
Kit+15
Guru
10. 12. 2019   #3
-
0
-

#2 Starý chábr
Odstraň ten zavináč u fopen(). Proč vlastně používáš fopen()? Skoro jsem zapomněl, že to v PHP zatím nikdo nezrušil. Prakticky je k ničemu.

Nahlásit jako SPAM
IP: 46.135.27.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Starý chábr
~ Anonymní uživatel
6 příspěvků
10. 12. 2019   #4
-
0
-

#3 Kit Ahoj teď jsem to udělal, ale píše mi to error:

( ! ) Warning: fopen(C:/wamp64/www/../shop/orders.txt): failed to open stream: No such file or directory in C:\wamp64\www\Shop\method.php on line 87
Call Stack
# Time Memory Function Location
1 0.0015 404752 {main}( ) ...\method.php:0
2 0.0017 405880 fopen ( ) ...\method.php:87

Vaše objednávka nemohla být zpracována. Zkuste to prosím pozdějí.

prý neexistuje soubor orders.txt ale je tu tak co mám špatně?


Nahlásit jako SPAM
IP: 46.231.77.–
Kit+15
Guru
10. 12. 2019   #5
-
+1
-
Zajímavé

#4 Starý chábr
No vida, jsi už o kukus dál.

Nejspíš ses přepočítal se zanořením adresářů.

Jednou tam máš shop, podruhé Shop. Jak se v tom vyznáš?

Zbav se toho fopen(). Raději použij nějakou databázi.

Nahlásit jako SPAM
IP: 46.135.27.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
z_moravec
~ Redaktor
+3
Posthunter
11. 12. 2019   #6
-
0
-
Nahlásit jako SPAM
IP: 147.251.29.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
peter
~ Anonymní uživatel
4016 příspěvků
11. 12. 2019   #7
-
0
-

Ja bych do obou php napsal
$path = "$document_root/../shop/orders.txt";
echo $path;
$fp = fopen($path, 'rb');

Jak pise Kit, v te chybe mas
C:/wamp64/www/../shop/orders.txt
C:\wamp64\www\Shop\method.php
Cili, cesty nejak hodne divne. A pokud jde o Linux, tak rozlisuje I velka pismena.

Tez Kit psal, ze se mas zbavit fopen. Nove se pouziva file_get_content a file_put_content.
php.net/file_get_contents
php.net/file_put_contents
A ti lepsi to resi ukladanim do database. Coz muze byt praktictejsi. Zalezi na tom. Ty nejspis dal tu objednavku v kopii posilas na mail? To muze byt soubor prakticky. Nicmene bacha na prava. Kdyz ulozis soubor do slozky, muze byt a vetsinou byva, pristupny I na web pro anonymniho uzivatele. Cili porusujes zakon o zabezpeceni osobnich udaju zakaznika.

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:3838:5a25:f2e0...–
Kit+15
Guru
11. 12. 2019   #8
-
0
-

V minulosti jsem také zapisoval do souborů, ale vzniká přitom docela dost hazardních stavů, například mezi fopen() a flock(). Už dost vývojářů takhle přišlo o data.

Zápis appendem do souboru má dnes význam snad jen pro logy. Použití databáze je jednodušší a hlavně spolehlivější.

Nahlásit jako SPAM
IP: 46.135.27.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 9 hostů

Podobná vlákna

Hodnocení e-shopu — založil xanteacz

Programování e-shopu (tutorial) — založil Blabalal

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý