myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Textbox Problem (https://mygully.com/showthread.php?t=2353502)

Teke1337 01.07.11 12:36

Textbox Problem
 
Guten Tag,

ich habe vor ein neues Projekt zu machen was noch niemand so ungf. bis jetzt jemand hatte. Man kann so zu sagen später dann auch etwas einfügen, was dann in der Datenbank gespeichert ist. Das Problem ist aber: Es dürfen keine Leerzeichen abgesendet werden. Ich habe es schon mit NULL oder empty($varliable) versucht, das geht aber nur wenn die Textbox ganz leer ist. Wie kann ich es schaffen dass wenn Leerzeichen eingegebn werden, dass das einfach nicht möglich ist... Danke!

eudaimonie 01.07.11 12:41

Sollen dann immer nur einzelne Wörter eingegeben werden, und da darf am Anfang oder am Ende kein Leerzeichen sein?

Oder sollen auch ganze Sätze eingegeben werden (z.B. "Hallo, mygully ist toll") und da willst du einfach die Leerzeichen rausfiltern?

Bisschen mehr Informationen wären nicht schlecht.. z.B. Was wird genau eingegeben?

Ganz wichtig natürlich noch, was für eine Programmiersprache?

Teke1337 01.07.11 12:51

Oh ja, entschuldigung. Ich schreibe es in PHP. Leerzeichen sollten nicht dabei sein.

Wenn zum beispiel jemand nur Leerzeichen eingibt und auf Absenden klickt, sollte ein Text kommen wie z.b "Leerzeichen sind nicht erlaubt". Wenn jemand text mit leerzeichen eingibt wie z.b "hallo wie gehts" sollten die leerzeichen weggemacht werden und in der Datenbank als "hallowiegehts" eingefügt werden.
Hatte das schon mit trim($variable); versucht, ging aber nicht.

eudaimonie 01.07.11 12:57

trim() entfernt nur die Leerzeichen am Anfang und am Ende eines Strings, die Leerzeichen in der Mitte (also zwischen den Wörtern) werden nicht entfernt.

eine kurze Google-Suche nach "php leerzeichen in string entfernen" hätte dir schneller geholfen, als hier ein Thread aufzumachen, und auf antworten zu warten.

Ein Möglichkeit wäre z.B.

PHP-Code:

<?php 

$string 
'Wort Wort'

echo 
str_replace(' ','',$string); 
//im 1. Argument steht das, was ersetzt werden soll, im 2. steht das, womit es ersetzt werden soll (also nichts "NULL") und im 3. steht der String selbst. 

?>

Das ersetzt einfach alle Leerzeichen durch nichts.

Teke1337 01.07.11 13:05

Hätte ich genau so gut machen können

if($textbox == "" OR $textbox == " ")

bringt mir genau so wenig.
Ich glaube Du hast mich nicht ganz verstanden.. egal bei welchem Eintrag, Leerzeichen dürfen nicht sein. Immerhin werden die ja dann in die Datenbank gespeichert, und in der Datenbank dürfen KEINE leerzeichen sein...

eudaimonie 01.07.11 13:12

ja.. mit meiner Methode entfernst du ja alle Leerzeichen aus dem String. Somit hast du dann deinen String ohne Leerzeichen, denn du in der Datenbank abspeichern kannst.

PHP-Code:

<?php  

$string 
$_POST['textboxname'// Oder wie auch immer du den Inhalt der Textbox im PHP Skript ausliehst  

$neuerString =  str_replace(' ','',$string);  // $neuerString enthält nun den Text, ohne Leerzeichen

// hier kommt der Code, welcher $neuerString in der Datenbank speichert.

?>


urga 01.07.11 17:17

[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Thelvan 01.07.11 17:53

Zitat:

Zitat von urga (Beitrag 22454743)
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Es wurde doch schon gesagt, dass ihm das nix bringt

Pillewutz 01.07.11 17:59

Zitat:

Zitat von Teke1337 (Beitrag 22453669)
Guten Tag,

ich habe vor ein neues Projekt zu machen was noch niemand so ungf. bis jetzt jemand hatte. Man kann so zu sagen später dann auch etwas einfügen, was dann in der Datenbank gespeichert ist. Das Problem ist aber: Es dürfen keine Leerzeichen abgesendet werden. Ich habe es schon mit NULL oder empty($varliable) versucht, das geht aber nur wenn die Textbox ganz leer ist. Wie kann ich es schaffen dass wenn Leerzeichen eingegebn werden, dass das einfach nicht möglich ist... Danke!

String-Replace gibt es in allen "gängigen" Programmiersprachen!

Und warum entwickelt jemand ein Software-Projekt der
1. keinen sinnvollen Titel zur Beschreibung seines Problems wählen kann? (Was hat eine visuelle Komponente mit der String-Formatierung zu tun?)
2. sein Problem nicht beschreiben kann? (Programmiersprache nicht angegeben und es ist nicht klar was Du genau willst)
3. Google nicht benutzen kann
4. String-Methoden nicht kennt oder einsetzen kann

???

urga 01.07.11 19:26

Zitat:

Zitat von Thelvan (Beitrag 22454855)
Es wurde doch schon gesagt, dass ihm das nix bringt

stimmt, jetzt wo ichs genau nachlese ;)

eine andere möglichkeit wäre das eingeben von leerzeichen per javas***** zu unterbinden:
Code:

<html>
        <body>
                <s***** type="text/javas*****">
                        function keine_leerzeichen (i,e) {
                                if(window.event) // IE
                                {
                                        keynum = e.keyCode;
                                }
                                else if(e.which) // Netscape/Firefox/Opera
                                {
                                        keynum = e.which;
                                }
                                return keynum != 32;
                                /*
                                keychar = String.fromCharCode(keynum)
                                return keychar != ' ';
                                */
                        }
                </s*****>

                <form>
                        <input type=text name=bla value="" onKeyPress="return keine_leerzeichen(this,event)">
                        <input type=submit>
                        <textarea onKeyPress="return keine_leerzeichen(this,event)"></textarea>
                </form>
        </body>
</html>


Pillewutz 01.07.11 19:39

Zitat:

Zitat von urga (Beitrag 22455145)
stimmt, jetzt wo ichs genau nachlese ;)

eine andere möglichkeit wäre das eingeben von leerzeichen per javas***** zu unterbinden:
Code:

<html>
        <body>
                <s***** type="text/javas*****">
                        function keine_leerzeichen (i,e) {
                                if(window.event) // IE
                                {
                                        keynum = e.keyCode;
                                }
                                else if(e.which) // Netscape/Firefox/Opera
                                {
                                        keynum = e.which;
                                }
                                return keynum != 32;
                                /*
                                keychar = String.fromCharCode(keynum)
                                return keychar != ' ';
                                */
                        }
                </s*****>

                <form>
                        <input type=text name=bla value="" onKeyPress="return keine_leerzeichen(this,event)">
                        <input type=submit>
                        <textarea onKeyPress="return keine_leerzeichen(this,event)"></textarea>
                </form>
        </body>
</html>


Ist aber keine sichere Methode, da die Restriktion im UI statt findet und nicht in der Anwendung! (Sowas lässt sich auch sehr leicht umgehen...).
Wenn keine Leerzeichen in der DB erlaubt sind (warum eigentlich?), dann muss das beim Einfügen verhindert werden und NIEMALS über das UI.

eudaimonie 02.07.11 10:40

Ich habe ihm ja die Lösung mit PHP genannt, die sein Problem löst...


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:11 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.