login  Naam:   Wachtwoord: 
Registreer je!
 Forum

maxlength in textarea

Offline Ultimatum - 09/10/2005 21:21
Avatar van UltimatumPHP expert voordat iedereen begint te zeure, heb al gezocht!

zoek dus een script dat het aantal letters in een textarea telt en zodra je er overheen bent gegaan je een error krijgt, de error mot egter pas komen als je op submit hebt gedrukt, dus geen js maar php

als het kan moet hij de spaties niet mee rekenen

bvd

21 antwoorden

Gesponsorde links
Offline haytjes - 09/10/2005 21:28 (laatste wijziging 09/10/2005 21:29)
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
  1. <?
  2. if(strlen($_POST['name']) > 50)
  3. die("Error: het veld 'name' is groter dan 50 tekens");
  4. ?>
Offline nemesiskoen - 09/10/2005 22:13
Avatar van nemesiskoen Gouden medaille

PHP expert
zonder de spaties:
  1. <?php
  2. function strlenZonderTeken($string,$teken) {
  3. $aantal = 0;
  4. for($i=0;$i<strlen($teken);$i++) {
  5. if($string{$i} != $teken) {
  6. $aantal++;
  7. }
  8. }
  9. return $aantal;
  10. }
  11. if(strlenZonderTeken($_POST['bericht']," ") > 50) {
  12. echo "... lalala... niet over de 50 tekens... blaat";
  13. }
  14. ?>
Offline Dolfje - 09/10/2005 22:17 (laatste wijziging 09/10/2005 22:17)
Avatar van Dolfje Gouden medailleGouden medailleGouden medaille

PHP ver gevorderde
  1. <?
  2. if( strlen(str_replace(" ", "", $tekst)) < 50 )
  3. {
  4. //doorgaan
  5. }
  6. else
  7. {
  8. //fout weergeven
  9. }
  10. ?>


Dit is ietsje sneller dan nemisiskoen zijn oplossing.
Offline Ultimatum - 09/10/2005 22:48
Avatar van Ultimatum PHP expert en als ik het zo doe dan, kan dat ook..
  1. <?
  2. if( strlen(str_replace(" ", "", $tekst)) > 50 )
  3. {
  4. //fout weergeven
  5. }
  6. else
  7. {
  8. //doorgaan
  9. }
  10. ?>


> ipv < en dus fout en doorgaan omgedraaid (anders snap ik het niet met foutmeldingen neerzette etc in me script )
Offline Dolfje - 09/10/2005 22:56
Avatar van Dolfje Gouden medailleGouden medailleGouden medaille

PHP ver gevorderde
ja, je mag dat omdraaien
Offline Ultimatum - 09/10/2005 23:00 (laatste wijziging 09/10/2005 23:00)
Avatar van Ultimatum PHP expert mss komt het hierdoor iig nadat ik dit stukje code (voor max 150 tekens ) heb toegevoegd krijg ik deze error
Citaat:
Parse error: parse error, unexpected '{', expecting '(' in /usr/export/www/vhosts/funnetwork/hosting/ultimatum/shoutbox/shoutbox_send.php on line 23


in regel 17-27 staat dit:
  1. <? if(empty($naam)){
  2. echo "je kan naam niet leeglaten";
  3. }elseif(empty($bericht)){
  4. echo "je moet een bericht invullen";
  5. }elseif( strlen(str_replace(" ", "", $tekst)) > 150 ){
  6. echo "Het bericht mag maar 150 tekens bevatten!";
  7. }elseif{
  8. $verstuur = mysql_query("INSERT INTO `shoutbox`(`naam`,`email`,`bericht`,`datum`) VALUES('$naam','$email','$bericht','$datum')") or die(mysql_error());
  9. echo "Bedankt voor je bericht! Bezig met doorsturen...
  10. <meta http-equiv=\"refresh\" content=\"2;shoutbox_show.php\">";
  11. }else{ ?>


PS: <? & ?> ff voor kleurtjes neergezet 
wat is er fout??
Offline nemesiskoen - 09/10/2005 23:02
Avatar van nemesiskoen Gouden medaille

PHP expert
laatste elseif veranderen in else
Offline Ultimatum - 10/10/2005 07:15 (laatste wijziging 10/10/2005 07:39)
Avatar van Ultimatum PHP expert heb ut nu gefixt alleen krijg gelijk de error van Je mag je naam niet leeglaten, en dat mot niet , hij mot het formulier laten zien als je er voor het eerst komt etc.. 

iemand idee van mijn fout

  1. <?php
  2. require("config.php");
  3.  
  4. $name = $_POST["naam"];
  5. $email = $_POST["email"];
  6. $message = $_POST["bericht"];
  7. $date = $_POST["datum"];
  8.  
  9. if(!$email) {
  10. $email = "#";
  11. }
  12.  
  13. $naam = strip_tags($naam);
  14. $bericht = strip_tags($bericht);
  15. $email = strip_tags($email);
  16.  
  17. if(empty($naam)){
  18. echo "je kan naam niet leeglaten";
  19. }elseif(empty($bericht)){
  20. echo "je moet een bericht invullen";
  21. }elseif( strlen(str_replace(" ", "", $bericht)) > 150 ){
  22. echo "Het bericht mag maar 150 tekens bevatten!";
  23. }elseif(
  24. $verstuur = mysql_query("INSERT INTO `shoutbox`(`naam`,`email`,`bericht`,`datum`) VALUES('$naam','$email','$bericht','$datum')") or die(mysql_error())) {
  25. echo "Bedankt voor je bericht! Bezig met doorsturen...
  26. <meta http-equiv=\"refresh\" content=\"2;shoutbox_show.php\">";
  27. }else{
  28.  
  29. ?>
  30.  
  31. <table width="349" border="0" cellspacing="0" cellpadding="0">
  32. <form action="shoutbox_send.php" method="post">
  33. <tr>
  34. <td width="79" height="30">Naam</td>
  35. <td width="270"><input type="text" name="naam" size="20" maxlength="50"></tdh>
  36. </tr>
  37. <tr>
  38. <td height="30">Email</td>
  39. <td><input type="text" name="email" size="20" maxlength="125"></td>
  40. </tr>
  41. <tr>
  42. <td valign="top">Bericht</td>
  43. <td><textarea cols="40" rows="5" name="bericht"></textarea></td>
  44. </tr>
  45. <tr>
  46. <td></td>
  47. <td>
  48. <input type="submit" value="Verstuur">
  49. <input type="hidden" name="datum" value="<? echo "$datum"; ?>">
  50. <input type="hidden" name="ga" value="1">
  51. <input type="reset" value="Reset">
  52. </form>
  53. </td>
  54. </tr>
  55. </table>
  56. <?php
  57. }
  58. ?>
Offline smoos - 10/10/2005 08:49
Avatar van smoos PHP gevorderde waarom doe je voor die php code niet gewoon:
  1. <?php
  2. if(isset($_POST['verstuur']))
  3. {
  4. // hier die shit voor als het gepost is
  5. }
  6. else
  7. {
  8. // hier je formulier
  9. }
  10. ?>
Offline Ultimatum - 10/10/2005 10:05
Avatar van Ultimatum PHP expert ik doe dit zo omdat ik ook een foutmelding wil krijge als er een fout is, dus hoe kan ik deze zooi code goed krijge...
Offline thyssimonis - 10/10/2005 10:08
Avatar van thyssimonis PHP interesse Als je op submit heb geklikt of er voor?
Offline Ultimatum - 10/10/2005 10:12
Avatar van Ultimatum PHP expert na submit, dus als je bijvoorbeeld je naam of bericht bent vergete het boven het formulier komt te staan als error, dus je bent je naam vergeten! oid wat ik in me code heb neer gezet...
Offline smoos - 10/10/2005 10:42 (laatste wijziging 10/10/2005 13:34)
Avatar van smoos PHP gevorderde dit moet werken dunkt mij heb het niet getest:
  1. <?php
  2. require("config.php");
  3. $form = 1;
  4.  
  5. if(isset($_POST['submit']))
  6. {
  7. $name = $_POST["naam"];
  8. $email = $_POST["email"];
  9. $message = $_POST["bericht"];
  10. $date = $_POST["datum"];
  11.  
  12. if(!$email)
  13. {
  14. $email = "#";
  15. }
  16.  
  17. $naam = strip_tags($naam);
  18. $bericht = strip_tags($bericht);
  19. $email = strip_tags($email);
  20.  
  21. if(empty($naam))
  22. {
  23. echo "je kan naam niet leeglaten";
  24. }
  25. elseif(empty($bericht))
  26. {
  27. echo "je moet een bericht invullen";
  28. }
  29. elseif( strlen(str_replace(" ", "", $bericht)) > 150 )
  30. {
  31. echo "Het bericht mag maar 150 tekens bevatten!";
  32. }
  33. else
  34. {
  35. mysql_query("INSERT INTO shoutbox (naam, email, bericht, datum) VALUES('".$naam."', '".$email."', '".$bericht."', '".$datum."')") or die(mysql_error());
  36. echo "Bedankt voor je bericht! Bezig met doorsturen... <meta http-equiv=\"refresh\" content=\"2;shoutbox_show.php\">";
  37. $form = 0;
  38. }
  39. }
  40. if($form)
  41. {
  42. ?>
  43.  
  44. <table width="349" border="0" cellspacing="0" cellpadding="0">
  45. <form action="" method="post">
  46. <tr>
  47. <td width="79" height="30">Naam</td>
  48. <td width="270"><input type="text" name="naam" size="20" maxlength="50"></tdh>
  49. </tr>
  50. <tr>
  51. <td height="30">Email</td>
  52. <td><input type="text" name="email" size="20" maxlength="125"></td>
  53. </tr>
  54. <tr>
  55. <td valign="top">Bericht</td>
  56. <td><textarea cols="40" rows="5" name="bericht"></textarea></td>
  57. </tr>
  58. <tr>
  59. <td></td>
  60. <td>
  61. <input type="submit" name="submit" value="Verstuur">
  62. <input type="hidden" name="datum" value="<?php echo $datum; ?>">
  63. <input type="hidden" name="ga" value="1">
  64. <input type="reset" value="Reset">
  65. </form>
  66. </td>
  67. </tr>
  68. </table>
  69.  
  70. <?php
  71. }
  72. ?>

als je een fout hebt dan zie je het formulier onder de fout, en als het goed gaat dan zie je het formulier niet (hoop ik )
alstu
Offline Ultimatum - 10/10/2005 12:19
Avatar van Ultimatum PHP expert ok hij doet het alleen een laatse vraag , de code heirbove is opgeslagen asl shoutbox_form en die word geinclude in shoutbox_show, maar nu zie je nu w8 u word doorgestuurd..., maar je mot gwoon ff w8e en dan staat je reactie er opeens, hoe kan ik dit verandere 

voorbeeld::
http://ultimatu...x_show.php
Offline smoos - 10/10/2005 12:39 (laatste wijziging 10/10/2005 12:40)
Avatar van smoos PHP gevorderde dn moet je die 2 veranderen in een 0 dan gaat het direct

  1. echo "Bedankt voor je bericht! Bezig met doorsturen...
  2. <meta http-equiv=\"refresh\" content=\"2;shoutbox_show.php\">";

word:
  1. echo "Bedankt voor je bericht! Bezig met doorsturen...
  2. <meta http-equiv=\"refresh\" content=\"0;shoutbox_show.php\">";


nu word je zowat direct doorgestuurd of bedoel je dit niet?
Offline Martijn1989 - 10/10/2005 13:47 (laatste wijziging 10/10/2005 13:48)
Avatar van Martijn1989 PHP ver gevorderde Dit stukje, script ruleert de pan uit.

Je moet daarna wel ff checken, of je zoveel tekens hebt gebruikt, want mensen kunnen hun javascript ook uitzetten.

De is goed voor 145 Tekens.

  1. <SCRIPT LANGUAGE="JavaScript">
  2. <!-- Begin
  3. function textCounter(field, countfield, maxlimit) {
  4. if (field.value.length > maxlimit) // if too long...trim it!
  5. field.value = field.value.substring(0, maxlimit);
  6. // otherwise, update 'characters left' counter
  7. else
  8. countfield.value = maxlimit - field.value.length;
  9. }
  10. // End -->
  11. </script>


  1. <table>
  2. <tr>
  3. <td valign="top" width="100">Bericht:</td>
  4. <td><textarea name=message wrap=physical cols=50 rows=4 onKeyDown="textCounter(this.form.message,this.form.remLen,145);" onKeyUp="textCounter(this.form.message,this.form.remLen,145);"></textarea></td>
  5. </tr>
  6. <tr>
  7. <td>Tekens over :</td>
  8. <td><input readonly type=text name=remLen size=3 maxlength=3 value="145"></td>
  9. </tr>
  10. </table>
Offline Ultimatum - 10/10/2005 16:11 (laatste wijziging 10/10/2005 16:59)
Avatar van Ultimatum PHP expert @ martijn1515 thanx, maar niet helemaal wat ik zoek ;)
@ smoos, nee ik wil wel dat het 2 seconde duurt, maar dat je ok de tekst ziet, ogenblik geduld u word doorgestuurd
Offline smoos - 10/10/2005 17:41
Avatar van smoos PHP gevorderde dan zet je dat daar tog neer :S
Offline Dolfje - 10/10/2005 18:24 (laatste wijziging 10/10/2005 18:31)
Avatar van Dolfje Gouden medailleGouden medailleGouden medaille

PHP ver gevorderde
met PHP kan je flush gebruiken.
- hiermee kan je stuk voor stuk uitprinten.
echo "sjfqkflm";
flush();
echo "sqjfklm";

en anders kan je ook eens beginnen met AJAX.
- http://en.wikipedia.org/wiki/Ajax

(dat zijn dingen dat je kunt opzoeken)
Offline smoos - 10/10/2005 18:28
Avatar van smoos PHP gevorderde jah je kan het ook meteen samenvatten wat het ongeveer inhoud dan kan hij het opzoeken hoe het werkt.
Offline Dolfje - 10/10/2005 18:31
Avatar van Dolfje Gouden medailleGouden medailleGouden medaille

PHP ver gevorderde
Je kan dat vlug weten, door te zoeken op php.net (voor flush()) en wikipedia voor AJAX
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.304s