Autor Zpráva
cmelak
Profil
Zdravím všechny

Potřeboval bych informace z formuláře uložit do souboru, vím že se tu něco podobného řešilo, ale nedokáži si to předělat jak bych potřeboval proto se obracím na vás.

na strance by se mel zobrazit text uloženy v souboru
a pod tím by byl formulář:

výběrové pole s volbou 1,2,3
další pole s výběrem s,y,b
a další textové pole kde by se dalo něco dopsat

a to vše uložit na samostatný řádek v souboru ve tvaru:

1:S~aa.cz
1:S~bbb.cz
1:S~ccc.cz

dvojtečka a vlnovka by se vložila automaticky
1, S a aaa.cz by se vkládali z formuláře

věřím ze se tu najde nějaká dobra duše která mi pomůže

Diky David
Joker
Profil
na action u formuláře si nastavit skript, který ten soubor v daném formátu uloží.

Viz v PHP fopen, fwrite, fclose.
cmelak
Profil
no na to jsem koukal, ale nedokážu to sepsat do funkčního celku.

mám tento kod který by vyhovoval ale nodokážu tam přidat ty další veci.

<html>
<head>
<meta content="text/html; charset=windows-1250" http-equiv="Content-Type">
</head>
<body>
<h2>Text akce</h2>
<?php

if(get_magic_quotes_gpc()) $textik = stripslashes($_POST['textik']);
else $textik = $_POST['textik'];

$soubor = 'c:pokus.dat';
if (!File_Exists ($soubor)) exit("Nelze nalézt soubor.");
if ($_POST['submit']) {
$klika = fopen( $soubor, 'w');
// zamykaní funguje pouze na serverech typu Unix/Linux
//$zamek = flock ($klika, LOCK_EX);
//if ($zamek == false) {exit ('Nelze zamknout soubor. Zkuste znovu.');}
//
if ($klika == false) {exit ("Nelze otevřít textový soubor pro zápis.");}
fputs($klika, $textik, strlen($textik));
//flock ($klika, LOCK_UN);
fclose($klika);
echo "Soubor byl upraven: ", date('d.m.Y H:i:s');
}
?>
<form
action="<?php echo $PHP_SELF; ?>"
name="form"
method="post">
<textarea cols="30" rows="5" name="textik">
<?php
$pole = file($soubor);
while (list ($cisloRadku, $radek) = each ($pole)) echo($radek);
?>
</textarea>
<br><br><input type="submit" name="submit" value=" Odeslat ">
<input type="reset" name="reset" value=" Zrušit ">
</form>
<a href="../admin.php">Zpět na Administraci</a>
</body>
</html>
Joker
Profil
Jednoduchým pospojováním informací z $_POST (nebo $_GET, podle toho jak se formulář odesílá) s "napevno danými" částmi řetězce (ta dvojtečka, vlnovka,...) se získá ten řetězec.
Potom se přes fopen otevře ten soubor pro přidávání (append) a přes fwrite zapíše, fclose zavře.
To není tak těžké.
cmelak
Profil
Vám se to lehko řekne, ale mě se to hůře udělá.

Prosím, prosím .....
Joker
Profil
$soubor = 'c:pokus.dat';
Nevím, nevím, jestli C:\něco bude na serveru fungovat.

$klika = fopen( $soubor, 'w');
Pokud se má přidávat, místo "w" má být "a"

Dál, co na tom nefunguje?
cmelak
Profil
no funguje to, ale práve že bych potřeboval zadávat ty rádky z formuláře:

1: vyberové pole
2: výběrové pole
3: text

a to vše spojit na jeden rádek

zkoušej jsem ten kód upravit ale pořád to hlásilo nějaké chyby. ....
Joker
Profil
No to je jednoduché:

$textik = $nejakepole.":".$jinepole."~".$jestejinepole;

za předpokladu, že do těch proměnných si nahraju příslušně zvalidované údaje ze $_POST


zkoušej jsem ten kód upravit ale pořád to hlásilo nějaké chyby.
Jaké chyby?
cmelak
Profil
Jsem asi tupej ať koukám do toho kódu jak chci tak nevím kam tenhle řetězec vložit ...
Joker
Profil
Jak je
fputs($klika, $textik, strlen($textik));

tak někde předtím se musí do proměnné $textik uložit to, co tam má být.
cmelak
Profil
díky mám pokrok, ale ted to ignoruje enter aby se to ukládalo na další řádek, je na to taky nějakej fígl?
Joker
Profil
Enter se zapisuje jako \n (zpětné lomítko a n)
cmelak
Profil
Díky za pomoc, už jsem se konečně dobral ke zdárnému konci.
Nakonec to nebylo tak těžké, i když nevím zda to mám napsané vše dobře, ale hlavne že to funguje. ;-)

Zasílám kód třeba se to někomu bude taky hodit.

Díky Joker


<html>
<head>
<meta content="text/html; charset=windows-1250" http-equiv="Content-Type">
</head>
<body>
<h2>Spam list</h2>
<?php
$akce = $_POST['akce'];
$adresa = $_POST['adresa'];
if ($_POST['submit'])
{
$text = " ".$akce.":S~".$adresa;
$soubor = fopen("pokus.dat", "a");
fwrite($soubor, $text);
fclose($soubor);
}
?>
<table>
<tr>
<td width="365">
<textarea cols="40" rows="30" readonly>
<?php
$soubor = fopen("pokus.dat", "r");
$text = fread($soubor, 10000000);
echo ($text);
?>
</textarea>
</td>
<td>
<form action="<?php echo $PHP_SELF; ?>" name="form" method="post">
<select name="akce">
<option value="1">Není spam</option>
<option value="3">Je spam</option>
</select>
<br><br>
<input name="adresa">
<br>
<input type="submit" name="submit" value=" Odeslat ">
<input type="reset" name="reset" value=" Zrušit ">
</form>
</td>
</tr>
</table>
</body>
</html>

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: