Anzeige

Problem in meinem PHP Script

Problem in meinem PHP Script | PSD-Tutorials.de

Erstellt von crusher9001, 30.12.2009.

  1. crusher9001

    crusher9001 Nicht mehr ganz neu hier

    Dabei seit:
    15.08.2008
    Beiträge:
    53
    Geschlecht:
    männlich
    Software:
    Netbeans
    Kameratyp:
    Nikon D5100
    Problem in meinem PHP Script
    Hallo liebe Community,
    ich hoffe ihr könnt mir helfen. Mein Problem klingt ziemlich trivial, aber trotzdem finde ich keine Lösung :(

    Zweck meines Scripts:
    Ich möchte einen Spamwortfilter für meine Shoutbox etc. entwickeln. Dafür sind mehrere Funktionen vorgesehen.

    Meine Funktion wortfilter_add($wortfilter) soll aus dem übergebenen String alle Wörter, die durch ein Simikolon getrennt sind in ein Array speichern und in meine Datenbank speichern. Dabei wird das Array mit der DB verglichen um nur die Wörter in die DB zu speichern, die noch nicht drinnen sind bzw. nicht mehr benötigte Wörter sollen entfernt werden.

    Das Problem:
    Wenn ich meine beiden Arrays vergleiche bekomme ich bei Index 0 den Wert true zurück (was richtig währe) aber bei Index 1 bekomme ich false zurück ( obwohl beide Array die selben Inhalte besitzen)

    $array[0] = a;
    $array[1] = b;

    $werte[0] = a;
    $werte[1] = b;


    Ausgabe:

    a a
    true
    b b
    false


    PHP:
    1. function wortfilter_add($wortfilter)
    2. {
    3.      $array = explode(';', $wortfilter);
    4.      $flag = false;
    5.      $werte = array();
    6.  
    7.          $abfrage = mysql_query("SELECT * FROM wortfilter ORDER BY ID ASC");
    8.  
    9.          while($row = mysql_fetch_object($abfrage))
    10.          {
    11.              array_push($werte, $row->Wort);
    12.  
    13.          }
    14.  
    15.         echo $werte[0] . " " . $array[0] . "<br />";
    16.  
    17.          if($werte[0] == $array[0])
    18.          {
    19.                 echo "true <br />";
    20.          }
    21.          else
    22.          {
    23.                 echo "false<br />";
    24.          }
    25.  
    26.          echo $werte[1] . " " . $array[1] . "<br />";
    27.  
    28.          if($werte[1] == $array[1])
    29.          {
    30.                 echo "true <br />";
    31.          }
    32.          else
    33.          {
    34.                 echo "false<br />";
    35.          }
    36. }

    Ich hoffe Ihr könnt mir helfe. Ich bin mit meinem Latein am Ende und versteh einfach nicht warum laut meinem Script b == b false ergeben soll.

    lg crusher


    PS: Die DB verbindung steht und gibt im weiteren Script auch keine Probleme.
     
    #1      
  2. netbandit

    netbandit Aktives Mitglied

    12
    Dabei seit:
    18.05.2008
    Beiträge:
    1.145
    Geschlecht:
    männlich
    Problem in meinem PHP Script
    AW: Problem in meinem PHP Script

    Brauchst Du alles gar nicht. Achte beim Aufbau der DB dass die Spalte mit den "Spamwörtern" (Wort) auf "unique" steht.

    Und füge alle neuen Spamwörter mit dem Befehl

    INSERT IGNORE INTO tbl...

    Sofern Wörter schon vorhanden sind werden diese nicht ein zweites-, drittes... Mal eingefügt
     
    Zuletzt bearbeitet: 30.12.2009
    #2      
  3. crusher9001

    crusher9001 Nicht mehr ganz neu hier

    Dabei seit:
    15.08.2008
    Beiträge:
    53
    Geschlecht:
    männlich
    Software:
    Netbeans
    Kameratyp:
    Nikon D5100
    Problem in meinem PHP Script
    AW: Problem in meinem PHP Script

    supi thx für deine Hilfe, ich hab warscheinlich zu kompliziert gedacht.

    Trotzdem versteh ich nicht warum meine If - Anweisung nicht funktioniert?

    Aber naja so wie du es gesagt hat ist es einfacher :)
     
    #3      
  4. netbandit

    netbandit Aktives Mitglied

    12
    Dabei seit:
    18.05.2008
    Beiträge:
    1.145
    Geschlecht:
    männlich
    Problem in meinem PHP Script
    AW: Problem in meinem PHP Script

    Hast wahrscheinlich nach dem Semikolon noch ein Leerschritt oder so :uhm:

    Die Funktion kann aber eigentlich nicht wirklich hilfreich sein, denn Dein String könnte ja auch z.B. so aussehen:

    PHP:
    1. $wortfilter='b;c;a;d';
    Nach dem explode hätte 'a' den Index/Schlüssel '2' und würde sicherlich nicht mit den Daten aus der DB übereinstimmen
     
    #4      
  5. crusher9001

    crusher9001 Nicht mehr ganz neu hier

    Dabei seit:
    15.08.2008
    Beiträge:
    53
    Geschlecht:
    männlich
    Software:
    Netbeans
    Kameratyp:
    Nikon D5100
    Problem in meinem PHP Script
    AW: Problem in meinem PHP Script

    ich hatte es alles noch in einer Schleife gepackt, damit jeder Index des Arrays mit allen Einträgen der DB verglichen wird. Hatte dann alles wieder gelöscht um den Fehler zufinden.

    Aber du hast recht, da wird sich bestimmt irgend wo ein Leerzeichen eingeschliechen haben.
     
    #5      
Seobility SEO Tool
x
×
×