Forum Doku Wiki Blog

Forumsarchiv 2005, Januar
Textarea mindestens X zeichen.

archivierte Beiträge lesen

  1. (HTML) Textarea mindestens X zeichen. von Daniel_Binder, 01. 01. 2005, 16:56

Textarea mindestens X zeichen.

Der folgende Beitrag wurde am 01. 01. 2005, 16:56 Uhr von Daniel_Binder veröffentlicht.

Hallo!
Ich hab mri ein formluar erstellt, bei dem wenn man den submit button drückt eine befehl an mysql gesendet wird. jetzt hab ich aber das problem, dass dieser befehl automatisch gesendet wird, sobald cih die seite aufrufe. deshalb möchte ich, dass die Textarea mindestens X zeichen haben muss, um gesendet zu werden. wie könnt ich das machen?

Textarea mindestens X zeichen.

Der folgende Beitrag wurde am 01. 01. 2005, 17:14 Uhr von N2O veröffentlicht.

Hallo,

> Hallo!
> Ich hab mri ein formluar erstellt, bei dem wenn man den submit button drückt eine befehl an mysql gesendet wird.

Es wäre nicht schlecht, wenn du _einen Teil_ deines Quelltextes hier schreiben könntest. Aber bitte nur den Teil, der von Belang ist!

> jetzt hab ich aber das problem, dass dieser befehl automatisch gesendet wird, sobald cih die seite aufrufe. deshalb möchte ich, dass die Textarea mindestens X zeichen haben muss, um gesendet zu werden. wie könnt ich das machen?

So vielleicht?

if (strlen($_POST['textarea']) <= $x) die ("Gebe mindestens $x Zeichen ein!");

;-)

Nein, ohne Quelltext ist das schwierig.


Gruß
Lachgas

Textarea mindestens X zeichen.

Der folgende Beitrag wurde am 01. 01. 2005, 17:26 Uhr von Daniel_Binder veröffentlicht.

Ja, hier ist die Stelle:

<form name="" method="post" action="<? echo $PHP_SELF; ?>?action=write">

<table>
<tr>
<td>Scanbericht einfügen:</td>
<td><textarea name="einlesen" minlenght="5" cols="50" rows="10"></textarea></td>
</tr>

<tr>
<td></td>
<td><input type="submit" name="add" value="Scan einlesen"></td></tr>
</table>

</form>
<?
$sql = "INSERT INTO $tablename
(scan)
VALUES('$einlesen')";

Textarea mindestens X zeichen.

Der folgende Beitrag wurde am 01. 01. 2005, 17:44 Uhr von N2O veröffentlicht.

Hallo,

> <td><textarea name="einlesen" minlenght="5" cols="50" rows="10"></textarea></td>

"minlenght" gibt es (in dieser orthographischen Form schon gar) nicht. Man kann in HTML einem Feld keine Mindestlänge zuweisen, da es das nicht überprüfen kann. Du musst also mit PHP arbeiten (s. u.)

> <?
> $sql = "INSERT INTO $tablename
> (scan)
> VALUES('$einlesen')";

So etwas hatte ich befürchtet. Das, was du da hast, ist _sehr_ (!) gefährlich. Du räumst damit jedem Besucher ein, deine komplette Datenbank kleinzuhackseln (Stichwort: MySQL-Injection).
Es sieht so aus, als hättest du bei dir REGISTER_GLOBALS auf ON. Ändere dies umgehend, denn so kann jeder über die URL die beiden Variablen $tablename und $einlesen beliebig bestimmen. Und das kann ganz böse werden. Außerdem bereinige die Eingaben durch mysql_escape_string() bzw. mysql_real_escape_string().

Dein Problem kannst du mit einer einfachen if-Bedingung lösen:
$x = 5  // Mindestlänge Textfeld
if (strlen($_POST['einlesen']) >= $x AND isset($_POST['button'])) // strlen() und isset()
{
// ...mach was...
}
else
{
echo "Gebe mindestens $x Buchstaben ein!";
}

Gruß
Lachgas

Textarea mindestens X zeichen.

Der folgende Beitrag wurde am 01. 01. 2005, 19:32 Uhr von Daniel_Binder veröffentlicht.

Hallo! Also da smit minlenght war nru ein test, hatte ich vergessen rausnehmen thx.

nun, mit dienem code bekomm ich folgende Fehlermeldung:

Parse error: parse error, unexpected T_IF in /www/htdocs/vao/test.php on line 45

hier die Zeile 45:

if (strlen($_POST['einlesen']) >= $x AND isset($_POST['button'])) // strlen() und isset()


hab das button auch schon durch submit und add ersetzt, bringt nix.
----------------

Das zweite versteh ich nicht ganz. Wie schalte ich REGISTER_GLOBALS auf OFF?

Textarea mindestens X zeichen.

Der folgende Beitrag wurde am 01. 01. 2005, 19:43 Uhr von N2O veröffentlicht.

Hallo,

> Also da smit minlenght war nru ein test, hatte ich vergessen rausnehmen thx.

Hatte ich mir auch schon gedacht ;-)

> Parse error: parse error, unexpected T_IF in /www/htdocs/vao/test.php on line 45

Diese Fehlermeldung heißt meist, dass in der vorherigen Zeile am Ende ein Semikolon fehlt. Es muss also heißen: $x = 5;

> hab das button auch schon durch submit und add ersetzt, bringt nix.

Stimmt, es muss natürlich $_POST['add'] heißen.

> Das zweite versteh ich nicht ganz. Wie schalte ich REGISTER_GLOBALS auf OFF?

Das kannst du hier nachlesen. Es ist aber nur möglich, wenn du die vollen Rechte besitzt auf deinen Webserver besitzt. Register Globals bedeutet einfach, dass _automatisch_ bei index.php?link=test die Variable $link mit dem Wert "test" definiert wird. Du kannst dir sicher vorstellen, dass das unsicher sein kann, wenn jeder Besucher einfach Variablen bestimmen kann.

Gruß
Lachgas

Textarea mindestens X zeichen.

Der folgende Beitrag wurde am 01. 01. 2005, 21:57 Uhr von Daniel_Binder veröffentlicht.

Boar super. Geht :) BIG THANKS

Nur noch eien Frage.
Um das register_globals off zu schalten, einfach eine datei namens .htaccess erstellen mit dem inhalt: php_flag register_globals off.
oder?

Textarea mindestens X zeichen.

Der folgende Beitrag wurde am 01. 01. 2005, 22:20 Uhr von N2O veröffentlicht.

Hallo,

> Boar super. Geht :) BIG THANKS

Bitte. :-)

> Um das register_globals off zu schalten, einfach eine datei namens .htaccess erstellen mit dem inhalt: php_flag register_globals off.
> oder?

Genau. Dann sind beispielsweise die per URL übermittelten Variablen und deren Werte im Array $_GET gespeichert.

Gruß
Lachgas

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4