| 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! Post your PHP questions here! |
 |
|

27-05-2009, 20:22
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Du verwendest $this->empf1 im Konstruktor? Zu diesem Zeitpunkt ist es nämlich noch nicht gesetzt.
|

27-05-2009, 20:33
|
|
tim185
Registrierter Benutzer
|
|
Registriert seit: Jun 2007
Beiträge: 34
|
|
Ok, sry hier nochmal der überarbeitete Code
empf1 wird eigentlich erst im Header() benutzt.
PHP-Code:
<?php
define("FPDF_FONTPATH","fpdf16/font/"); include_once('fpdf16/fpdf.php');
// unsere Testklasse erbt von der FPDF-Klasse
class Testklasse01 extends FPDF {
// hier werden die Variablen für diese Klasse deklariert (also: "bekanntgemacht")
private $empf1 = ""; public function addempf1( $name ) { $this->empf1 = $name; }
// der Konstruktor dieser Klasse
function __construct() {
// Konstruktor der vererbenden Klasse aufrufen (also den von FPDF)
parent::__construct("P", "mm", "A4"); // L=Querformat(Landscape), P=Hochformat(Portrait)
// hier werden die Variablen dieser Klasse initialisiert (also: "gefüllt")
$this->header4 = "Telefon: (0)1805-012815 (0,14€/Min*)"; $this->header5 = "Telefax: (0)1805-012816 (0,14€/Min*)"; $this->header6 = "eMail: Support@X.com"; $this->header7 = "Kundennummer: 1033669"; $this->header8 = "Rechnungsnummer: 100369"; $this->header9 = "Datum:"; $this->datum = date("d.m.Y"); $this->rechnung = "Rechnung:"; $this->text1 = "Sehr geehrter Herr X,"; $this->text2 = "wir freuen uns Sie als neuen Kunden begrüßen zu dürfen!"; $this->text3 = "Ihre 14 Tägige Testphase ist heute abgelaufen, daher haben wir Ihren Vertrag, wie auf unserer Seite"; $this->text4 = "beschrieben, in den \"Standart\"-Tarif gewechselt. Nachfolgend erhalten Sie Ihre Rechnung,"; $this->text5 = "wir werden den Betrag ("; $this->gesamtpreisx = "95,40 Euro"; $this->text6 = ") die nächsten Tage von Ihrem Konto abbuchen. Bitte sorgen Sie"; $this->text7 = "dafür dass Ihr Konto ausreichend gedeckt ist, um unnötige Chargeback Kosten zu vermeiden! Die im"; $this->text8 = "Falle eines Chargebacks entstehenden Bankgebühren (15,00 Euro) müssten wir Ihnen ansonsten"; $this->text9 = "zusätzlich berechnen."; $this->text10 = "Ihr X.com Team"; $this->rdatum = "Datum:"; $this->rleistung = "Leistung:"; $this->rpreis = "Preis:";
$a = date("d.m.Y"); $b = date("d.m"); $c = date("Y"); $c++; $implode1 = array($b, $c); $datumende = implode(".", $implode1); $implode2 = array($a, $datumende); $datum2 = implode(" - ", $implode2); $this->datum2 = $datum2;
$this->leistung1 = "Vermietung eines \"Recorder Standart\"-Servers"; $this->leistung2 = "für jeweils 1 Jahr (12 x 6,68)";
$this->preisomwst = "80,16 Euro"; $this->mwst = "15,23 Euro"; $this->preisgesamt = "95,40 Euro"; $this->textmwst = "Zzgl. 19% MwSt.:"; $this->gesamtpreis = "Gesamtpreis:"; $this->umstid = "UmSt-ID: Beantragt"; $this->hra = "HRA XX"; $this->hra2 = "Amtsgericht ...";
// Einstellungen für das zu erstellende PDF-Dokument
$this->SetDisplayMode(100); // wie groß wird Seite angezeigt(in %)
// Seite erzeugen (sozusagen: starten)
$this->AddPage(); }
function Header() {
// Hintergrund
$this->Image('bg.png', 0, 0);
// eine Funktion zur Anzeige des Inhalts
$this->SetFont("Arial","","10"); $this->SetTextColor(000, 000, 000); $this->SetXY(24.5, 45.5); $this->Cell(90, 10, $this->empf1); // empf1 wird hier benutzt // empf1 wird hier benutzt // empf1 wird hier benutzt // empf1 wird hier benutzt // empf1 wird hier benutzt
$this->SetFont("Arial","","10"); $this->SetTextColor(000, 000, 000); $this->SetXY(24.5, 45.5); $this->Cell(90, 19, $this->abs2);
}
function Footer() {
}}
mysql_connect("localhost","X","X") or die ("keine Verbindung möglich! Benutzername oder Passwort sind falsch"); mysql_select_db("user") or die ("Die Datenbank existiert nicht.");
// noch die auswahlkriterien überarbeiten! // noch die auswahlkriterien überarbeiten! // noch die auswahlkriterien überarbeiten! // noch die auswahlkriterien überarbeiten! // noch die auswahlkriterien überarbeiten! // noch die auswahlkriterien überarbeiten!
$news_sql = "SELECT id FROM user WHERE rechnungstatus = '0' ORDER BY id DESC"; $news_result = mysql_query($news_sql) or die('Fehler 3: '.mysql_error()); while ($row = mysql_fetch_array($news_result, MYSQL_NUM)) {$idausdb[] = $row[0];}
$news_sql = "SELECT vorname FROM user WHERE rechnungstatus = '0' ORDER BY id DESC"; $news_result = mysql_query($news_sql) or die('Fehler 3: '.mysql_error()); while ($row = mysql_fetch_array($news_result, MYSQL_NUM)) {$vornameausdb[] = $row[0];}
$news_sql = "SELECT servername FROM user WHERE rechnungstatus = '0' ORDER BY id DESC"; $news_result = mysql_query($news_sql) or die('Fehler 3: '.mysql_error()); while ($row = mysql_fetch_array($news_result, MYSQL_NUM)) {$servernameausdb[] = $row[0];}
$anzahl = count($idausdb);
$news_sql = "SELECT rechnungsnummer FROM user ORDER BY rechnungsnummer DESC"; $news_result = mysql_query($news_sql) or die('Fehler 3: '.mysql_error()); while ($row = mysql_fetch_array($news_result, MYSQL_NUM)) {$rechnungsnummerausdb[] = $row[0];}
$rechnungsnummer = $rechnungsnummerausdb[0];
$a = 0;
while($a < $anzahl) {
$rechnungsnummer++;
$pdf = new Testklasse01(); $pdf->addempf1( "blub" ); $pdf->Output(); // "$servernameausdb[$a]$a$a$anzahl$rechnungsnummer.pdf"
$sql = "UPDATE user SET `rechnungsnummer` = '" . $rechnungsnummer . "', `rechnungname` = '" . $servernameausdb[$a] . $a . $a . $anzahl . $rechnungsnummer . "' WHERE id='". $idausdb[$a] ."'"; $db_erg = mysql_query( $sql );
$a++;
}
/* ACHTUNG: darf kein einziges Leerzeichen hinter phpend sein (wegen header) !!! */ ?>
Geändert von tim185 (27-05-2009 um 20:43 Uhr)
|

28-05-2009, 03:10
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Zitat:
Zitat von tim185
empf1 wird eigentlich erst im Header() benutzt.
|
Aber Header() rufst du überhaupt nicht auf. Da du trotzdem merkst, dass empf1 leer ist, scheint die Parent-Klasse diese Methode aufzurufen. Wann genau geschieht das, bei der Konstruktion oder beim Output()?
Oder wird Header() überhaupt nicht aufgerufen? Wie stellst du denn fest, dass empf1 leer ist?
|

28-05-2009, 07:15
|
|
tim185
Registrierter Benutzer
|
|
Registriert seit: Jun 2007
Beiträge: 34
|
|
Wie genau der Header() aufgerufen wird kann ich dir nicht sagen da es ein fertigscript ist was ich nur bearbeitet (andere würden sagen geschändet ^^) habe.
Aber das ist auf jedenfall der komplette code!
Also zB.
PHP-Code:
$this->SetFont("Arial","","10"); $this->SetTextColor(000, 000, 000); $this->SetXY(24.5, 45.5); $this->Cell(90, 19, $this->header4);
wird ja ausgegeben da kommt zB. wie weiter oben definiert:
Telefon: (0)1805-012815 (0,14€/Min*)
PHP-Code:
$this->SetFont("Arial","","10"); $this->SetTextColor(000, 000, 000); $this->SetXY(24.5, 45.5); $this->Cell(90, 19, $this->empf1);
hier müsste ja eigentlich "blub" angezeigt werden in der pdf aber es wird halt nichts angezeigt der bereich ist leer.
-----
Wenn ihr mir nicht glaubt... ich hab einfach mal die datei gezipt und hochgeladen ( die DB abfragen hab ich rausgenommen ) wenn ihr die testklasse01.php startet werdet ihr eine .pdf sehen allerdings fehlt der Name oben beim empfänger da müsste ja theoretisch "blub" stehen:
http://mdrtest.md.funpic.de/rechnung.rar
Geändert von tim185 (28-05-2009 um 07:19 Uhr)
|

28-05-2009, 09:28
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Zitat:
Zitat von tim185
Wie genau der Header() aufgerufen wird kann ich dir nicht sagen
|
Dann kann ich dir nicht weiter helfen.
|

28-05-2009, 09:32
|
|
tim185
Registrierter Benutzer
|
|
Registriert seit: Jun 2007
Beiträge: 34
|
|
ahh ich habs,
$this->AddPage();
der befehl im function __construct ruft den header() und footer() auf.
Geändert von tim185 (28-05-2009 um 09:39 Uhr)
|

28-05-2009, 09:33
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Mach halt mal ein echo in Konstruktor, Header() und Output().
|

28-05-2009, 09:40
|
|
tim185
Registrierter Benutzer
|
|
Registriert seit: Jun 2007
Beiträge: 34
|
|
ahh ich habs,
$this->AddPage();
der befehl im function __construct ruft den header() und footer() auf.
|

28-05-2009, 09:45
|
|
tim185
Registrierter Benutzer
|
|
Registriert seit: Jun 2007
Beiträge: 34
|
|
JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
JAAAAAAAAAAAAAAAAAAa
JAAAAAAAAAAAAAAAAAAAAAAAAAA
ich habs !!!!
DANKE DANKE DANKE !!! ohne euch wäre ich nie drauf gekommen !!!!!!!!!!!!!!!!!!!!!!!!!!!
PHP-Code:
ich erzeuge den header und footer nu einfach später
public function addpag(){ $this->AddPage(); }
PHP-Code:
$pdf = new Testklasse01(); $pdf->addempf1( "blub" ); $pdf->addpag(); $pdf->Output();
JAAAA, danke =)
Geändert von tim185 (28-05-2009 um 10:07 Uhr)
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| 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.
HTML-Code ist aus.
|
|
|
|
PHP News
|