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, 01: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, 01: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, 01: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, 01: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, 01: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 01:40 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 04-09-2006, 01: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, 01: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, 04: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 04: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

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:38 Uhr.