Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> textarea limit - problem
tasiej
post 24.08.2010, 20:33:00
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 24.08.2010

Ostrzeżenie: (0%)
-----


Witam, mam problem z limitem w textarea tzn mogę ustawić z admina limit ale bez problemu da się go ominąć np. wklejają tekst z dużo większą ilością znaków (przy normalnym pisaniu blokuje się, natomiast przy wklejaniu nie) o to kod:

<!-- Start Template {contentPath}/{contentTpl} -->
<!-- #BeginEditable "Body" -->

<form name="form1" method="post" action="">
<br />
<table width="{contentWidth}" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td class="boxTitle">
<table width="100%" border="0" cellpadding="5" cellspacing="0">
<tr>
<td class="row1" style="padding-top:10px; padding-left:10px"><strong>{T_TO}:</strong></td>
<td class="row1" style="padding-top:10px"><?=$tpl['sendto']?></td>
</tr>
<tr>
<td class="row1" style="padding-left:10px"><strong>{T_SUBJECT}:</strong></td>
<td class="row1"><div class="font_error"><?=$tpl['a_errInput']['subject']?></div>
<input name="subject" value="<?=$tpl['fo']['subject']?>" class="tf" style="width: 450px; font-size:13px"> </td>
</tr>
<tr>
<td valign="top" class="row1" style="padding-left:10px"><strong>{T_MSG_BODY}:</strong></td>
<td class="row1"><div class="font_error"><?=$tpl['a_errInput']['mesg']?></div>
<?php $chars = ($tpl['mesgMaxChar']) ? $tpl['mesgMaxChar'] : 500; ?>
<textarea name="mesg" id="mesg" rows="13" class="ta" style="width: 450px; font-size:13px"
onkeydown="checkFieldLength('mesg', 'charcount', 'remaining', <?=$chars?>);"><?=$tpl['fo']['mesg']?>


</textarea>



<div class="text_normal" style="margin:2px;">
<span id="charcount" style="padding:1px">0</span> {T_CHARACTERS_ENTERED} |
<span id="remaining" style="padding:1px"><?=$chars?></span> {T_CHARACTERS_REMAINING}</div> </td>
</tr>
<tr>
<td colspan="2" align="center" class="row1" style="padding-bottom:10px">
<input type="hidden" name="task">
<input type="hidden" name="id" value="<?=$tpl['sendtoID']?>">
<input name="button" type="button" value="{T_SEND}" class="button" onClick="check_form('add')"
style="width:75px; background-image: url('<?=$tpl['tplPath']?>/images/button-normal.gif')">&nbsp; </td>
</tr>
</table>
</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table>
</form>

<!-- #EndEditable -->
<!-- End Template {contentPath}/{contentTpl} -->
  1. [/html][html]
  1. [/html]<!--Geshi:226224:php--><pre class="php-brief" style="font-family:monospace;"><div class="head">[PHP] <a href='./Pobierz-Plik-226224.html' target='_blank'>pobierz</a>, <a href='Plaintext-226224.html' target='_blank'>plaintext</a> </div><ol><li class="li1"><div class="de1"><span class="br0">[</span><span class="sy0">/</span>php<span class="br0">]</span><span class="br0">[</span>php<span class="br0">]</span></div></li></ol><div class="foot">[PHP] <a href='./Pobierz-Plik-226224.html' target='_blank'>pobierz</a>, <a href='Plaintext-226224.html' target='_blank'>plaintext</a> </div></pre><!--/Geshi:226224:php-->[html]
[xml][/xml][php][/php]






Co należy zmienić aby na stałe już zrobić limit bez konieczności sterowania nim z panelu admina?

Dziękuję za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
Asmox
post 24.08.2010, 22:14:49
Post #2





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

Ostrzeżenie: (0%)
-----


Spróbuj tak, póki nikt inny nie napisze, nie jestem ekspertem w JS, ale wydaje mi się że styknie
przy Textarea dajesz atrybut onChange="controlMe()"
Kod
limit = 150; // limit znaków
textAreaValue = self.value; // Obiekt który wykonuje funkcję, sam się wstawia
if(textAreaValue.length > limit) {
textAreaValue.substring(0, limit);
}
self.value = textAreaValue

Ten przykład pewnie łatwiej zrozumieć, ale jak wszystko będzie działało to nawet nie trzeba robić tego textAreaValue tylko od razu self.value


--------------------
Go to the top of the page
+Quote Post
tasiej
post 24.08.2010, 23:21:06
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 24.08.2010

Ostrzeżenie: (0%)
-----


Niestety nic nie pomogło, być może coś źle zrobiłem? nic nie usuwałem po prostu dodałem ten kod i niestety żadnych rezultatów. Kod dodałem w sekcji textarea.
Go to the top of the page
+Quote Post
marcint83
post 25.08.2010, 07:21:03
Post #4





Grupa: Zarejestrowani
Postów: 23
Pomógł: 4
Dołączył: 24.08.2010

Ostrzeżenie: (0%)
-----


Spróbuj zamiast onkeydown dać onkeyup a jeśli to nie pomoze to jeszcze przed wyslaniem formularza w zdarzeniu przycisku submit daj wycinanie znakow.
Go to the top of the page
+Quote Post
piotr94
post 25.08.2010, 12:21:55
Post #5





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


a nie można sprawdzać po stronie php?
daj tą samą funkcję do zdarzeń:
onfocus i onblur (wtedy przy wejściu do pola i przy jego opuszczeniu zostanie sprawdzona jego wartość
lub daj w js sprawdzanie cykliczne np. co 0.5 s lub przy ruszeniu myszką o jakąś odległość


--------------------
http://www.piotr94.net21.pl/ - wykonanie stron i serwisów internetowych
Jeśli moje wypowiedzi były dla Ciebie pomocne, kliknij "Pomógł" i odwdzięcz się ;)
Go to the top of the page
+Quote Post
tasiej
post 25.08.2010, 20:53:35
Post #6





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 24.08.2010

Ostrzeżenie: (0%)
-----


Czyli jak powinien wyglądać konkretnie kod? jestem trochę zielony w takich sprawach. Co powinno znajdować się w sekcji textarea? a może problem tkwi w innym miejscu?

Dziękuje za odpowiedzi
Go to the top of the page
+Quote Post
krispak
post 25.08.2010, 20:59:53
Post #7





Grupa: Zarejestrowani
Postów: 250
Pomógł: 55
Dołączył: 27.08.2008

Ostrzeżenie: (0%)
-----


Radzilbym sprawdzac to po stronie php.
Jezeli liczba znakow przekroczona wyrzucac z powrotem do formularza z informacja o przekroczony limicie znakow.
Wystarczy ze wylacze js w przegladarce i twoj skrypt juz nie zadziala wiec wkleje sobie ile chce.
Pozdrawiam

Ten post edytował krispak 25.08.2010, 21:00:44


--------------------
* * * * * * * * * * * * * * * * * * * * * * * * *
PHP, Laravel, Docker, Docker Compose, Laradock, Redis, JS, React, Vue, CSS, SCSS, Gulp, GIT ... itd..
Go to the top of the page
+Quote Post
piotr94
post 25.08.2010, 21:36:51
Post #8





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


cóż, ja stosuję czasem kontrolę js tylko jako sprawdzenie wstępne, i tak wszystko musisz sprawdzać w php, bo inaczej będziesz mieć śmieci w bazie...


--------------------
http://www.piotr94.net21.pl/ - wykonanie stron i serwisów internetowych
Jeśli moje wypowiedzi były dla Ciebie pomocne, kliknij "Pomógł" i odwdzięcz się ;)
Go to the top of the page
+Quote Post
tasiej
post 26.08.2010, 10:51:15
Post #9





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 24.08.2010

Ostrzeżenie: (0%)
-----


Panowie może trochę jaśniej? jakie zmiany są potrzebne w tym kodzie?
Go to the top of the page
+Quote Post
marcint83
post 26.08.2010, 14:43:09
Post #10





Grupa: Zarejestrowani
Postów: 23
Pomógł: 4
Dołączył: 24.08.2010

Ostrzeżenie: (0%)
-----


A próbowałeś tak:
  1. <textarea name="mesg" id="mesg" rows="13" class="ta" style="width: 450px; font-size:13px"
  2. onblur="checkFieldLength('mesg', 'charcount', 'remaining', <?=$chars?>);" onkeyup="checkFieldLength('mesg', 'charcount', 'remaining', <?=$chars?>);"><?=$tpl['fo']['mesg']?>
  3.  
  4.  

questionmark.gif?

Tak jak mówią koledzy, zrób też dodatkowe ograniczenie w PHP.
Go to the top of the page
+Quote Post
tasiej
post 26.08.2010, 19:06:13
Post #11





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 24.08.2010

Ostrzeżenie: (0%)
-----


Witam ponownie szanownych forumowiczów:)

Powiem krótko: udało się, dodałem onBlour ale dodatkowo dodałem również zdarzenia: onMouseMove , onSubmit ( o czym już kolega wcześniej wspominał).


Dziękuje za pomoc

Ten post edytował tasiej 26.08.2010, 20:32:09
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 02:25