брой символи

bluesoleil

Registered
Как да направя php проверка примерно ако има въведени повече от 100 символа в textareata да изкарва че е въведен прекалено много текст и да прекъсва изпълненито на скрипта,докато не бъдат спазено условито

Ето скрипта:
Код:
<?
if($_POST['submit']) {
$title = htmlspecialchars($_POST['title']);
$opisanie = htmlspecialchars($_POST['opisanie']);
$text = htmlspecialchars($_POST['text']);
$avtor = $_SESSION['username'];
$sql = "INSERT INTO obiavi (title, opisanie, text, avtor) VALUES ('$title', '$opisanie', '$text', '$avtor')";
mysql_query($sql) or die (mysql_error());

echo Обявата е добавена. <a href=' '>Влез </a>";

}
else {
echo "<form method='post' action=' '>

<input type='text' name='title' />
<textarea name='opisanie' cols='35' rows='10' maxlength='10'> </textarea>
<input type='submit' name='submit' value='Добави обявата' />

</form>";
}
?>
 
<?
if($_POST['submit']) {
$title = htmlspecialchars($_POST['title']);
$opisanie = htmlspecialchars($_POST['opisanie']);
$text = htmlspecialchars($_POST['text']);
$avtor = $_SESSION['username'];
if(strlen($text) > 100)
{
echo 'Текста е прекалено много.';
} else {
$sql = "INSERT INTO obiavi (title, opisanie, text, avtor) VALUES ('$title', '$opisanie', '$text', '$avtor')";
mysql_query($sql) or die (mysql_error());

echo Обявата е добавена. <a href=' '>Влез </a>";
}
}
else {
echo "<form method='post' action=' '>

<input type='text' name='title' />
<textarea name='opisanie' cols='35' rows='10' maxlength='10'> </textarea>
<input type='submit' name='submit' value='Добави обявата' />

</form>";
}
?>
 
miro_94 каза:
<?
if($_POST['submit']) {
$title = htmlspecialchars($_POST['title']);
$opisanie = htmlspecialchars($_POST['opisanie']);
$text = htmlspecialchars($_POST['text']);
$avtor = $_SESSION['username'];
if(strlen($text) > 100)
{
echo 'Текста е прекалено много.';
} else {
$sql = "INSERT INTO obiavi (title, opisanie, text, avtor) VALUES ('$title', '$opisanie', '$text', '$avtor')";
mysql_query($sql) or die (mysql_error());

echo Обявата е добавена. <a href=' '>Влез </a>";
}
}
else {
echo "<form method='post' action=' '>

<input type='text' name='title' />
<textarea name='opisanie' cols='35' rows='10' maxlength='10'> </textarea>
<input type='submit' name='submit' value='Добави обявата' />



</form>";
}
?>



Пробвах с гореописаният скрипт но не се получава,промених полето
но продължава да въвежда обявата в базата данни


if(strlen($opisanie) > 100){
echo 'Текста е прекалено много.';
}
Код:
 
А така:
<?
if($_POST['submit']) {
$title = htmlspecialchars($_POST['title']);
$opisanie = htmlspecialchars($_POST['opisanie']);
$text = htmlspecialchars($_POST['text']);
$avtor = $_SESSION['username'];
if(mb_strlen($text, "windows-1251") > 100)
{
echo 'Текста е прекалено много.';
} else {
$sql = "INSERT INTO obiavi (title, opisanie, text, avtor) VALUES ('$title', '$opisanie', '$text', '$avtor')";
mysql_query($sql) or die (mysql_error());

echo Обявата е добавена. <a href=' '>Влез </a>";
}
}
else {
echo "<form method='post' action=' '>

<input type='text' name='title' />
<textarea name='opisanie' cols='35' rows='10' maxlength='10'> </textarea>
<input type='submit' name='submit' value='Добави обявата' />

</form>";
}
?>
Ао не стане, замени "windows-1251", с "utf-8"
 
emagi каза:
А така:
<?
if($_POST['submit']) {
$title = htmlspecialchars($_POST['title']);
$opisanie = htmlspecialchars($_POST['opisanie']);
$text = htmlspecialchars($_POST['text']);
$avtor = $_SESSION['username'];
if(mb_strlen($text, "windows-1251") > 100)
{
echo 'Текста е прекалено много.';
} else {
$sql = "INSERT INTO obiavi (title, opisanie, text, avtor) VALUES ('$title', '$opisanie', '$text', '$avtor')";
mysql_query($sql) or die (mysql_error());

echo Обявата е добавена. <a href=' '>Влез </a>";
}
}
else {
echo "<form method='post' action=' '>

<input type='text' name='title' />
<textarea name='opisanie' cols='35' rows='10' maxlength='10'> </textarea>
<input type='submit' name='submit' value='Добави обявата' />

</form>";
}
?>
Ао не стане, замени "windows-1251", с "utf-8"

Промених и с двата варианта посочени от емаги но продължава да вкарва обявите в базата данни.Искам да отбележа че $text замествам с $opisanie.
 
Код:
	<?
if($_POST['submit']) {
$title = htmlspecialchars($_POST['title']);
$opisanie = htmlspecialchars($_POST['opisanie']);
$text = htmlspecialchars($_POST['text']);
$avtor = $_SESSION['username'];

$c=strlen($opisanie);
if ($c >= 100)
{
echo "Твърде дълго описание !";
exit;
}
else
{
$sql = "INSERT INTO obiavi (title, opisanie, text, avtor) VALUES ('$title', '$opisanie', '$text', '$avtor')";
mysql_query($sql) or die (mysql_error());

echo "Обявата е добавена. <a href=' '>Влез </a>";

}
}
else {
echo "<form method='post' action=' '>

<input type='text' name='title' />
<textarea name='opisanie' cols='35' rows='10' maxlength='10'> </textarea>
<input type='submit' name='submit' value='Добави обявата' />

</form>";
}
?>
 
justspy каза:
Код:
	<?
if($_POST['submit']) {
$title = htmlspecialchars($_POST['title']);
$opisanie = htmlspecialchars($_POST['opisanie']);
$text = htmlspecialchars($_POST['text']);
$avtor = $_SESSION['username'];

$c=strlen($opisanie);
if ($c >= 100)
{
echo "Твърде дълго описание !";
exit;
}
else
{
$sql = "INSERT INTO obiavi (title, opisanie, text, avtor) VALUES ('$title', '$opisanie', '$text', '$avtor')";
mysql_query($sql) or die (mysql_error());

echo "Обявата е добавена. <a href=' '>Влез </a>";

}
}
else {
echo "<form method='post' action=' '>

<input type='text' name='title' />
<textarea name='opisanie' cols='35' rows='10' maxlength='10'> </textarea>
<input type='submit' name='submit' value='Добави обявата' />

</form>";
}
?>


Опитвах и така както е посочил justspy,но ефекта е еднакъв изобщо не изпълнява проверката за дължина на низ.не мога да открия проблема.


Ето пълният код

Код:
<?
if ($_POST['submit']) {
$title = htmlspecialchars($_POST['title']);
$opisanie = htmlspecialchars($_POST['opisanie']);
$kategoria = $_POST['kategoria'];
$c=strlen($opisanie); 
if ($c >= 100) 
{ 
echo "Твърде дълго описание !"; 
exit; 
} 
 else { 
$sql = "INSERT INTO obiavi (title, kategoria, opisanie) VALUES ('$title', '$kategoria', '$opisanie')";
mysql_query($sql) or die (mysql_error());
echo "     Обявата е добавена. <a href='indexobiavi.php'>Влез </a>";
}
}
else {
echo "<form method='post' action='addobiavidobaveno.php'>

Дата:         <input type='text' name='title' /><p />
";
$query ="SELECT * FROM cats";
$result = mysql_query($query) or die (mysql_error());
echo "Категория: <select name='kategoria'>";
while ($row = mysql_fetch_assoc($result)) {
echo "<option value='$row[id]'>$row[kategoria]</option>";
}
echo "</select>";
echo"<p />";
echo "Обява:       <textarea name='opisanie' cols='35' rows='10' maxlength='10'> </textarea><p />

<input type='submit' name='submit' value='Добави обявата' />

</form>";
}
?>
 
Код:
<?
if ($_POST['submit'])
{
    $title = htmlspecialchars($_POST['title']);
    $opisanie = htmlspecialchars($_POST['opisanie']);
    $kategoria = $_POST['kategoria'];
    $c = strlen($opisanie);
    if ($c == "100")
    {
        echo "Твърде дълго описание !";
        exit;
    }
    else
    {
        $sql = "INSERT INTO obiavi (title, kategoria, opisanie) VALUES ('$title', '$kategoria', '$opisanie')";
        mysql_query($sql) or die(mysql_error());
        echo "     Обявата е добавена. <a href='indexobiavi.php'>Влез </a>";
    }
}
else
{
    echo "<form method='post' action='addobiavidobaveno.php'> 

Дата:         <input type='text' name='title' /><p /> 
";
    $query = "SELECT * FROM cats";
    $result = mysql_query($query) or die(mysql_error());
    echo "Категория: <select name='kategoria'>";
    while ($row = mysql_fetch_assoc($result))
    {
        echo "<option value='$row[id]'>$row[kategoria]</option>";
    }
    echo "</select>";
    echo "<p />";
    echo "Обява:       <textarea name='opisanie' cols='35' rows='10' maxlength='10'> </textarea><p /> 

<input type='submit' name='submit' value='Добави обявата' /> 

</form>";
}
?>
 
Пробвай така :
Код:
 <?
if ($_POST['submit']) {
$title = htmlspecialchars($_POST['title']);
$opisanie = htmlspecialchars($_POST['opisanie']);
$kategoria = $_POST['kategoria'];
$c=strlen($opisanie);
if ($c >= 100)
{
echo "Твърде дълго описание !";
exit;
}
 else {
$sql = "INSERT INTO obiavi (title, kategoria, opisanie) VALUES ('$title', '$kategoria', '$opisanie')";
mysql_query($sql) or die (mysql_error());
echo "     Обявата е добавена. <a href='indexobiavi.php'>Влез </a>";
}
}
else {
echo "<form method='post' action=''>

Дата:         <input type='text' name='title' /><p />
";
$query ="SELECT * FROM cats";
$result = mysql_query($query) or die (mysql_error());
echo "Категория: <select name='kategoria'>";
while ($row = mysql_fetch_assoc($result)) {
echo "<option value='$row[id]'>$row[kategoria]</option>";
}
echo "</select>";
echo"<p />";
echo "Обява:       <textarea name='opisanie' cols='35' rows='10' maxlength='10'></textarea><p />

<input type='submit' name='submit' value='Добави обявата' />

</form>";
}
?>
 

Back
Горе