zapis do txt

Programovacie jazyky, rady, poradňa...
Natro
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 359
Registrovaný: 15 sep 2008, 20:45
Bydlisko: Košice

zapis do txt

Príspevok od používateľa Natro »

Potreboval by som pomoct s tymto, mam formular napr.: meno, vek, e-mail a ked da meno napr. Pes tak vytvory Pes.txt do nejakeho priecinku na ftp.
Ak by ste to nevedeli velmy pochopit tak napiste :)
chmirko
Expert
Expert
Používateľov profilový obrázok
Príspevky: 182
Registrovaný: 05 sep 2008, 15:56
Kontaktovať používateľa:

Príspevok od používateľa chmirko »

Potreboval by som pomoct s tymto, mam formular napr.: meno, vek, e-mail a ked da meno napr. Pes tak vytvory Pes.txt do nejakeho priecinku na ftp.
Ak by ste to nevedeli velmy pochopit tak napiste
citujem to tu aby som si to mohol zaroven citat

no nenapisal si v com ale chces v FTP spravit adresar tak ti skusim dat php obsluzny script

Kód: Vybrať všetko

<?
 if ($_POST["poslane"]==ok)
 {
   $sub = fopen($adresar.$POST["meno"].".txt","w");
   $fputs($sub,"Meno: ".$_POST["meno"]."\nVek: ".$_POST["vek"]."\nE-Mail: ".$_POST["email"]);
   fclose($sub);

 }
 //vytvorenie
  $main = "<form method=\"post\" action=\"".$_self."\">";
  $main.="<input type=text name=\"meno\" maxlength=55 size=10><br>";
  $main.="<input type=text name=\"vek\" maxlength=55 size=10><br>";
  $main.="<input type=text name=\"email\" maxlength=55 size=10>";
  $main.= "<input type=submit value=\"ok\" name=\"poslane\">";
  $main.= "</form>";
  // vytvorenie toho dormu, toto s uprav do grafiky troska
 echo $main;
 // vypis formu, toto strc kam treba na stranke
?>
davaj pozor ze POST je velkymi pismenkami
snad to je dobre, pisal som to rovno sem nespustal :)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

ešte by som tam pridal kontrolu či súbor existuje (aby sa neprepísal alebo minimálne o prepísaní informoval keď zadá znova také isté meno) a ten vstup by bolo dobre oštetriť, lebo takto ako si to spravil mi až husia koža nabehla. Pridám si do mena pár bodiek a lomítok a do iných vstupov nejaký ten php a prídeš o celý web :)
Natro
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 359
Registrovaný: 15 sep 2008, 20:45
Bydlisko: Košice

Príspevok od používateľa Natro »

chmirko: Dakujem :)
audiotrack: Tak by si mi to nemohol upravit pls

//autoeditácia príspevku ( 20 May 2009, 18:06 )
ale mmnt, ved aby sa mi tam nikto nedostal tak nestaci .htaccess? nastavim aby nikto nemohol vstupit a mam, pretoze ja len potrebujem aby sa ku tm txt nikto nedostal. To nie je registracia!
Ale nie som si isty ze ci to .htaccess ochrani dobre :(
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

nie, o niečom inom som písal. Podstatou toho čo som písal je to, že ten súbor dokážem uložiť kde chcem, a nie len tam kde si myslíš že sa bude ukladať. Druhou podstatou toho čo som písal je to, že do neho môžem zapísať php a spustiť ho. V takejto kombinácii som schopný manipulovať s tvojou stránkou ako sa mi zachce (napr. tam môže byť php na zmazanie indexu z rootu).
Natro
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 359
Registrovaný: 15 sep 2008, 20:45
Bydlisko: Košice

Príspevok od používateľa Natro »

tak ak vies tak mi hod nejaky bezpecny kodik pls
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

osobne by som to riešil takto nejak:

Kód: Vybrať všetko

<?
 if ($_POST["poslane"]==ok)
 {
   $m = str_replace("/","_",chop($POST["meno"]));
   if(!file_exists($m)){
     $sub = fopen($m.".txt","w");
     $fputs($sub,"Meno: ".htmlspecialchars($_POST["meno"])."\nVek: ".(int)$_POST["vek"]."\nE-Mail: ".htmlspecialchars($_POST["email"]));
     fclose($sub);
   } else echo "subor uz existuje";
 }
 //vytvorenie
  $main = "<form method=\"post\" action=\"".$_self."\">";
  $main.="<input type=text name=\"meno\" maxlength=55 size=10><br>";
  $main.="<input type=text name=\"vek\" maxlength=55 size=10><br>";
  $main.="<input type=text name=\"email\" maxlength=55 size=10>";
  $main.= "<input type=submit value=\"ok\" name=\"poslane\">";
  $main.= "</form>";
  // vytvorenie toho dormu, toto s uprav do grafiky troska
 echo $main;
 // vypis formu, toto strc kam treba na stranke
?> 
tiež je to iba z hlavy, ak je tam preklep tak sa ospravedlňujem
Natro
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 359
Registrovaný: 15 sep 2008, 20:45
Bydlisko: Košice

Príspevok od používateľa Natro »

ok velmy dakujem

//autoeditácia príspevku ( 20 May 2009, 21:35 )
Warning: fopen(.txt) [function.fopen]: failed to open stream: Permission denied in /home/free/tym.sk/e/.../root/www/skuska.php on line 6

Fatal error: Function name must be a string in /home/free/tym.sk/e/.../root/www/skuska.php on line 7

v php sa velmy nevyznam cize ak mozes tak pomoz :)

//autoeditácia príspevku ( 20 May 2009, 21:41 )
netreba tam napojit mysql?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

Kód: Vybrať všetko

<?
 if ($_POST["poslane"]==ok)
 {
   //$m = str_replace("/","_",trim($POST["meno"]));
   $m = str_replace("/","_",chop($_POST['meno']));
   if(!file_exists($m.".txt")){
     $sub = fopen($m.".txt","w");
     fputs($sub,"Meno: ".htmlspecialchars($_POST["meno"])."\nVek: ".(int)$_POST["vek"]."\nE-Mail: ".htmlspecialchars($_POST["email"]));
     fclose($sub);
   } else echo "subor uz existuje";
 }
 //vytvorenie
  $main = "<form method=\"post\" action=\"".$_self."\">";
  $main.="<input type=text name=\"meno\" maxlength=55 size=10><br>";
  $main.="<input type=text name=\"vek\" maxlength=55 size=10><br>";
  $main.="<input type=text name=\"email\" maxlength=55 size=10>";
  $main.= "<input type=submit value=\"ok\" name=\"poslane\">";
  $main.= "</form>";
  // vytvorenie toho dormu, toto s uprav do grafiky troska
 echo $main;
 // vypis formu, toto strc kam treba na stranke
?>
chmirko
Expert
Expert
Používateľov profilový obrázok
Príspevky: 182
Registrovaný: 05 sep 2008, 15:56
Kontaktovať používateľa:

Príspevok od používateľa chmirko »

som pisal najjednoduchsie co splni podmienku

na osetrovanie si myslim (ak nie ma oprav) v tom povodnom nahrad kazde

Kód: Vybrať všetko

$_POST["nieco"]
za

Kód: Vybrať všetko

htmlspecialchars($_POST["nieco"])
by to malo osetrit vsetky znaky rypakov

co sa toho htaccess tyka, neviem ako vseliak ho ponastavovat, princip je ze nie user sam by sa dostal kam by chcel, ale dany script by to ulozil kamkolvek, popr aj vykonal nieco a user/rypal by stale pristupoval len k tomu jednomu


ak ti hadze acces denied otvor si to kam ho nahravas v total commanderi a priecinok kam nahravas musi mat prava na zapis
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

chmirko: čítaš ty aj príspevky iných? Prečítaj si ešte raz čo som písal. htmlspecialchars ti neodstráni lomítka, z toho vyplýva že stále som schopný do mena zadať ../nieco a uloží mi to do iného adresára. Takto môžem teda ukladať aj do rootu. Ďalšia vec: to že som písal o php bol príklad. Fajn, odfajčíš mi úvodzovky, a zobáčiky, tak sa vykašlem na php a napíšem si tam denny from all a do mena dám ../.htaccess a máš po stránke (to že pridáva txt príponu nie je problém, lebo ty si myslíš že stačí htmlspecialchars takže využijem poison null byte /z toho dôvodu tam napríklad ja mám chop a nahrádzam lomítka podtržníkmi/ )
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Príspevok od používateľa Mmartin »

no mne to ide úplne ľahko :)

Kód: Vybrať všetko

$meno = $_POST['meno'];
if(!empty($meno)){
fopen("{$meno}.txt","a");
fclose("{$meno}.txt",a");
}
Aspoň myslím, ak ma znalosti neklamú :)
Natro
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 359
Registrovaný: 15 sep 2008, 20:45
Bydlisko: Košice

Príspevok od používateľa Natro »

teraz toto :( :
Warning: fopen(aa.txt) [function.fopen]: failed to open stream: Permission denied in /home/free/tym.sk/e/.../root/www/reg.php on line 7

Warning: fputs(): supplied argument is not a valid stream resource in /home/free/tym.sk/e/.../root/www/reg.php on line 8

Warning: fclose(): supplied argument is not a valid stream resource in /home/free/tym.sk/e/.../root/www/reg.php on line 9

nechapem preco to nejde
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Príspevok od používateľa Mmartin »

Kód: Vybrať všetko

$meno = $_POST['meno'];
if(!empty($meno)){
$fopen = fopen($meno.".txt","a");
fclose($fopen);
}
chmirko
Expert
Expert
Používateľov profilový obrázok
Príspevky: 182
Registrovaný: 05 sep 2008, 15:56
Kontaktovať používateľa:

Príspevok od používateľa chmirko »

Warning: fopen(aa.txt) ... - nepodarilo sa otvorit subor

preto aj tie ostatne chyby, ked raz nieje otvoreny tak do neho ani nezapise a ani ho potom nezavre

Kód: Vybrať všetko

 fopen(aa.txt)
ak to vyzera takto tak ta syntax nieje spravna, ale to je asi len pri prezentacii chyby, mas tam dufam... a nedufam nic, ak si nepouzil tie riadky co sme ti tu pisali posli riadok v ktorom najdes fopen ze ako vyzera

no a moze to byt s timi pravami, zatial neries a nastav prava priecinku kam tie subory zapisujes na 777 (tj povolene uplne vsetko uplne kazdemu) a obdobne .htaccess daneho priecinku a pozri ci to hodi tu istu chybu,
ak nie treba sa pohrat s nastaveniami prav a ak ano tak je to daco ine

po tomto "pokuse" samozrejme prava vrat nazad

script bezi pod inym UID ako ty ked sa prihlasujes cez FTP a tusim aj ina skupina, to neviem

teda ak ten priecinok nevytaras tiez scriptom ale ty (cez total commandera) tak je tvoj a script je dakto iny

cize mu asi budes musiet povolit zapis od vsetci (prve cislo)


no mozno toto pochopis a mozno nie je to asi dost zmetocne, ale audiotrack az tu toto odo mna najde ti to bud prepise zrozumitelnejsie alebo nieco ine co ti pomoze
Natro
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 359
Registrovaný: 15 sep 2008, 20:45
Bydlisko: Košice

Príspevok od používateľa Natro »

ide :), dakujem vsetkym za snahu pomoct mi

//autoeditácia príspevku ( 21 May 2009, 19:41 )
+ mi este do tohoto kodu dajte aby mi subor zapisoval txt do zlozky users/ pls a ked zapise subor tak napise súbor bol úspešne zapísaný.
Dakujem :)

Kód: Vybrať všetko

<?
 if ($_POST["poslane"]==ok)
 {
   //$m = str_replace("/","_",trim($POST["meno"]));
   $m = str_replace("/","_",chop($_POST['meno']));
   if(!file_exists($m.".txt")){
     $sub = fopen($m.".txt","w");
     fputs($sub,"Meno: ".htmlspecialchars($_POST["meno"])."\nVek: ".(int)$_POST["vek"]."\nE-Mail: ".htmlspecialchars($_POST["email"]));
     fclose($sub);
   } else echo "subor uz existuje";
 }
 //vytvorenie
  $main = "<form method=\"post\" action=\"".$_self."\">";
  $main.="<input type=text name=\"meno\" maxlength=55 size=10><br>";
  $main.="<input type=text name=\"vek\" maxlength=55 size=10><br>";
  $main.="<input type=text name=\"email\" maxlength=55 size=10>";
  $main.= "<input type=submit value=\"ok\" name=\"poslane\">";
  $main.= "</form>";
  // vytvorenie toho dormu, toto s uprav do grafiky troska
 echo $main;
 // vypis formu, toto strc kam treba na stranke
?>
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

Kód: Vybrať všetko

<?
 if ($_POST["poslane"]==ok)
 {
   $m = str_replace("/","_",chop($_POST['meno']));
   if(!file_exists($m.".txt")){
     $sub = fopen("./users/".$m.".txt","w");
     fputs($sub,"Meno: ".htmlspecialchars($_POST["meno"])."\nVek: ".(int)$_POST["vek"]."\nE-Mail: ".htmlspecialchars($_POST["email"]));
     fclose($sub);
     echo "subor bol vytvoreny";
   } else echo "subor uz existuje";
 }
 //vytvorenie
  $main = "<form method=\"post\" action=\"".$_self."\">";
  $main.="<input type=text name=\"meno\" maxlength=55 size=10><br>";
  $main.="<input type=text name=\"vek\" maxlength=55 size=10><br>";
  $main.="<input type=text name=\"email\" maxlength=55 size=10>";
  $main.= "<input type=submit value=\"ok\" name=\"poslane\">";
  $main.= "</form>";
  // vytvorenie toho dormu, toto s uprav do grafiky troska
 echo $main;
 // vypis formu, toto strc kam treba na stranke
?>
Napísať odpoveď