Za každým odoslaním obsahu, zalomiť riadok

Programovacie jazyky, rady, poradňa...
.:M4jco:.
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 442
Registrovaný: 01 máj 2007, 13:07
Bydlisko: Bassline lover
Kontaktovať používateľa:

Za každým odoslaním obsahu, zalomiť riadok

Príspevok od používateľa .:M4jco:. »

Zdravim

Včera som sa prekonal a pustil som sa opäť do phpčka a vytvoril som si jednoduchý systém na zverejňovanie správ. Je to uplne primitívne atd, ale o to teraz nejde. Ide o to, že ked odošlem obsah z textového pola, tak sa síce zobrazí ale riadok sa nezalomí, neustále pokračuje text dalej a dalej. Tak som sa rozhodol pridať do kodu <br> a aj "\n", ale nefunguje to. Skúšal som to rôznymi spôsobmi ale bud to vyhodilo error alebo kod proste nefungoval.
Ďakujem za pomoc, a tu je moj kod

index.php

Kód: Vybrať všetko

<h1>Blablabla</h2>
<?
include ("file.txt");
?> 
<form action="uloz.php" method="post">
<textarea name="obsah" cols=50 rows=10></textarea>
<br />
<input type="submit" value="Posli">
</form>
uloz.php

Kód: Vybrať všetko

<?php
$obsah = $_POST['obsah'];
$file = "file.txt";
$Saved_File = fopen($file, 'a');
fwrite($Saved_File, $obsah);
fclose($Saved_File);
?>
<script type="text/javascript">
<!--
window.location = "index.php"
//-->
</script>
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 »

musíš nl ktoré sa používaju v textarea prekonvertovať na br ktoré sú v html (keďže to vypisuješ z toho txt súboru do html). Je na to funkcia nl2br(), takže zápis bude takto: fwrite($Saved_File, nl2br($obsah));

ale používať na takéto veci textový súbor, navyše bez akejkoľvek kontroly vstupu nie je zrovna dobré riešenie, lebo mi nič nebráni hodiť tam časť php napríklad na zmazanie celej stránky.
.:M4jco:.
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 442
Registrovaný: 01 máj 2007, 13:07
Bydlisko: Bassline lover
Kontaktovať používateľa:

Príspevok od používateľa .:M4jco:. »

Skusil som tvoje riešenie a fungovalo to...ale tie zalomenia riadkov fungovali len v textarea. Ked som ten text odoslal tak sa to zalomenie neprejavilo.

edit/ už to funguje...chyba bola na mojej strane, díky :wink:

//autoeditácia príspevku ( 11 Oct 2008, 16:13 )
Nechcem zakladať nový topic tak píšem ešte sem. Mám ešte jeden problém s políčkami. Chcem si okrem textboxu pridať aj pole kde sa bude zadávať nick, aj mám niečo vytvorené avšak pokial tam niečo zadám tak to vyhodí error.

Tento kod som použil na tie formulare

Kód: Vybrať všetko

<form action="uloz.php" method="post">
<input type="text" name="nick" /><br />  
<textarea name="obsah" cols=50 rows=10>
</textarea><br>
<input type="submit" value="Posli">
</form>
a php funkciu som spravil takto

Kód: Vybrať všetko

<?php
$obsah = $_POST['obsah'];
$nick = $_POST['nick'];
$file = "file.txt";
$Saved_File = fopen($file, 'a');
fwrite($Saved_File, nl2br($obsah))/n; 
fclose($Saved_File);
?>
Vychádzal som z principu že si musím vytvoriť premennú $nick ktorý bude brať hodnotu z inputu ktorý ma id "nick" a potom by som mal do fwrite($Saved_File, nl2br($obsah))/n; zalčeniť tu premennú nick, ale nefunguje to nejako. Sedel som pri tom asi tri hodiny a hladal na nete aj, ale nič z toho.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

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

Záleží od toho, ako presne to chceš mať uložené. Môžeš napr vyskúšať:

Kód: Vybrať všetko

fwrite($Saved_File, $nick."\n".nl2br($obsah));
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 »

fwrite($Saved_File, nl2br($nick."<br />".$obsah));
.:M4jco:.
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 442
Registrovaný: 01 máj 2007, 13:07
Bydlisko: Bassline lover
Kontaktovať používateľa:

Príspevok od používateľa .:M4jco:. »

Díky moc ludia, všetko ide. Ďakujem vám..teraz sa možem pustiť do ďalších úprav zasa :wink:
Napísať odpoveď