въпрос за PHP проста система за коментар
Автор |
|
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-та). | | 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>"; |
| | 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 Редакция: относно грешката - точка и запетая в края на горния ред? | | nik2009Нед, 26.09.10, 19:48 | RE: въпрос за PHP проста система за коментар
Ще пробвам след малко дано да стане. Качвам файла index.php в него е php кода за обработване на формата и самата форма. index.php | | phrozencrewНед, 26.09.10, 19:59 |
По добре архивирай файла и го пусни пак. | | Коментар |