• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage HTML inputfeld: Leerzeichen vermeiden

Nono11

Neues Mitglied
Hallo, ich trage durch ein inputfeld daten in meine sql tabelle ein. wie kann ich es einrichten, dass Leerzeichen und sonderzeichen erkannt werden und der inhalt in dem fall nicht abgeschickt werden kann?
 
Mit einer if-Abfrage. Diese machst du, bevor du den Wert in die SQL-Tabelle einträgst.

Du solltest dir dafür die ctype_space Funktion von PHP anschauen.

Code:
if(ctype_string($string)) {
  Sql-Eintrag
} else {
  echo „Keine Leerzeichen“;
}
Nucht gestestet, aber ich glaube so ging es.
 
okay danke schonmal! sorry ich bin ein totaler anfänger aber ich habe in dem fall doch keinen string, wenn ich nur ein eingabefeld besitze oder? also ich habe eine website erstellt wo man etwas eingeben kann und es in sql eingetragen wird. kann ich das feld mit einer erstellten variable gleichsetzen?
 
Ich gehe mal davon aus, dass die Daten per PHP in eine DB geschrieben werden. Daher sollte man in PHP die Strings prüfen, JavaScript ist da nur ein Spielzeug, was keine ausreichende Sicherheit liefert.
 
@basti1012 warul auch? Da man eh PHP benutzt, warum dann nicht auch mit PHp überprüfen. Außerdem ist es ein klares Statement. Es wird nur eingetragen, sofern keine Leerzeichen enthalten sind. Da muss ich ja nicht eine nadere Sprqche überprüfen.

@Nono11 Also bei Submit hast du dein Form bestimmt auf method=”post“ gesetzt. Falls nicht, mach das bitte. Mit dem action-Attribut wählst du das PHP-Script aus. Die Variable wird dann per Post an PHP übergeben.
$meinString = $_POST['name'];

'name' wird durch den entsprechenden name Tag im Inputfeld ersetzt.

$meinString ist dann dein String.

Eine kleine Änderung noch oben bei meinem Code. Im Moment soll er den sql-Eintrag dann gemacht werden, wenn der String Leerzeichen enthält. Mach bitte vor $string in der if-Abfrage ein Ausrufezeichen.

if(!ctype_string...
 
Ja das seh ich :D.
Mir ist nur nicht klar, was ich daran umgeschrieben habe. Meinst du, dass ich es in eine Variable geschrieben habe, anstatt in direkt als $_POST in die if-Abfrage?

Falls ja, klar das kann man weglassen. Hab ich mir halt so angewöhnt.
 
Hallo nochmal, ich hab den code jetzt so geschrieben :

If (isset($_POST["Name"]) AND isset ($_POST["Einkaufspreis"]) AND isset ($_POST["Verkaufspreis"]))
{
$Name = $_POST["Name"];
$Einkaufspreis = $_POST ["Einkaufspreis"];
$Verkaufspreis = $_POST ["Verkaufspreis"];

if (!cytpe_string($_POST["Name"])) {
$eintrag= "INSERT INTO ware (Name, Einkaufspreis, Verkaufspreis) VALUES ('$Name','$Einkaufspreis','$Verkaufspreis')";
$result=mysqli_query($con, $eintrag);
}
else {
echo "Fehlermeldung. Vorgang wurde nicht ausgeführt";
}

}

funktioniert aber noch nicht. ich weiß ehrlich gesagt nicht, wo ich das mit dem ctype platzieren soll
 
Funktioniert nicht ist keine Problembeschreibung! cytpe_string ist keine PHP-Funktion. Siehe http://php.net/manual/de/ref.ctype.php

Richtig debuggen
  1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
  2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
  3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
  4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
  5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
  6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
  7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
  8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
  9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
 
ja ich hab ja auch nicht nur gesagt, dass es nicht funktioniert, sondern, dass ich nicht weiß wo ich den ctype-string platzieren soll
 
Zurück
Oben