Παιδια καλησπερα. Πειραματιζομαι με την PHP και διαβαζω ενα βιβλιο λοιπον προσθετω εναν κωδικα if στην σελιδα και μου χτυπαει error εδω αλλα οταν το σβηνω παει στην επομενη γραμμη
echo '</p>'; //ΕΔΩ ΜΟΥ ΧΤΥΠΑΕΙΚώδικας:<?php // create short variable names $tireqty = $_POST['tireqty']; $oilqty = $_POST['oilqty']; $sparkqty = $_POST['sparkqty']; ?> <!DOCTYPE html> <html> <head> <title>Bob's Auto Parts - Order Results</title> </head> <body> <h1>Bob's Auto Parts</h1> <h2>Order Results</h2> <?php echo "<p>Order processed at "; echo date('H:i, jS F Y'); echo "</p>"; echo '<p>Your order is as follows: </p>'; echo htmlspecialchars($tireqty).' tires<br />'; echo htmlspecialchars($oilqty).' bottles of oil<br />'; echo htmlspecialchars($sparkqty).' spark plugs<br />'; $totalqty = 0; $totalqty = $tireqty + $oilqty + $sparkqty; echo "<p>Items ordered: ".$totalqty."<br />"; $totalamount = 0.00; define('TIREPRICE', 100); define('OILPRICE', 10); define('SPARKPRICE', 4); $totalamount = $tireqty * TIREPRICE + $oilqty * OILPRICE + $sparkqty * SPARKPRICE; echo "Subtotal: $".number_format($totalamount,2)."<br />"; $taxrate = 0.10; // local sales tax is 10% $totalamount = $totalamount * (1 + $taxrate); echo "Total including tax: $".number_format($totalamount,2)."</p>"; if ($totalqty == 0) { echo '<p style="color:red">'; echo "You did not order anything on the previous page!"; echo '</p>'; //ΕΔΩ ΜΟΥ ΧΤΥΠΑΕΙ } ?> </body> </html>
Οτιδηποτε απορεια θα σας απαντησω
Σας ευχαριστω πολύ
Εμφάνιση 1-15 από 29
Θέμα: PHP Ερωτησεις
-
23-12-23, 17:58 PHP Ερωτησεις #1Magus!!!
-
24-12-23, 01:01 Απάντηση: PHP Ερωτησεις #2
δεν βλεπω κατι λαθος. τι σου βγαζει;
ουδέν μονιμότερο του προσωρινού
-
24-12-23, 11:07 Απάντηση: PHP Ερωτησεις #3
( ! ) Parse error: syntax error, unexpected token "echo" in F:\sites\PHP_MYSQL_Lessons\phplessons2\Chapter01\processorder_v4.php on line 48
- - - Updated - - -
Λοιπον εχουμε και λεμε για καποιον λογο που δεν καταλαβαινω εκανα αυτες τις αλλαγες
<?PHP:if ($totalqty == 0) {
echo "<p style='color:red'>";
echo "You did not order anything on the previous page! </p>";
} ?>
Τελευταία επεξεργασία από το μέλος magus32 : 24-12-23 στις 11:47.
Magus!!!
-
24-12-23, 12:50 Απάντηση: PHP Ερωτησεις #4
Ούτε εγώ βρήκα το λάθος. Γενικά, όταν σου λέει «unexpected token», τις περισσότερες φορές το λάθος έχει γίνει παραπάνω. Μπορεί, για παράδειγμα, να έχεις παρενθέσεις ή αγκύλες που δεν έκλεισαν σωστά ή να λείπει ένα ;.
- Κάνετε τη δουλειά σας γρήγορα, αξιόπιστα, με ασφάλεια, χωρίς τεχνητούς περιορισμούς και δωρεάν με το Linux.
- Οι δίσκοι χαλάνε! Σκεφτείτε τα αρχεία σας πριν την πατήσετε. Κάνετε τακτικά backup.
-
25-12-23, 12:19 Απάντηση: PHP Ερωτησεις #5
Εκανα αυτες τις αλλαγες που εγραψα πιο πανω και δουλευει κανονικα
- - - Updated - - -
Παιδια καλημερα και χρονια πολλα, Μια ερωτηση γιατι δεν καταλαβαινω. Εχουμε αυτον εδω τον κωδικα
<?PHP:while ($distance <= 250) {
echo "<tr>
<td style=\"text-align: right;\">".$distance."</td>
<td style=\"text-align: right;\">".($distance / 10)."</td>
</tr>\n";
$distance += 50;
}
<?PHP:<td style=\"text-align: right;\">".$distance."</td>
<td style=\"text-align: right;\">".($distance / 10)."</td>
Σας ευχαριστω πολυ και καλα χριστουγενναMagus!!!
-
25-12-23, 13:28 Απάντηση: PHP Ερωτησεις #6
Χρόνια πολλά! Είναι χαρακτήρας διαφυγής (escape character) και χρησιμοποιείται έτσι ώστε να μην ερμηνευτεί το " που τον ακολουθεί ως το τέλος της συμβολοσειράς, αφού και αυτή οριοθετείται με ". Για να αποφύγεις αυτό το θέμα, μπορείς να χρησιμοποιείς απλά εισαγωγικά (') για τις συμβολοσειρές, έτσι ώστε να μην υπάρχει θέμα με διπλά εισαγωγικά που περιέχονται σε αυτές.
Εναλλακτικά, για να μην τρελαθείς με όλα τα echo, μπορείς το παραπάνω να το γράψεις ως εξής:
Κώδικας:<?php while ($distance <= 250) { ?> <tr> <td style="text-align: right;"><?= $distance ?></td> <td style="text-align: right;"><?= ($distance / 10) ?></td> </tr> <?php $distance += 50; }
- Κάνετε τη δουλειά σας γρήγορα, αξιόπιστα, με ασφάλεια, χωρίς τεχνητούς περιορισμούς και δωρεάν με το Linux.
- Οι δίσκοι χαλάνε! Σκεφτείτε τα αρχεία σας πριν την πατήσετε. Κάνετε τακτικά backup.
-
25-12-23, 13:56 Απάντηση: PHP Ερωτησεις #7
Για να καταλαβω ειναι το ιδιο με το αν εγραφα αυτο ;
<?PHP:while ($distance <= 250) {
echo "<tr>
<td style='text-align: right;'>".$distance."</td>
<td style='text-align: right;'>".($distance / 10)."</td>
</tr>\n";
$distance += 50;
}
Magus!!!
-
25-12-23, 14:33 Απάντηση: PHP Ερωτησεις #8
Ναι.
.
.- Κάνετε τη δουλειά σας γρήγορα, αξιόπιστα, με ασφάλεια, χωρίς τεχνητούς περιορισμούς και δωρεάν με το Linux.
- Οι δίσκοι χαλάνε! Σκεφτείτε τα αρχεία σας πριν την πατήσετε. Κάνετε τακτικά backup.
-
25-12-23, 14:43 Απάντηση: PHP Ερωτησεις #9
-
25-12-23, 21:12 Απάντηση: PHP Ερωτησεις #10
Τίποτα, καλή συνέχεια!
- Κάνετε τη δουλειά σας γρήγορα, αξιόπιστα, με ασφάλεια, χωρίς τεχνητούς περιορισμούς και δωρεάν με το Linux.
- Οι δίσκοι χαλάνε! Σκεφτείτε τα αρχεία σας πριν την πατήσετε. Κάνετε τακτικά backup.
-
26-12-23, 00:46 Απάντηση: PHP Ερωτησεις #11
Μία μικρή παρατήρηση.
Το "σωστό" στην html είναι τα attributes να είναι σε double quotes.
Οποτε τοΚώδικας:<td style='text-align: right;'>
Κώδικας:<td style="text-align: right;">
Οπότε το σωστό θα ήταν τα μόνα quotes για την php και δίπλα στα attributes.
Επίσης, αφού χρησιμοποιείς double quotes χρησιμοποιησέ τα σαν δίπλα, με τις λειτουργίες τους!
Κώδικας:echo "<tr> <td style=\"text-align: right;\">{$distance}</td> <td style=\"text-align: right;\">{$distance / 10}</td> </tr>";
-
26-12-23, 11:42 Απάντηση: PHP Ερωτησεις #12
Παιδια εχω μια απορια με την feof() αν καταλαβα καλα αυτη ανοιγει ενα αρχειο (συνηθως txt) διαβαζει ολες τις γραμμες και ελεγχει αν παει μεχρι το τελος του αρχειου σωστα; η ερωτηση μου ειναι αν ειναι ετσι ποια η χρισημοτητα της;
Παιδια και κατι ακομη εχω αυτον τον κωδικα
<?PHP:<?php
// create short variable names
$tireqty = (int) $_POST['tireqty'];
$oilqty = (int) $_POST['oilqty'];
$sparkqty = (int) $_POST['sparkqty'];
$address = preg_replace('/\t|\R/',' ',$_POST['address']);
$document_root = $_SERVER['DOCUMENT_ROOT'];
$date = date('H:i, jS F Y');
?>
<!DOCTYPE html>
<html>
<head>
<title>Bob's Auto Parts - Order Results</title>
</head>
<body>
<h1>Bob's Auto Parts</h1>
<h2>Order Results</h2>
<?php
echo "<p>Order processed at ".date('H:i, jS F Y')."</p>";
echo "<p>Your order is as follows: </p>";
$totalqty = 0;
$totalamount = 0.00;
define('TIREPRICE', 100);
define('OILPRICE', 10);
define('SPARKPRICE', 4);
$totalqty = $tireqty + $oilqty + $sparkqty;
echo "<p>Items ordered: ".$totalqty."<br />";
if ($totalqty == 0) {
echo "You did not order anything on the previous page!<br />";
} else {
if ($tireqty > 0) {
echo htmlspecialchars($tireqty).' tires<br />';
}
if ($oilqty > 0) {
echo htmlspecialchars($oilqty).' bottles of oil<br />';
}
if ($sparkqty > 0) {
echo htmlspecialchars($sparkqty).' spark plugs<br />';
}
}
$totalamount = $tireqty * TIREPRICE
+ $oilqty * OILPRICE
+ $sparkqty * SPARKPRICE;
echo "Subtotal: $".number_format($totalamount,2)."<br />";
$taxrate = 0.10; // local sales tax is 10%
$totalamount = $totalamount * (1 + $taxrate);
echo "Total including tax: $".number_format($totalamount,2)."</p>";
echo "<p>Address to ship to is ".htmlspecialchars($address)."</p>";
$outputstring = $date."\t".$tireqty." tires \t".$oilqty." oil\t"
.$sparkqty." spark plugs\t\$".$totalamount
."\t". $address."\n";
// open file for appending
@$fp = fopen("$document_root/orders.txt", 'ab');
if (!$fp) {
echo "<p><strong> Your order could not be processed at this time.
Please try again later.</strong></p>";
exit;
}
flock($fp, LOCK_EX);
fwrite($fp, $outputstring, strlen($outputstring));
flock($fp, LOCK_UN);
fclose($fp);
echo "<p>Order written.</p>";
?>
</body>
</html>
Φανταζομαι οτι ο κωδικας ειναι αυτος
<?PHP:// open file for appending
@$fp = fopen("$document_root/orders.txt", 'ab');
if (!$fp) {
echo "<p><strong> Your order could not be processed at this time.
Please try again later.</strong></p>";
exit;
}
flock($fp, LOCK_EX);
fwrite($fp, $outputstring, strlen($outputstring));
flock($fp, LOCK_UN);
fclose($fp);
echo "<p>Order written.</p>";
Τελευταία επεξεργασία από το μέλος magus32 : 26-12-23 στις 11:52.
Magus!!!
-
26-12-23, 12:46 Απάντηση: PHP Ερωτησεις #13
Η feof() ελέγχει αν ένα αρχείο που έχεις ήδη ανοιχτό (και της περνάς ως παράμετρο το handle του) έχει φτάσει στο τέλος. Από μόνη της δεν ανοίγει ή διαβάζει κάτι.
Αντί για την fopen κ.λπ., δοκίμασε να γράψεις με το εξής:
Κώδικας:file_put_contents("$document_root/orders.txt", $outputstring, FILE_APPEND)
- Κάνετε τη δουλειά σας γρήγορα, αξιόπιστα, με ασφάλεια, χωρίς τεχνητούς περιορισμούς και δωρεάν με το Linux.
- Οι δίσκοι χαλάνε! Σκεφτείτε τα αρχεία σας πριν την πατήσετε. Κάνετε τακτικά backup.
-
26-12-23, 20:05 Απάντηση: PHP Ερωτησεις #14
Σε ευχαριστώ για την απάντηση, μήπως μπορείς να μου εξηγήσεις τι κάνει η file_put_contents και για ποιο λόγο να το αντικαταστήσω με την fopen;
Ποια η χρησιμότητα της feof();
Αλλαξα το
<?PHP:// open file for appending
@$fp = fopen("$document_root/orders.txt", 'ab');
if (!$fp) {
echo "<p><strong> Your order could not be processed at this time.
Please try again later.</strong></p>";
exit;
}
flock($fp, LOCK_EX);
fwrite($fp, $outputstring, strlen($outputstring));
flock($fp, LOCK_UN);
fclose($fp);
echo "<p>Order written.</p>";
<?PHP:@$fp = file_put_contents("$document_root/orders.txt", $outputstring, FILE_APPEND);
if (!$fp) {
echo "<p><strong> Your order could not be processed at this time.
Please try again later.</strong></p>";
exit;
}
echo "<p>Order written.</p>";
Update----------------------------------
Αλλαξα σε αυτο
<?PHP:@$fp = file_put_contents("orders.txt", $outputstring, FILE_APPEND);
- - - Updated - - -
Οταν γραφω ελληνικους χαρακτηρες τους αποθηκευει ετσι Λίνδος - Ρόδου μηπως ξερετε γιατι;Τελευταία επεξεργασία από το μέλος magus32 : 26-12-23 στις 13:40.
Magus!!!
-
26-12-23, 20:49 Απάντηση: PHP Ερωτησεις #15
Η feof() σου δείχνει αν το αρχείο που διαβάζεις έχει φτάσει στο τέλος του. Στην πράξη μπορεί να μη σου χρειαστεί ποτέ, αφού οι συναρτήσεις της PHP, π.χ. η fgets, έτσι κι αλλιώς σου επιστρέφουν false αν το συναντήσουν.
Η file_put_contents() είναι ένας σύντομος τρόπος για να ανοίξεις/δημιουργήσεις ένα αρχείο, να γράψεις σε αυτό και να το κλείσεις. Για ανάγνωση υπάρχει αντίστοιχα η file_get_contents().
Σχετικά με τα μονοπάτια αρχείων, επειδή στα Windows χρησιμοποιείται το \ για διαχωρισμό αντί για το / σε Linux/Mac, θα πρέπει να χρησιμοποιήσεις το \\ αντί για το / παραπάνω.
Μπορείς να ανεβάσεις το orders.txt;- Κάνετε τη δουλειά σας γρήγορα, αξιόπιστα, με ασφάλεια, χωρίς τεχνητούς περιορισμούς και δωρεάν με το Linux.
- Οι δίσκοι χαλάνε! Σκεφτείτε τα αρχεία σας πριν την πατήσετε. Κάνετε τακτικά backup.
Bookmarks