Ankündigung

Einklappen
Keine Ankündigung bisher.

Prüfung, ob Input-Feld leer ist

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Prüfung, ob Input-Feld leer ist

    Hallo,

    Folgender code soll Kategorien speichern. Ein Item kann dabei mehreren Kategorien angehören. Die Felder werden über einen Button dynamisch hinzugefügt. Name ist category[], das Array wird in der for-schleife durchlaufen, um alle Felder auszulesen und zu speichern. Allerdings tritt ein Problem auf, wenn man "ausversehen" über den "Kategorie hinzufügen"-Button ein Feld hinzufügt, es dann aber leer lässt. Dann wird ein leerer String in die DB gespeichert.

    Wie verhindere ich das?

    !empty() hat nicht geholfen, genauso wie !=null oder !=""

    PHP-Code:
    if (isset($_POST['category'])) {
    //loop through each row
    for($i 0$i count($_POST['category']); $i++) {
    $category $_POST['category'][$i];
    if (!empty(
    $_POST['category'][$i])) {
    $sqlAddCategory "INSERT INTO db (`ID`, `category`) VALUES ('$ID','$category')";
    $pdo->query($sqlAddCategory);
    }
    }


  • #2
    1. trim könnte helfen
    2. Wo kommt $ID her?
    3. Wieso immer die gleiche ID?
    4. Missachtung von SQL-Injections
    5. Was hat das unter PHP-Fortgeschrittene zu suchen?

    Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

    Kommentar


    • #3
      Zitat von cr4w Beitrag anzeigen
      !empty() hat nicht geholfen, genauso wie !=null oder !=""
      var_dump() sagt dir, was es wirklich ist.

      Kommentar


      • #4
        Die ID sollte doch eigentlich als AI aus der Datenbank kommen,
        dann könntest du auch etwas in dieser Richtung verwenden.

        PHP-Code:
        if(isset($_POST['category']))
        {
        $string "INSERT INTO db (`category`) VALUES ";
        $nr 0;

          foreach(
        $_POST['category'] as $key => $value)
          {
            if(!empty(
        trim($value)))
            {
              
        $tmpQuery[] = "(':".$nr."')";
              
        $tmpValue[$nr] = trim($value);
              
        $nr++;
            }
          }
          if(!empty(
        $tmpQuery))
            {
              
        $string $string.implode(","$tmpQuery);
              
        $stmt $pdo->prepare($string);
              
        $stmt->execute($tmpValue);
            }

        Kommentar


        • #5
          Was hat das unter PHP-Fortgeschrittene zu suchen?
          Gar nichts.

          MOD: Verschoben
          The string "()()" is not palindrom but the String "())(" is.

          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar

          Lädt...
          X