Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Bład w foreach
Forum PHP.pl > Forum > Przedszkole
Wolfie
Witam

Napisalem sobie skrypcik laczacy sie z serwerem ale przy ostatniej petli foreach wywala mi blad

Kod
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <?php

        $mailbox = "{imap.gmail.com:993/imap/ssl}INBOX";
        $user = "nazwauzytkownika";
        $pass = "haslo";

        $mbox = imap_open ($mailbox, $user, $pass)
        or die("can't connect: " . imap_last_error());


        echo "<h1>Mailboxes</h1>\n";
        $folders = imap_listmailbox($mbox, "{imap.gmail.com:993}", "*");

        if ($folders == false) {
            echo "Call failed<br />\n";
        } else {
            foreach ($folders as $val) {
                echo $val . "<br />\n";
            }
        }

        echo "<h1>Headers in INBOX</h1>\n";
        $headers = imap_headers($mbox);

        if ($headers == false) {
        echo "Call failed<br />\n";
        } else {
            foreach ($headers as $val) {
                echo $val . "<br />\n";
            }
        }

        echo "<h1>Body of specified message</h1>\n";
        $body = imap_body($mbox,1);

        if ($body == false) {
        echo "Call failed<br />\n";
        } else {
            foreach ($body as $val) {
                echo $val . "<br />\n";
            }
        }

        imap_close($mbox)


        ?>
    </body>
</html>


Wywala mi taki bład

Warning: Invalid argument supplied for foreach() in C:\Program Files\WebServ\httpd\PrackaMgr\index.php on line 46

Linia 46 to ta :
Kod
foreach ($body as $val) {


Jakies pomysly ?
rzymek01
tongue.gif

Kod
$body = imap_body($mbox,1);

tutaj pobierasz ciało msg pierwszej wiadomości, jako string
a foreach potrzebuje tablicę, ot, cała historia
Wolfie
Przerobilem to na cos takiego ale i tak ten sam blad

Kod
$num = array(1,2,3);
        echo "<h1>Body of specified message</h1>\n";
        $body = imap_body($mbox, $num);

        if ($body == false) {
        echo "Call failed<br />\n";
        } else {
            foreach ($body as $val) {
                echo $val . "<br />\n";
            }
        }
nospor
blinksmiley.gif
Przeciez $body to nadal tekst a nie tablica

ps: uzywaj wlasciwego bbcode
rzymek01
heh... :/

po prostu:

  1. <?php
  2. $num = array(1,2,3);
  3. $numC = count($num);
  4.  
  5. echo '<h1>Body of specified message</h1>';
  6. for ($i = 0; $i < $numC; ++$i)
  7. {
  8.   $body = imap_body($mbox, $num[$i]);
  9.  
  10.   if ($body == false) {
  11.     echo 'Call failed (' . $num[$i] . ')<br />';
  12.   }
  13.   else
  14.     echo $body;
  15. }
  16. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.