@hand Prüfen ob Zeichen vorhanden

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

  • @hand Prüfen ob Zeichen vorhanden

    Ich muss eine Konvertierung zweier Tabellen mache.

    Jetzt will ich prüfen ob ein @-Zeichen entahlten ist.
    strlen(@)

    Wie war den noch mal der aufruf dafür?
    PHP-Code:
    if($email ???)// hier soll geprüft werden ob ein @-Zeichen enthalten ist.
    {
    // eintagen in User datenbank
    }
    else
    {
    // was anders

    *winks*
    Gilbert
    ------------------------------------------------
    Hilfe für eine Vielzahl von Problemen!!!
    http://www.1st-rootserver.de/

  • #2
    if (eregi("[@]",$email))
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Wenn Du darüber hinaus die gesamte eMail-Adresse auf syntaktische Richtigkeit prüfen willst:
      PHP-Code:
      <?php
      $eMailAdresse 
      "hand@wotan.net"
      if (!eregi("^[^@[:space:]]+@([[:alnum:]\-]+\.)+[[:alnum:]][[:alnum:]][[:alnum:]]?$"$eMailAdresse)) {
          print 
      "eMail address of recipient is incorrect !";
      } else {
          
      // eintragen in User Datenbank
      }
      ?>

      Kommentar


      • #4
        Komm damit nicht klar.
        Ich weiß lange Scripte sind öde.
        PHP-Code:
        <?php
        include("../inc/db_data.inc.php");

        echo
        " Hole Datensätze aus forum und bringe ihn nach forum_post<hr><br>";
        $i0;
        $rea mysql_query ("SELECT * FROM frettchenforum")or die(mysql_error());
        while(
        $row mysql_fetch_array($rea))
            {
            
        $i $i 1;
            echo
        "<hr>Habe Datensatznr. $i gelesen und werde ihn jetzt eintragen.<br>";
            
        $id "$row[id]";
            
        $datestamp "$row[datestamp]";
            
        $thread "$row[thread]";
            
        $parent "$row[parent]";
            
        $author =  "$row[author]";
            
        $subject "$row[subject]";
            
        $email "$row[email]";
            
        $host "$row[host]";
            
        $email_relpy "$row[email_reply]";
            
        $approved "$row[approved]";
            
        $msgid "$row[msgid]";
            
        $userid "$row[userid]";

            echo
        "$author hat $email<br>";
            if(
        eregi("/@/",$email)) // prüfen ob in der eMail ein @ Zeichen enthalten
                
        {
                
        $res mysql_query("SELECT * FROM forum_user")or die(mysql_error());
                while(
        $rox mysql_fetch_array($res))
                    {
                    if(
        $email == $rox[user_email])
                        {
                        
        $new_id "$rox[id]";
                        echo
        "Er hat die user_id $new_id<br>";
                        }
                    else
                        {
                        echo
        "$author ist nicht bekannt in der forum_user Datenbank<br>";
                        
        // Eintragen in die User-Datenbank
                        
        $ret mysql_query("INSERT INTO forum_user SET user_name='$author', user_email='$email'")or die(mysql_error());
                        echo
        "$author wurde eingetragen in der forum_user Datenbank<br>";
                        
        // Letze Datensatz ID holen
                        
        $new_id mysql_insert_id();
                        echo
        "Er hat die user_id $new_id<br>";
                        }
                    }
                }
            }
        ?>
        Als ergebnis bekomme ich unter andern folgendes:
        Habe Datensatznr. 1 gelesen und werde ihn jetzt eintragen.
        Webmaster hat Webmaster@domain.com

        Aber er trät mir den user nicht ein.

        Jetzt kommt eure Frage sind alle Namen richtig geschrieben. Ja sind sie, da ich mir angwohnt habe alles kleinzuschreiben.
        *winks*
        Gilbert
        ------------------------------------------------
        Hilfe für eine Vielzahl von Problemen!!!
        http://www.1st-rootserver.de/

        Kommentar


        • #5
          aus welchem Grund machst du das?

          $parent = "$row[parent]";
          $author = "$row[author]";
          $subject = "$row[subject]";
          $email = "$row[email]";
          $host = "$row[host]";

          php-Entwicklung | ebiz-consult.de
          PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
          die PHP Marktplatz-Software | ebiz-trader.de

          Kommentar


          • #6
            Damit hole ich mir erstmal die Inhalte der Spalten.

            Ist das verkehrt?
            *winks*
            Gilbert
            ------------------------------------------------
            Hilfe für eine Vielzahl von Problemen!!!
            http://www.1st-rootserver.de/

            Kommentar


            • #7
              du hast doch die Werte bereits in einer Variable gespeichert!
              Es macht keinen Sinn dieses noc hmal zu tun

              php-Entwicklung | ebiz-consult.de
              PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
              die PHP Marktplatz-Software | ebiz-trader.de

              Kommentar


              • #8
                und wenn schon würde ich
                PHP-Code:
                extract($row); 
                vorziehen.
                ich bin Toxical, und werd es auch bleiben

                Kommentar


                • #9
                  Konnte das Problem eingrenzen:
                  PHP-Code:
                  <?php
                  include("../inc/db_data.inc.php");

                  echo
                  "<hr>Hole Datensätze aus forum und bringe ihn nach forum_post<hr><br>";
                  $i0;
                  $rea mysql_query ("SELECT * FROM frettchenforum")or die(mysql_error());
                  while(
                  $row mysql_fetch_array($rea))
                      {
                      
                  $i $i 1;
                      echo
                  "<hr>Habe Datensatznr. $i gelesen und werde ihn jetzt eintragen.<br>";
                      echo
                  "$row[author] hat $row[email]<br>";
                      if(
                  eregi("[@]",$row[email])) // prüfen ob in der eMail ein @ Zeichen enthalten
                          
                  {
                          echo
                  "email hat ein @-Zeichen<br>";
                          
                  $res mysql_query("SELECT * FROM forum_user")or die(mysql_error());
                          echo
                  "Es wird die Datenbank forum_user durchsucht.<br>";
                          
                  $nun mysql_num_rows($res);
                          echo
                  "Es wurden $nun Datensätze gefunden.<br>";
                          echo 
                  "$row[email] = email<br>";
                          while(
                  $ro mysql_fetch_array($res))// Diese While-Schleife wird nicht angelaufen.
                              
                  {
                              echo
                  "hier ist der Vergleich der eMials.<br>";
                              if(
                  $ro['user_email'] == $row['email'])
                                  {
                                  echo
                  "If schleife, ob $row[email] == $ro[user_email]<br>";
                                  
                  $new_id "$ro[id]";
                                  echo
                  "Der $row[author] hat die user_id $new_id bekommen.<br>";
                                  }
                              else
                                  {
                                  echo
                  "else schleife, wenn $row[email] != $ro[user_email]<br>";
                                  echo
                  "$row[author] ist nicht bekannt in der forum_user Datenbank<br>";
                                  
                  // Eintragen in die User-Datenbank
                                  
                  $ret mysql_query("INSERT INTO forum_user SET user_name='$row[author]', user_email='$row[email]'")or die(mysql_error());
                                  echo
                  "$row[author] wurde eingetragen in der forum_user Datenbank<br>";
                                  
                  // Letze Datensatz ID holen
                                  
                  $new_id mysql_insert_id();
                                  echo
                  "Der $row[author] hat die user_id $new_id bekommen.<br>";
                                  }
                              }
                          echo
                  "While-Schleife ende<br";
                          }
                      else
                          {
                          echo
                  " Die email erhält kein @-zeichen.<bR>";
                          }
                      }
                  ?>
                  Das ist die Ausgabe die ich bekomme:
                  Habe Datensatznr. 1 gelesen und werde ihn jetzt eintragen.
                  Webmaster hat Webmaster@domain.com
                  email hat ein @-Zeichen
                  Es wird die Datenbank forum_user durchsucht.
                  Es wurden 0 Datensätze gefunden.
                  Webmaster@domain.com = email
                  While-Schleife ende
                  Zuletzt geändert von Wotan; 05.08.2002, 22:14.
                  *winks*
                  Gilbert
                  ------------------------------------------------
                  Hilfe für eine Vielzahl von Problemen!!!
                  http://www.1st-rootserver.de/

                  Kommentar


                  • #10
                    Hi!
                    Das Problem liegt nicht in der Schleife, sondern in der Abfrage.

                    Es wird die Datenbank forum_user durchsucht.
                    Es wurden 0 Datensätze gefunden.
                    Also entweder ist die Tabelle, die Du abfragst leer, oder es ist ein Fehler in der Abfrage (dann weiß ich aber nicht, wieso keine Fehlermeldung ausgegeben wird ... )
                    Überprüf noch einmal die Tabelle auf Inhalt und vergleich noch einmal die Namen.
                    cu tj99de
                    Of all things I've lost
                    I miss my mind the most

                    Kommentar


                    • #11
                      @tj99de

                      Die Abfrage ist doch richtig, oder?

                      Ist der User(eMail) in der Datenbank bekannt, gib mir seine ID, ansonsten trage Ihn in der Datenbank ein und gib mir seine neue ID.
                      *winks*
                      Gilbert
                      ------------------------------------------------
                      Hilfe für eine Vielzahl von Problemen!!!
                      http://www.1st-rootserver.de/

                      Kommentar


                      • #12
                        Du bekommst schon bei der Abfrage, mit der Du alle user ausliest keine Datensätze zurück. An der Abfrage kann außer dem Tabellennamen eingentlich nix falsch sein.
                        Hast Du mal überprüft, ob in der Tabelle überhaupt was drin steht?
                        Eine andere Erklärung hätt ich im mom nicht.
                        Of all things I've lost
                        I miss my mind the most

                        Kommentar


                        • #13
                          wie ich schon weiter oben geschreiben habe, ich schreibe alles Klein Tabellenname und Spaltenname, damit mir keine Tippfehler unter laufen. Hast du zeit zum Testen, tj99de? Dann kommte ich dir mal die Dumps und das Script schicken. Vielleicht siehst du was, was ich nicht gesehen habe.
                          *winks*
                          Gilbert
                          ------------------------------------------------
                          Hilfe für eine Vielzahl von Problemen!!!
                          http://www.1st-rootserver.de/

                          Kommentar


                          • #14
                            Ne, leider nicht.
                            Bin auf der Arbeit und habe auch keine mySQL-Datenbank hier
                            Ich glaube mein Chef is nicht so begeistert, wenn ich mal kurz nen ftp-client hier installiere und auf meinem webspace rumhampel
                            Wenn es heute Nachmittag immer noch nicht geht, kann ich mir das mal ansehn.
                            Vielleicht findet sich ja jetzt schon wer, der sich das mal so ansehen kann...
                            Of all things I've lost
                            I miss my mind the most

                            Kommentar


                            • #15
                              Nach dem ich nun noch mal das ganze Script zerpflückt habe und neu geschrieben habe geht es.
                              Hier noch mal der Code zum ansehen.
                              PHP-Code:
                              <?php
                              include("../inc/db_data.inc.php");

                              echo
                              "Hole Datensätze aus forum und bringe ihn nach forum_post<hr><br>";
                              $i0;
                              // Datensatz holen
                              $rea mysql_query ("SELECT * FROM frettchenforum")or die(mysql_error());
                              while(
                              $row mysql_fetch_array($rea))
                                  {
                                  
                              // Dtaensatzzählung
                                  
                              $i $i 1;
                                  echo
                              "<hr>Habe Datensatznr. $i gelesen und werde ihn jetzt eintragen.<br>";
                                  echo
                              "$row[author] hat $row[email]<br>";

                                  if(
                              eregi("[@]",$row[email])) // prüfen ob in der eMail ein @ Zeichen enthalten
                                      
                              {
                                      echo
                              "eMail hat ein @-Zeichen<br>";
                                      echo
                              "Nachschauen ob $author schon in der forum_user Datenbank ist<br>";
                                      
                              $reb mysql_query ("SELECT * FROM forum_user WHERE user_email='$row[email]'")or die(mysql_error());
                                      while(
                              $rox mysql_fetch_array($reb))
                                          {
                                          echo
                              "Es wird die forum_user Datenbank durchsucht<br>";
                                          
                              $new_id $rox[id];
                                          echo
                              "$row[author] ist schon in der Datenbank bekannt und hat die id $new_id<br>";
                                          
                              $red mysql_query("INSERT INTO forum_post SET id='$row[id]', post_date='$row[datestamp]', post_thread='$row[thread]', post_parent='$row[parent]', post_subject='".addslashes($row[subject])."', post_ip='$row[host]', post_userid='$new_id'")or die(mysql_error());
                                          
                              $n mysql_affected_rows();
                                          if(
                              $n >= 0)
                                              {
                                              echo
                              "\"$row[subject]\" wurde in die Datenbank geschrieben<br>";
                                              }
                                          }
                                      
                              $nun mysql_num_rows($reb);
                                      if(
                              $nun <= 0)
                                          {
                                          echo
                              "Es wurde keine Übereinstimmung gefunden<br>";
                                          echo
                              "$row[author] wird in die Datenbank eingetrage<br>";
                                          
                              $rec mysql_query("INSERT INTO forum_user SET user_name='$row[author]', user_email='$row[email]'")or die(mysql_error());
                                          
                              $new_id mysql_insert_id();
                                          echo
                              "$row[author] bekommt die neue id $new_id<br>";
                                          
                              $red mysql_query("INSERT INTO forum_post SET id='$row[id]', post_date='$row[datestamp]', post_thread='$row[thread]', post_parent='$row[parent]', post_subject='".addslashes($row[subject])."', post_ip='$row[host]', post_userid='$new_id'")or die(mysql_error());
                                          
                              $n mysql_affected_rows();
                                          if(
                              $n >= 0)
                                              {
                                              echo
                              "\"$row[subject]\" wurde in die Datenbank geschrieben<br>";
                                              }

                                          }
                                      }
                                  else
                                      {
                                      echo
                              "Die email erhält kein @-zeichen.<bR>";
                                      
                              $red mysql_query("INSERT INTO forum_post SET id='$row[id]', post_date='$row[datestamp]', post_thread='$row[thread]', post_parent='$row[parent]', post_subject='".addslashes($row[subject])."', post_ip='$row[host]', post_userid='$row[author]'")or die(mysql_error());
                                      
                              $n mysql_affected_rows();
                                      if(
                              $n >= 0)
                                          {
                                          echo
                              "\"$row[subject]\" wurde in die Datenbank geschrieben<br>";
                                          }
                                      }
                                  }
                              ?>
                              *winks*
                              Gilbert
                              ------------------------------------------------
                              Hilfe für eine Vielzahl von Problemen!!!
                              http://www.1st-rootserver.de/

                              Kommentar

                              Lädt...
                              X