download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

въпрос за PHP проста система за коментар

< 1 2 3 >

Автор
Съобщение
nik2009
Нед, 26.09.10, 17:08
Здравейте искам да питам, спешно ми е, пререботвам малка система за коментар с текстов файл за база данни. Проблема ми е, че незнам с какъв код да огранича символите на един ред, та да се пренасят когато се отворят в браузъра. Във textarea-та се пренасят когато я попълвам, но като изпратя вече текста за четене ми излиза отдолу плъзгач и текста е само на един много дълъг ред. Как, с какъв код или функция да го пренеса на няколко реда? Благодаря.
insecteater
Нед, 26.09.10, 17:18
Къде ти се показва непренесен текста след това? В браузъра като чист html ли?

Можеш да слoжиш едно
str_replace("\n", "<br />\n", $text)

или
preg_replace("/\r?\n/", "<br />\r\n", $text)

преди да покажеш текста като чист html в браузъра (не в textarea-та).

редактиран от insecteater на 26.09.10 17:19
nik2009
Нед, 26.09.10, 17:30

RE: въпрос за PHP проста система за коментар

” Къде ти се показва непренесен текста след това? В браузъра като чист html ли?

Можеш да слoжиш едно
str_replace("n", "<br />n", $text)

или
preg_replace("/r?n/", "<br />rn", $text)

преди да покажеш текста като чист html в браузъра (не в textarea-та). „

Да, след като вече пратя заявката и текста се покаже в браузъра, там вече има долу плъзгач и текста е на един ред и трябва да плъзгам за да го прочета. Сложил съм <iframe>. Ето как точно съм го сложил:
<iframe src="komentar-pregled.php" scrolling="yes" frameborder="0" height="400px"
width="100%"></iframe>
Във файла "komentar-pregled.php" имам ето този код:
<?php
$filename="komentari-dopitvane.inc";
$content=fopen("$filename","r");
$string = fread($content,filesize($filename));
fclose($content);
echo "<div style='text-allign:center; color:; background:; width:100%;'>$string:\n</div>";
?>
Сега ще опитам да сложа вашия код.
nik2009
Нед, 26.09.10, 17:45

RE: RE: въпрос за PHP проста система за коментар

Обаче не се сещам къде да го вмъкна този код? Във файла ""komentar-pregled.php' ли?
или в index-a, където е този код -
<?php
date_default_timezone_set('Europe/Sofia');
if( isset($_POST['submit'])) {
   if( $_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'] ) ) {
// Insert you code for processing the form here, e.g emailing the submission, entering it into a database.
$newr = fopen("komentari-dopitvane.inc","a");
fwrite($newr,$_REQUEST["message"]."\n<br>".date("Y.m.d h:i")."\nОт IP: "."$_SERVER[REMOTE_ADDR]\n<hr>");

echo 'Благодарим Ви. Your message said "'.$_POST['message'].'" <a href="index.php?action=entry">Ново мнение</a>';
unset($_SESSION['security_code']);
   } else {
// Insert your code for showing an error message here
echo 'Sorry, you have provided an invalid security code. <a href="index.php?action=entry">Обратно</a>';
   }
} else {
?>
редактиран от nik2009 на 26.09.10 17:49
insecteater
Нед, 26.09.10, 17:48
Това, което съм посочил, слага знака за нов ред така, че да може да се показва правилно в html-а. Не пренася текст, а слага новия ред сложен от потребителя със знака enter наистина да се визуализира, като нов ред. Технически пренасянето означава нещо съвсем друго. В случая би трябвало текста автоматично да минава на нов ред, след като стигне края на текущия - т. нар. wrap. Дай screenshot или кода, за да се изясни кое как е и какво имаш предвид под пренасяне. Хоризонталния скрол не би трябвало да се появява, ако пълниш iframe-а само и единствено с текст, в който най-малкото има интервали между думите.

Редакция:
$string = preg_replace("/\r?\n/", "<br />\r\n", $string)
echo "<div style='text-allign:center; color:; background:; width:100%;'>$string</div>";

редактиран от insecteater на 26.09.10 17:50
nik2009
Нед, 26.09.10, 17:54

RE: въпрос за PHP проста система за коментар

” Това, което съм посочил, слага знака за нов ред така, че да може да се показва правилно в html-а. Не пренася текст, а слага новия ред сложен от потребителя със знака enter наистина да се визуализира, като нов ред. Технически пренасянето означава нещо съвсем друго. В случая би трябвало текста автоматично да минава на нов ред, след като стигне края на текущия - т. нар. wrap. Дай screenshot или кода, за да се изясни кое как е и какво имаш предвид под пренасяне. Хоризонталния скрол не би трябвало да се появява, ако пълниш iframe-а само и единствено с текст, в който най-малкото има интервали между думите. „

Значи не това ми трябва, когато слагам ентер в текстареата, после в HTML-a си се показва точно, както съм го сложил/ентера/.
Въпроса е, че ако не сложа никъде ентер, просто си пиша цяло изречение дълго, в HTML-a също се показва дълго на един ред и затова е грозно с плъзгача отдолу. Важно е да направя да не се показва плъзгача долу, но да се разделя на редове.

редактиран от nik2009 на 26.09.10 17:55
nik2009
Нед, 26.09.10, 18:02

RE: RE: въпрос за PHP проста система за коментар

Надявам се, че ще стане още малко, но ми дава следната снтактична грешка, сега се чудя какво точно не е наред-

Parse error: syntax error, unexpected T_ECHO in C:\xampp\htdocs\saitbelovo\komentar-pregled.php on line 7
Става дума за ето този ред -
echo "<div style='text-allign:center; color:; background:; width:100%;'>$string</div>";

редактиран от nik2009 на 26.09.10 18:03
редактиран от nik2009 на 26.09.10 18:04
insecteater
Нед, 26.09.10, 18:09
Не мога да пресъздам твето условие. Текста автоматично си се wrap-ва. Хоризонталния скрол бар седи, но е без плъзгач. Ако имаш възможност, запиши резултантния html (File -> Save page as) и го сложи тук да г видим. Да не би да имаш нещо, което е по-широко от фрейма? Текста по принцип си отива на нов ред автоматично.

Функция за цепене на текста лесно се измисля, но е излишно услжняване. По-добре е да се отстрани причината за това , че автоматичния wrap не сработва.

Ето файловете, с които пробвам:
proba.html
proba1.html

Редакция: относно грешката - точка и запетая в края на горния ред?

редактиран от insecteater на 26.09.10 18:11
nik2009
Нед, 26.09.10, 19:48

RE: въпрос за PHP проста система за коментар

Ще пробвам след малко дано да стане.
Качвам файла index.php в него е php кода за обработване на формата и самата форма.index.php
phrozencrew
Нед, 26.09.10, 19:59
По добре архивирай файла и го пусни пак.
редактиран от phrozencrew на 26.09.10 20:08

< 1 2 3 >

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.