maxlength in textarea
Ultimatum - 09/10/2005 21:21
PHP 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
haytjes - 09/10/2005 21:28 (laatste wijziging 09/10/2005 21:29)
JS gevorderde
<?
if(strlen($_POST['name']) > 50)
die("Error: het veld 'name' is groter dan 50 tekens");
?>
<?
if ( strlen ( $_POST [ 'name' ] ) > 50 ) die ( "Error: het veld 'name' is groter dan 50 tekens" ) ; ?>
nemesiskoen - 09/10/2005 22:13
PHP expert
zonder de spaties:
<?php
function strlenZonderTeken($string,$teken) {
$aantal = 0;
for($i=0;$i<strlen($teken);$i++) {
if($string{$i} != $teken) {
$aantal++;
}
}
return $aantal;
}
if(strlenZonderTeken($_POST['bericht']," ") > 50) {
echo "... lalala... niet over de 50 tekens... blaat";
}
?>
<?php
function strlenZonderTeken( $string , $teken ) {
$aantal = 0 ;
for ( $i = 0 ; $i < strlen( $teken ) ; $i ++ ) {
if ( $string { $i } != $teken ) {
$aantal ++;
}
}
return $aantal ;
}
if ( strlenZonderTeken( $_POST [ 'bericht' ] , " " ) > 50 ) {
echo "... lalala... niet over de 50 tekens... blaat" ; }
?>
Dolfje - 09/10/2005 22:17 (laatste wijziging 09/10/2005 22:17)
PHP ver gevorderde
<?
if( strlen(str_replace(" ", "", $tekst)) < 50 )
{
//doorgaan
}
else
{
//fout weergeven
}
?>
<?
{
//doorgaan
}
else
{
//fout weergeven
}
?>
Dit is ietsje sneller dan nemisiskoen zijn oplossing.
Ultimatum - 09/10/2005 22:48
PHP expert
en als ik het zo doe dan, kan dat ook..
<?
if( strlen(str_replace(" ", "", $tekst)) > 50 )
{
//fout weergeven
}
else
{
//doorgaan
}
?>
<?
{
//fout weergeven
}
else
{
//doorgaan
}
?>
> ipv < en dus fout en doorgaan omgedraaid (anders snap ik het niet met foutmeldingen neerzette etc in me script )
Ultimatum - 09/10/2005 23:00 (laatste wijziging 09/10/2005 23:00)
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:
<? if(empty($naam)){
echo "je kan naam niet leeglaten";
}elseif(empty($bericht)){
echo "je moet een bericht invullen";
}elseif( strlen(str_replace(" ", "", $tekst)) > 150 ){
echo "Het bericht mag maar 150 tekens bevatten!";
}elseif{
$verstuur = mysql_query("INSERT INTO `shoutbox`(`naam`,`email`,`bericht`,`datum`) VALUES('$naam','$email','$bericht','$datum')") or die(mysql_error());
echo "Bedankt voor je bericht! Bezig met doorsturen...
<meta http-equiv=\"refresh\" content=\"2;shoutbox_show.php\">";
}else{ ?>
echo "je kan naam niet leeglaten" ; } elseif ( empty ( $bericht ) ) { echo "je moet een bericht invullen" ; echo "Het bericht mag maar 150 tekens bevatten!" ; } elseif {
$verstuur = mysql_query ( "INSERT INTO `shoutbox`(`naam`,`email`,`bericht`,`datum`) VALUES('$naam ','$email ','$bericht ','$datum ')" ) or
die ( mysql_error ( ) ) ; echo "Bedankt voor je bericht! Bezig met doorsturen... <meta http-equiv=\" refresh\" content=\" 2;shoutbox_show.php\" >" ;
} else { ?>
PS: <? & ?> ff voor kleurtjes neergezet
wat is er fout??
Ultimatum - 10/10/2005 07:15 (laatste wijziging 10/10/2005 07:39)
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
<?php
require("config.php");
$name = $_POST["naam"];
$email = $_POST["email"];
$message = $_POST["bericht"];
$date = $_POST["datum"];
if(!$email) {
$email = "#";
}
$naam = strip_tags($naam);
$bericht = strip_tags($bericht);
$email = strip_tags($email);
if(empty($naam)){
echo "je kan naam niet leeglaten";
}elseif(empty($bericht)){
echo "je moet een bericht invullen";
}elseif( strlen(str_replace(" ", "", $bericht)) > 150 ){
echo "Het bericht mag maar 150 tekens bevatten!";
}elseif(
$verstuur = mysql_query("INSERT INTO `shoutbox`(`naam`,`email`,`bericht`,`datum`) VALUES('$naam','$email','$bericht','$datum')") or die(mysql_error())) {
echo "Bedankt voor je bericht! Bezig met doorsturen...
<meta http-equiv=\"refresh\" content=\"2;shoutbox_show.php\">";
}else{
?>
<table width="349" border="0" cellspacing="0" cellpadding="0">
<form action="shoutbox_send.php" method="post">
<tr>
<td width="79" height="30">Naam</td>
<td width="270"><input type="text" name="naam" size="20" maxlength="50"></tdh>
</tr>
<tr>
<td height="30">Email</td>
<td><input type="text" name="email" size="20" maxlength="125"></td>
</tr>
<tr>
<td valign="top">Bericht</td>
<td><textarea cols="40" rows="5" name="bericht"></textarea></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="Verstuur">
<input type="hidden" name="datum" value="<? echo "$datum"; ?>">
<input type="hidden" name="ga" value="1">
<input type="reset" value="Reset">
</form>
</td>
</tr>
</table>
<?php
}
?>
<?php
require ( "config.php" ) ;
$name = $_POST [ "naam" ] ;
$email = $_POST [ "email" ] ;
$message = $_POST [ "bericht" ] ;
$date = $_POST [ "datum" ] ;
if ( ! $email ) {
$email = "#" ;
}
echo "je kan naam niet leeglaten" ; } elseif ( empty ( $bericht ) ) { echo "je moet een bericht invullen" ; echo "Het bericht mag maar 150 tekens bevatten!" ; } elseif (
$verstuur = mysql_query ( "INSERT INTO `shoutbox`(`naam`,`email`,`bericht`,`datum`) VALUES('$naam ','$email ','$bericht ','$datum ')" ) or
die ( mysql_error ( ) ) ) { echo "Bedankt voor je bericht! Bezig met doorsturen... <meta http-equiv=\" refresh\" content=\" 2;shoutbox_show.php\" >" ;
} else {
?>
<table width="349" border="0" cellspacing="0" cellpadding="0">
<form action="shoutbox_send.php" method="post">
<tr>
<td width="79" height="30">Naam</td>
<td width="270"><input type="text" name="naam" size="20" maxlength="50"></tdh>
</tr>
<tr>
<td height="30">Email</td>
<td><input type="text" name="email" size="20" maxlength="125"></td>
</tr>
<tr>
<td valign="top">Bericht</td>
<td><textarea cols="40" rows="5" name="bericht"></textarea></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="Verstuur">
<input type="hidden" name="datum" value="
<? echo "$datum " ; ?> ">
<input type="hidden" name="ga" value="1">
<input type="reset" value="Reset">
</form>
</td>
</tr>
</table>
<?php
}
?>
smoos - 10/10/2005 08:49
PHP gevorderde
waarom doe je voor die php code niet gewoon:
<?php
if(isset($_POST['verstuur']))
{
// hier die shit voor als het gepost is
}
else
{
// hier je formulier
}
?>
<?php
if ( isset ( $_POST [ 'verstuur' ] ) ) {
// hier die shit voor als het gepost is
}
else
{
// hier je formulier
}
?>
Ultimatum - 10/10/2005 10:05
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...
thyssimonis - 10/10/2005 10:08
PHP interesse
Als je op submit heb geklikt of er voor?
Ultimatum - 10/10/2005 10:12
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...
smoos - 10/10/2005 10:42 (laatste wijziging 10/10/2005 13:34)
PHP gevorderde
dit moet werken dunkt mij heb het niet getest:
<?php
require("config.php");
$form = 1;
if(isset($_POST['submit']))
{
$name = $_POST["naam"];
$email = $_POST["email"];
$message = $_POST["bericht"];
$date = $_POST["datum"];
if(!$email)
{
$email = "#";
}
$naam = strip_tags($naam);
$bericht = strip_tags($bericht);
$email = strip_tags($email);
if(empty($naam))
{
echo "je kan naam niet leeglaten";
}
elseif(empty($bericht))
{
echo "je moet een bericht invullen";
}
elseif( strlen(str_replace(" ", "", $bericht)) > 150 )
{
echo "Het bericht mag maar 150 tekens bevatten!";
}
else
{
mysql_query("INSERT INTO shoutbox (naam, email, bericht, datum) VALUES('".$naam."', '".$email."', '".$bericht."', '".$datum."')") or die(mysql_error());
echo "Bedankt voor je bericht! Bezig met doorsturen... <meta http-equiv=\"refresh\" content=\"2;shoutbox_show.php\">";
$form = 0;
}
}
if($form)
{
?>
<table width="349" border="0" cellspacing="0" cellpadding="0">
<form action="" method="post">
<tr>
<td width="79" height="30">Naam</td>
<td width="270"><input type="text" name="naam" size="20" maxlength="50"></tdh>
</tr>
<tr>
<td height="30">Email</td>
<td><input type="text" name="email" size="20" maxlength="125"></td>
</tr>
<tr>
<td valign="top">Bericht</td>
<td><textarea cols="40" rows="5" name="bericht"></textarea></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" name="submit" value="Verstuur">
<input type="hidden" name="datum" value="<?php echo $datum; ?>">
<input type="hidden" name="ga" value="1">
<input type="reset" value="Reset">
</form>
</td>
</tr>
</table>
<?php
}
?>
<?php
require ( "config.php" ) ;
$form = 1 ;
if ( isset ( $_POST [ 'submit' ] ) ) {
$name = $_POST [ "naam" ] ;
$email = $_POST [ "email" ] ;
$message = $_POST [ "bericht" ] ;
$date = $_POST [ "datum" ] ;
if ( ! $email )
{
$email = "#" ;
}
{
echo "je kan naam niet leeglaten" ; }
{
echo "je moet een bericht invullen" ; }
{
echo "Het bericht mag maar 150 tekens bevatten!" ; }
else
{
mysql_query ( "INSERT INTO shoutbox (naam, email, bericht, datum) VALUES('" . $naam . "', '" . $email . "', '" . $bericht . "', '" . $datum . "')" ) or
die ( mysql_error ( ) ) ; echo "Bedankt voor je bericht! Bezig met doorsturen... <meta http-equiv=\" refresh\" content=\" 2;shoutbox_show.php\" >" ; $form = 0 ;
}
}
if ( $form )
{
?>
<table width="349" border="0" cellspacing="0" cellpadding="0">
<form action="" method="post">
<tr>
<td width="79" height="30">Naam</td>
<td width="270"><input type="text" name="naam" size="20" maxlength="50"></tdh>
</tr>
<tr>
<td height="30">Email</td>
<td><input type="text" name="email" size="20" maxlength="125"></td>
</tr>
<tr>
<td valign="top">Bericht</td>
<td><textarea cols="40" rows="5" name="bericht"></textarea></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" name="submit" value="Verstuur">
<input type="hidden" name="datum" value="
<?php echo $datum ; ?> ">
<input type="hidden" name="ga" value="1">
<input type="reset" value="Reset">
</form>
</td>
</tr>
</table>
<?php
}
?>
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
smoos - 10/10/2005 12:39 (laatste wijziging 10/10/2005 12:40)
PHP gevorderde
dn moet je die 2 veranderen in een 0 dan gaat het direct
echo "Bedankt voor je bericht! Bezig met doorsturen...
<meta http-equiv=\"refresh\" content=\"2;shoutbox_show.php\">";
echo "Bedankt voor je bericht! Bezig met doorsturen... <meta http-equiv=\" refresh\" content=\" 2;shoutbox_show.php\" >" ;
word:
echo "Bedankt voor je bericht! Bezig met doorsturen...
<meta http-equiv=\"refresh\" content=\"0;shoutbox_show.php\">";
echo "Bedankt voor je bericht! Bezig met doorsturen... <meta http-equiv=\" refresh\" content=\" 0;shoutbox_show.php\" >" ;
nu word je zowat direct doorgestuurd of bedoel je dit niet?
Martijn1989 - 10/10/2005 13:47 (laatste wijziging 10/10/2005 13:48)
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.
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function textCounter(field, countfield, maxlimit) {
if (field.value.length > maxlimit) // if too long...trim it!
field.value = field.value.substring(0, maxlimit);
// otherwise, update 'characters left' counter
else
countfield.value = maxlimit - field.value.length;
}
// End -->
</script>
<SCRIPT LANGUAGE = "JavaScript" >
<!-- Begin
function textCounter( field, countfield, maxlimit) {
if ( field. value. length > maxlimit) // if too long...trim it!
field. value = field. value. substring( 0 , maxlimit) ;
// otherwise, update 'characters left' counter
else
countfield. value = maxlimit - field. value. length;
}
// End -->
</script>
<table>
<tr>
<td valign="top" width="100">Bericht:</td>
<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>
</tr>
<tr>
<td>Tekens over :</td>
<td><input readonly type=text name=remLen size=3 maxlength=3 value="145"></td>
</tr>
</table>
< table>
< tr>
< td valign= "top" width= "100" > Bericht:</ td>
< 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>
</ tr>
< tr>
< td> Tekens over :</ td>
< td>< input readonly type= text name= remLen size= 3 maxlength= 3 value= "145" ></ td>
</ tr>
</ table>
Ultimatum - 10/10/2005 16:11 (laatste wijziging 10/10/2005 16:59)
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
smoos - 10/10/2005 17:41
PHP gevorderde
dan zet je dat daar tog neer :S
smoos - 10/10/2005 18:28
PHP gevorderde
jah je kan het ook meteen samenvatten wat het ongeveer inhoud dan kan hij het opzoeken hoe het werkt.
Gesponsorde links
Dit onderwerp is gesloten .