php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 04-09-2006, 00:07
Deathrow
 Member
Links : Onlinestatus : Deathrow ist offline
Registriert seit: Jul 2003
Ort: Germany
Beiträge: 305
Deathrow ist zur Zeit noch ein unbeschriebenes Blatt
Deathrow eine Nachricht über ICQ schicken Deathrow eine Nachricht über AIM schicken
Standard mailinhalt?

Hallo!

Ich habe mir etwas in PHP geschriebe mit einer Klasse, die es schon gab, aber leider holt der vom body immer nur die erste zeile - aber wieso?

der code:
PHP-Code:
<?php
session_start
();

// !!!!
$mails = array(); // unveraendert lassen!
// !!!

if ($_REQUEST['emplog']) $_SESSION['emplog'] = $_REQUEST['emplog'].'@********';

if (!
$_SESSION['emplog']) die ('Keinen User gewählt!'); else echo $_SESSION['emplog'];

$mysql['host'] = 'localhost';
$mysql['user'] = 'root';
$mysql['pass'] = '********';
$mysql['db'] = '********';
mysql_connect ($mysql['host'], $mysql['user'], $mysql['pass']);
mysql_select_db ($mysql['db']);

$server '********';
$port '110';
$uname '********';
$passwd '********';

function 
pop_login () {
 global 
$pop3$auth$error_msg$count;
 global 
$server$port$uname$passwd;

 
# connect to the pop server
 
if ( ! $pop3->connect($server$port) ) {
  
$error_msg .= sprintf("Failed to connect to POP server %s on port %s.<br><small>%s</small>"$auth->auth["server"], $auth->auth["port"], $pop3->ERROR);
 }

 
# login to the POP server
 
$count $pop3->apop($uname$passwd);
 if ( 
$count ) {
  
$error_msg .= "Failed to login to POP server<br><small>$pop3->ERROR</small>";
 }
}

include(
dirname(__FILE__)."/lib/poprepend.inc");
pop_login();

if (
$_GET['del']) {
    if ( 
$pop3->delete($_GET['del']) ) {
      echo 
"gelöscht!";
  
$pop3->quit();
  
pop_login();
    } else {
      echo 
"<br>Failed to delete message number $id. <br><small>$pop3->ERROR</small>";
    }
}

echo 
$error_msg;
for ( 
$i 1$i <= $count$i++ ){
# get the size of this message
  
$size $pop3->pop_list($i);
  
# get the headers and zero lines of body
  
$body_lines 0;
//  $header_array = $pop3->top($i, $body_lines);
  
$header_array $pop3->get($i);
  
$show_msg TRUE;

# reset header variables
  
$from $subject $date "&nbsp;";

# loop through the headers and look for the stuff
# we are interested in...
    
$in_body 'false';
  while ( list (
$linenbr$line) = each ($header_array) ) {

    
$body '';

    if ( 
eregi ("^From:(.*)"$line$match) ) {
      
$from trim $match[1] );

    } elseif ( 
eregi ("^To:(.*)"$line$match) ) {
      
$to trim $match[1] );

    } elseif ( (!
$cc) and (eregi ("^cc:(.*)"$line$match)) ) {
      
$cc htmlentities(trim $match[1] ));

    } elseif ( 
eregi ("^Subject:(.*)"$line$match) ) {
      
$subject trim $match[1] );
      
# skip pine generated internal messages      
      
if ( ereg ("DON\'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA"$subject) ) {
        
$show_msg FALSE;
      }
    
    } elseif ( 
eregi ("^Date:(.*)"$line$match) ) {
      
$date trim $match[1] );
//
// und hier die nächsten 2 elseif stimmt irgendwas nicht...
//
    
} elseif ( eregi ("^\r"$line) ) {
      
$in_body true;

    } elseif ( 
$in_body ) {
      
$body .= "<br>" htmlentities($line);
    }
  } 
# for each line in the message header

  
if ( $show_msg && $to == $_SESSION['emplog']) {

$sql "INSERT INTO `mails` (`from`,`to`,`subject`,`content`,`date`) VALUES ('".$from."','".$to."','".$subject."','".$body."','".$date."');";

if (
mysql_query ($sql)) { /* $pop3->delete($i); */ echo '<b>Gepseichert:/b> '.$sql.'<br /><br />'; }

/*
$mails[] = array(FROM        => $from,
      TO     => $to,
      SUBJECT     => $subject,
      DATE        => $date,
      MSGNBR      => $i,
      MSGURL      => 'msg.php3?id='.$i);
*/
  
}

# for each message

$pop3->quit();





die();
?>

<table width="900" cellspacing=1 cellpadding=1 style="border-collapse: collapse;" bordercolor="#000000">
 <tr bgcolor="#c0c0c0">
  <td width="150">Absender</td>
  <td width="150">Empfaenger</td>
  <td width="150">Datum</td>
  <td width="250">Betreff</td>
  <td>Lesen</td>
  <td>del</td>
 </tr>
<?php
if (count($mails) > 0) {
  for (
$i=0;$i<count($mails);$i++) {

    if ( 
eregi ("^(.*)<(.*)>"$mails[$i][FROM], $match) ) {
      if (
$match[1])
        {
          
$mails[$i][FROM] = trim($match[2]);
        }
    }

  echo 
'<tr>
  <td>'
.htmlspecialchars(str_replace(array("<"">"), ""$mails[$i][FROM])).'</td>
  <td>'
.htmlspecialchars(str_replace(array("<"">"), ""$mails[$i][TO])).'</td>
  <td>'
.substr($mails[$i][DATE], 022).'</td>
  <td>'
.$mails[$i][SUBJECT].'</td>
  <td>'
.$mails[$i][MSGURL].'</td>
  <td><a href="?del='
.$mails[$i][MSGNBR].'">'.$mails[$i][MSGNBR].'</a></td>
 </tr>'
;
  }
} else echo 
'<tr><td colspan="4">Keine Nachrichten vorhanden!</td></tr>';
?>
</table>
was könnte es sein?
__________________
Mit freundlichem Gruß,
Deathrow
Mit Zitat antworten
  #2 (permalink)  
Alt 04-09-2006, 00:14
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

etwas genauer bitte.
Mit Zitat antworten
  #3 (permalink)  
Alt 04-09-2006, 00:22
Deathrow
 Member
Links : Onlinestatus : Deathrow ist offline
Registriert seit: Jul 2003
Ort: Germany
Beiträge: 305
Deathrow ist zur Zeit noch ein unbeschriebenes Blatt
Deathrow eine Nachricht über ICQ schicken Deathrow eine Nachricht über AIM schicken
Standard

ja, er speichert halt in der DB immer nru die erste zeile ab, vom body, mehr nicht
__________________
Mit freundlichem Gruß,
Deathrow
Mit Zitat antworten
  #4 (permalink)  
Alt 04-09-2006, 00:27
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich habe keine zeit, mich in den code einzulesen, wenn du ihn nicht kürzst.
aber ich sehe eine auskommentierte zeile.
Mit Zitat antworten
  #5 (permalink)  
Alt 04-09-2006, 00:32
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

*gelöscht*
Weil Thema verfehlt....

Geändert von combie (04-09-2006 um 00:40 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 04-09-2006, 00:44
Deathrow
 Member
Links : Onlinestatus : Deathrow ist offline
Registriert seit: Jul 2003
Ort: Germany
Beiträge: 305
Deathrow ist zur Zeit noch ein unbeschriebenes Blatt
Deathrow eine Nachricht über ICQ schicken Deathrow eine Nachricht über AIM schicken
Standard

also, der problemteil lieht hier drin:

PHP-Code:
<?php
//
// AUSSCHNITT:
//
// und hier die nächsten 2 elseif stimmt irgendwas nicht...
//
    
} elseif ( eregi ("^\r"$line) ) {
      
$in_body true;

    } elseif ( 
$in_body ) {
      
$body .= "<br>" htmlentities($line);
    }
?>
__________________
Mit freundlichem Gruß,
Deathrow
Mit Zitat antworten
  #7 (permalink)  
Alt 04-09-2006, 00:47
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

\r mal gegen "\n" oder "\r\n" ersetzt?
Mit Zitat antworten
  #8 (permalink)  
Alt 04-09-2006, 03:22
nix_wie_weg
 Banned
Links : Onlinestatus : nix_wie_weg ist offline
Registriert seit: Aug 2006
Beiträge: 109
nix_wie_weg ist zur Zeit noch ein unbeschriebenes Blatt
Standard

erstens $in_body = 'false'; (also true!) anstatt $in_body = false;

zweitens reset($header_array);

drittens $body=''; aus der Schleife rausnehmen. (einige Zeilen nach oben schieben).

viertens muss if($in_body) als erster Test kommen - im Body nicht mehr auf From To usw. achten.

aber alles ohne es genau untersucht zu haben. Es wundert mich dass die ERSTE zeile
behalten wird. Man würde denken, die letzte Zeile des body wird behalten.

Geändert von nix_wie_weg (04-09-2006 um 03:34 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:53 Uhr.