kleines problem mit db eintrag?

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

  • kleines problem mit db eintrag?

    ich rufe per imap den body einer nachricht ab. dieser sollte eigentlich unverändert in die db eingetragen werden. Allerdings will das die datenbank nicht - dacht ich mir - nehm ich halt base64_encode, da bekomm ich allerdings vom mysql die rückantwort "MySQL server has gone away".

    Wie kann ich das machen, dass ich den body verschlüsselt oder nicht in die datenbank bekomme? Er soll NICHT vorher bearbeitet werden! also das Original in die Datenbank!

    Thx 4 help
    Signatur-Text ...

  • #2
    Allerdings will das die datenbank nicht
    Und wieso will sie das nicht? Fehlermeldung? Wie ist die entsprechende Spalte definiert?

    Gruss

    tobi

    p.s. base64 ist keine Verschlüsselung sondern nur eine Codierung
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      " base64 ist keine Verschlüsselung sondern nur eine Codierung" - sry falsch formuliert


      Bei norm eintrag bekomm ich grundsätzlich "Fehler im MYSQL-Syntax" die spalte ist normal "TEXT"
      Signatur-Text ...

      Kommentar


      • #4
        Mit dem Header selber ist kein prob - der geht in die db ... Achja ! So lese ich den body:

        PHP-Code:
                        $MC imap_check($mbox);    
                        
        $result imap_fetch_overview($mbox,"1:{$MC->Nmsgs}",0);
        $i=1;
        foreach (
        $result as $overview) {
        $header imap_fetchheader($mbox$i);    
          if (
        check_type($structure)){
           
        $mbody imap_fetchbody($mbox,$i,"1");
            if(!
        $mbody) {$mbody '[NO TEXT ENTERED INTO THE MESSAGE]\n\n';}
          }else{
           
        $mbody imap_body($mbox$i);
           if(!
        $mbody) {$mbody '[NO TEXT ENTERED INTO THE MESSAGE]\n\n';}
        }
                            
        mysql_query("INSERT INTO ".$mpref."inbox 
        (uid,mheader,mailbody)VALUES('"
        .$uid."','".$header."','".$mbody."')");
        ... 
        Signatur-Text ...

        Kommentar


        • #5
          mysql_real_escape_string()

          Wie sieht die Query dann aus?

          Kommentar


          • #6
            Original geschrieben von onemorenerd
            Wie sieht die Query aus?
            PHP-Code:
            mysql_query("INSERT INTO ".$mpref."inbox 
            (uid,mheader,mailbody)VALUES('"
            .$uid."','".$header."','".$mbody."')"); 
            mit dem entsprechen $mbody
            Signatur-Text ...

            Kommentar


            • #7
              habs nun so:
              PHP-Code:
              $query sprintf("INSERT INTO ".$mpref."inbox 
              (uid,mheader,mailbody)VALUES('%s','%s','%s')"
              ,

              mysql_real_escape_string($uid),
              mysql_real_escape_string($header),
              mysql_real_escape_string($mbody));
              mysql_query($query)or die(mysql_error()); 
              bekomme eine mail in die DB dann kommt wieder: "MySQL server has gone away"
              Signatur-Text ...

              Kommentar


              • #8
                Wie dein Code aussieht ist klar. Ich habe nach der Query gefragt, also dem fertig zusammengesetzten String, wie du ihn dem DB-Server übergibst.

                Übrigens ist uid sicherlich eine numerische Spalte. Also behandle sie auch so.

                Kommentar


                • #9
                  Original geschrieben von onemorenerd
                  Übrigens ist uid sicherlich eine numerische Spalte. Also behandle sie auch so.
                  Sry war ja nur schnell hingetippt
                  Original geschrieben von onemorenerd
                  Wie dein Code aussieht ist klar. Ich habe nach der Query gefragt, also dem fertig zusammengesetzten String, wie du ihn dem DB-Server übergibst.
                  Je nach E-Mail unterschiedlich oder meinst dus anders?
                  Signatur-Text ...

                  Kommentar


                  • #10
                    Ich meinte eine Query (die nicht funktioniert).

                    Kommentar


                    • #11
                      KK grade das Proglem gefunden - das prob ist nicht die query sondern mein MYSQL - habe eben in der My.cnf max_allowed_packet auf 64M hochgeschraubt und siehe da es geht xD - trotzdem dange ;-)

                      ps die query's gingen ja nun - nur ein timeout war die folge von großen emails ...
                      Signatur-Text ...

                      Kommentar

                      Lädt...
                      X