PHP HELP
-
#486
"egy text mezöbe beirok vmit és azt egy txt fájlba menti ki"
No akkor kezdjük az alapoknál:
1. Kell egy űrlap. Ehhez alapvetően nem kell PHP, elég a HTML is.
A későbbi anyázások elkerülése végett érdemes ügyelni a rendes kódolásra (dokumentumtípus, karakterkódolás), mert amikor CSS-sel formázni fogod, leginkább IE alatt érdekes szituációkba kerülhetsz (nem akkora lesz, elcsúszik, stb...).
Tehát:
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
<title>Űrlap</title>
</head>
<body>
<form action="almas.php" method="post">
<input type="text" name="alma">
<input type="submit" name="gomb" value="ok">
</form>
</body>
</html>
Vegyük észre, hogy sehol egy include. Minek is akarjuk az írást végrehajtó részt beleintegrálni az oldalba, ha az űrlapnál megadjuk, hogy melyik oldalnak küldjük el az adatokat? Döntsük el, vagy integrálunk és akkor nem kell a <form> tagnek action attribútumba megadni semmit, vagy nem integrálunk, de akkor meg nem kell include.
Másrészt a szövegmező name attribútumának értéke elé nem kell $ jel.
2. Kell egy, az írást végrehajtó rész (almas.php):
<?php
$filename = "proba.txt";
if (is_writable($filename)) {
if (!$handle = fopen($filename, "a")) {
echo "Nem tudom megnyitni a ".$filename." állományt.";
exit;
}
if ($_POST["gomb"]=="ok") {
if (fwrite($handle, $_POST["alma"]."\n") === FALSE) {
echo "Nem tudom írni a ".$filename)." állományt.";
exit;
}
echo "Az állomány írása sikeres volt.";
}
fclose($handle);
} else {
echo "Az állomány nem írható";
}
?>
Itt érdemes megemlíteni, hogy az űrlap mezői nem egyszeri változókként használjuk.
Régebben még lehetett így használni, de most már az űrlap elküldésének metódusától függő tömböket kell használni.
Másrészt érdemes ellenőrizni, hogy az adott űrlapot tényleg elküldték-e, nem-e máshonnan származik az adat. Erre egy minimumvédelem, hogy leellenőrizzük, hogy a "gomb" nevű űrlapot elküldő gomb értéke "ok"-e (ez akkor mindenképpen kell, ha az űrlapot és az írást végző részt egybeintegráljuk).
3. Ha integrálni akarjuk az űrlapot és a mentést végző részt:
* Az index-állománynak .php kiterjesztésűnek kell lennie
* A <form> tag action attribútuma maradhat üresen.
* A </form> után és a </body> elé az alábbi kerül:
<?php
include ("almas.php");
?>