[PHP] gekke tekens bij (imap) bijlage openen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • robg1984
  • Registratie: December 2002
  • Laatst online: 17-09 11:18
hallo,

Van een klasgenoot van me (die heeft het weer van iemand anders etc.) heb ik een script gekregen om mailtjes te bekijken en de bijlagen te openen, echter het openen van de bijlagen lukt niet, behalve bij textbestanden...

als ik de 2 slashes voor de header-functies weghaal krijg ik een error dat de headers already sent zijn, is logisch want die staan niet op regel 1, hoe los ik ook dit op? als ik dit weghaal werkt het openen van .txt bestanden wel, tenminste, de inhoud wordt g-echo'd

wat moet ik doen om bijvoorbeeld gifjes te kunnen zien? als ik een gifje NU als bijlage open zie ik alleen rare codes, de broncode van de gif??

de search leverde mij niks op...
die klasgenoot kan me niet helpen, die kent geen PHP....

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
$mbox=imap_open("{".$email_server.":110/pop3/notls}".urldecode("INBOX"), $email_username, $email_password);
$msg=$num;
$bypasscheck = 0;
if (!eregi("^([0-9]*)$", $msg) or !eregi("([0-9\.]*)", $part)) exit();
$tmpa = array();
$ret = array();
if (eregi("([0-9\.]*)\.([0-9\.]*)", $part, $ret)){
    $pone = ($ret[1] - 1);
    $ptwo = ($ret[2] - 1);
}
else {
    $pone = ($part - 1);
}
$dpara = array();
$struct = imap_fetchstructure($mbox, $msg);
$body = imap_fetchbody($mbox, $msg, $part);
imap_close($mbox);  
$tmpa = $struct->parts;
if ($ptwo){
    $tmpa = $tmpa[$pone]->parts;
    $obj = $tmpa[$ptwo];
}
else{
    $obj = $tmpa[$pone];
}
$dpara = $obj->dparameters;
for ($v=0;$v<sizeof($dpara);$v++){
    if (eregi("filename", $dpara[$v]->attribute)) {$fname = $dpara[$v]->value;}
}
if (empty($fname)){
    $para = $obj->parameters;
    for ($v=0;$v<sizeof($para);$v++){
        if (eregi("name", $para[$v]->attribute)) {$fname = $para[$v]->value;}
    }
}
if (empty($fname)) {$disp = $obj->description;}
if (empty($fname)) {$fname = $lang_unknown;}    
$mime_type = mimetype($obj->type) . "/" . strtolower($obj->subtype);
if ($mime_type == "message/rfc822") {$mime_type = "text/plain";}
//header("Content-Type: " . $mime_type);
switch ($obj->encoding) {
    case 4: $body = imap_qprint($body);break;
    case 3: $body = imap_base64($body);break;
    default:
    $beginning=substr($body,0,50);
    if (stristr($beginning,"BinHex")!=FALSE) $fname=$fname.".binhex";
    break;
}
//header("Content-Disposition: attachment; filename=$fname");
print $body;

Acties:
  • 0 Henk 'm!

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 12:22

pistole

Frutter

robg1984 schreef op 09 juli 2004 @ 21:52:
als ik de 2 slashes voor de header-functies weghaal krijg ik een error dat de headers already sent zijn, is logisch want die staan niet op regel 1, hoe los ik ook dit op? als ik dit weghaal werkt het openen van .txt bestanden wel, tenminste, de inhoud wordt g-echo'd
[/php]
buffering aanzetten -> search/manual

Ik frut, dus ik epibreer


Acties:
  • 0 Henk 'm!

  • robg1984
  • Registratie: December 2002
  • Laatst online: 17-09 11:18
de search of buffering aanzetten of php buffering aanzetten levert me alleen resultaten op over videokaarten en branders??

op php.net ook niks bijzonders?

oh, je bedoelt ob_start(); ??

[ Voor 23% gewijzigd door robg1984 op 09-07-2004 22:01 ]


Acties:
  • 0 Henk 'm!

  • WPN
  • Registratie: Augustus 2003
  • Laatst online: 24-07 21:14

WPN

http://nl3.php.net/outcontrol


zoiets

[ Voor 101% gewijzigd door WPN op 09-07-2004 22:08 ]

Als ik denk zoals ik dacht, dan doe ik zoals ik deed, als ik doe zoals ik deed, dan denk ik zoals ik dacht! Cogito Ergo Sum


Acties:
  • 0 Henk 'm!

  • robg1984
  • Registratie: December 2002
  • Laatst online: 17-09 11:18
als ik ob_start();

en ob_end_flsuh();

voor en na de header zet dan krijg ik nog steeds de melding dat de headers al verzonden zijn...

Acties:
  • 0 Henk 'm!

  • Shadowman
  • Registratie: Januari 2002
  • Niet online
robg1984 schreef op 09 juli 2004 @ 22:15:
als ik ob_start();

en ob_end_flsuh();

voor en na de header zet dan krijg ik nog steeds de melding dat de headers al verzonden zijn...
Je moet aan het begin van je script ob_start() zetten en aan het eind van je script ob_end_flush().

Acties:
  • 0 Henk 'm!

  • robg1984
  • Registratie: December 2002
  • Laatst online: 17-09 11:18
oh nu werkt het wel...thnx :)
Pagina: 1