ugrás a tartalomhoz

txt hozzáférési hiba PHP scipt-nél EasyPHP 1.8

Petrusz · 2006. Feb. 22. (Sze), 19.09
Sziasztok!

Lehet triviális a kérdés, Telepítettem egy EasyPhp-t és egy kis html segítségével probálok php scriptből egy txt fileba írni uagyanabba a könyvtárba de hibával megakad.

Lehet hogy a HTML t PHP kiterjesztéssel kellene lementeni?
vagy valami más a hiba / localhostként tesztelem futó Apache szerverrel

Köszönöm segítségeteket!

Péter

a html és a hiba:

<html>
<head>
<title>Untitled</title>
</head>

<body>
<form action="/orders.txt" method=post>
<table border=0>
<tr bgcolor=#cccccc>
<td width=150>Item</td>
<td width=15>Quantity</td>
</tr>
<tr>
<td>Tires</td>
<td align=center><input type="text" name="tireqty" size=3 maxlength=3></td>
</tr>
<tr>
<td>Oil</td>
<td align=center><input type="text" name="oilqty" size=3 maxlength=3></td>
</tr>
<tr>
<td>Spark Plugs</td>
<td align=center><input type="text" name="sparkqty" size=3 maxlength=3></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value="Submit Order"></td>
</tr>
</table>
</form>
<?php
$fp = fopen ('orders.txt','W');
fwrite($fp, $oilqty);
fclose($fp);
?>

</body>
</html>

ERROR

Method Not Allowed
The requested method POST is not allowed for the URL /orders.txt.

Apache/1.3.33 Server at localhost Port 80
 
1

Nem jó

mefi · 2006. Feb. 22. (Sze), 20.03
Ez így nemigazán jó, mert a gomb megnyomásakor a fájlt nyitja meg. Én így próbálnám:

<?php
if($_POST['submit']){ //adj nevet a submit gombnak
$oilqty  = $_POST['oilqty'];
$tireqty = $_POST['tireqty'];
$sparkqty= $_POST['sparkqty'];
$fp = fopen ('orders.txt','W');
fwrite($fp, $oilqty);
fclose($fp);
}
else{
?>
<!-- a html kódod -->
<?php } ?>
Persze a befejezést úgyis megoldhatod, hogy PHP-vel iratod ki a képernyőre a formot.

mefi
http://mefi.be
2

action=???

inti · 2006. Feb. 22. (Sze), 21.32
szerintem a form action attribútumába a feldolgozo script neve kell, ami jelen esetben a script file neve, amit írsz, vagy semmi (ez esetben önmagára hivatkozik a script, ami ugyanolyan jó), de semmiképp nem az a file kell oda, amibe írni akarsz (order.txt)

javítsatok ki, ha tévednék
3

Nincs

mefi · 2006. Feb. 22. (Sze), 23.21
Semmi tévedés nincs, ezt megjegyeztem én is. :)

mefi
http://mefi.be
4

<Nincs cím>

Petrusz · 2006. Feb. 23. (Cs), 11.01
Nagyon köszönöm a segítségeteket egy kicsit lerövidítettem a filet, beírtam az if fügyvényt a scriptbe de még mindig nem éri el a külső orders.txt-t. Mi lehet a hiba?

Péter

<body>
<form action='orders.txt' method=post>
<tr>
<td>Oil</td>
<td align=center><input type="text" name="oilqty" size=3 maxlength=3></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value="Submit Order"></td>
</tr>
</table>
</form>
<?php
if($_POST['Submit Order']);
$oilqty =$_POST['oilqty'];
$fp = fopen ('orders.txt','W');
fwrite($fp, $oilqty);
fclose($fp);
?>
</body>
5

<Nincs cím>

Anonymous · 2006. Feb. 23. (Cs), 11.31
A form action paraméterébe ne a text file nevét írd be, hanem a feldolgozó script nevét. Lehet ez egy másik file, vagy az, amelyikből a form el lett küldve, de a text file semmi esetre sem. Már kétszer elmondták előttem...
6

Olvasni

attlad · 2006. Feb. 23. (Cs), 11.34
Szerintem olvasd el a 2. hozzászólást:
http://weblabor.hu/forumok/temak/12082#comment-22887
7

<Nincs cím>

Petrusz · 2006. Feb. 23. (Cs), 11.54
Szerintem az lehet a baj, hogy az összefüggések tudása hiányzik részemről :)

Tehát ha a scipt maga a index.html ben van akkor <form action=index.html method=post>?
8

.html .php

attlad · 2006. Feb. 23. (Cs), 13.02
Általában úgy vannak beállítva a webszerverek, hogy a .php kiterjesztésű fájlokban értelmezzék a PHP utasításokat. Ha megnézed az oldalad forrását, akkor látod benne a PHP kódot? Ha igen, akkor .php-t kéne használnod .html helyett és igen, azt kell odaírni.
9

<Nincs cím>

Petrusz · 2006. Feb. 24. (P), 02.04
Köszönöm mindenki segítségét

De még mindig nem boldogulok!
meg tudjátok mondani hogy az if emben mi a hiba mert nem is figyeli a script hogy a submitot mikor ütöm le

<html>
<head>
<title>Proba</title>
</head>
<body>
<?php
if (isset($submit) && $submit=='yes') {
$fp = fopen('output.txt', 'a');
fwrite($fp, '$email');
fclose($fp);
} else {;
?>
<form action=index.php action=post>
<input type=text name=email>
<input type=submit name=submit value='yes'>
</form>
<?php
}
?>
</body>
</html>
10

<Nincs cím>

Anonymous · 2006. Feb. 24. (P), 02.21
Mivel POST metódussal küldöd el az adatokat, a $_POST tömb adja azokat vissza. Tehát a $submit helyett a $_POST["submit"] kell neked (és az $email helyett is értelemszerűen $_POST["email"]).
11

<Nincs cím>

Petrusz · 2006. Feb. 24. (P), 02.35
Köszönöm, de még mindig nem akar írni a txt.be fut nincs hibaüzenet de nincs kimenete. Meg tudnád nézni? vagy esetleg van egy nagyon egyszerű példád arra hogy egy formból hogy íratok ki valamit txt.vel

<html>
<head>
<title>Proba</title>
</head>
<body>
<?php
if (isset($submit) && $_POST["submit"]=="yes") {
$fp = fopen('output.txt', 'a');
fwrite($fp, $_POST["email"]);
fclose($fp);
} else {
?>
<form action=index.php action=post>
<input type=text name=email>
<input type=submit name=submit value="yes">
</form>
<?php
}
?>
</body>
</html>
12

Re: 11

Anonymous · 2006. Feb. 24. (P), 05.30
Nem tudom, a method miért lett menet közben action, de mindegy is. Talán így próbáld meg:

<?php

echo "<html>\n"
   . "<head>\n"
   . "<title>Proba</title>\n"
   . "</head>\n"
   . "<body>\n";

if ($_POST["submit"]) {

	$fp = fopen("output.txt", "a");
	fwrite($fp, $_POST["email"]."|");
	fclose($fp);

} else {

	echo "<form action=\"index.php\" method=\"POST\">\n"
	   . "<input type=\"text\" name=\"email\">\n"
	   . "<input type=\"submit\" name=\"submit\">\n"
	   . "</form>\n";

}

echo "</body>\n"
   . "</html>";

?>
13

<Nincs cím>

Petrusz · 2006. Feb. 24. (P), 11.44
Nagyon köszönöm Anonymous!

Ez a php már írt is a txt-be. az if sorában undifined indexet ír hibaként a submitra, de azért fut.
"Notice: Undefined index: submit in c:\easyphp1-8\www\index.php on line 8"
mivel nincs deffiniálva, de hogyan lehetséges egy submit eseménynek értéket vagy valamit adni?

közben megoldottam: if (isset($_POST["submit"]))

az még megkérdezhetem hogy lehet ezt kicsit statikusá tenni a php-t, mert a submit lefutása után a képernyő üres lesz és nem adja meg lehetöségként hogy új adatot a txt be átküldjek

Üdv

megoldottam a visszatérést is:

<html>
<head>
<title>>Proba</title>
</head>
<body>
<?php
if (isset($_POST["submit"])) {
$fp = fopen('output.txt', 'a');
fwrite($fp, $_POST["email"]);
fclose($fp);
?>
<a href="index.php">ismét</a>
<?php
} else {
echo "<form action=\"index.php\" method=\"POST\">\n"
."<input type=\"text\" name=\"email\">\n"
."<input type=\"submit\" name=\"submit\">\n"
."</form>\n";
}
?>
</body>
</html>