import mit mysqlexport.php -> felder verschoben

Fragen und Tipps & Tricks zur Newsletter Software SuperMailer oder zum BirthdayMailer

Moderatoren: mirko, Wolfi

Antworten
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

https:// geht, die Unterstützung ist eingebaut. Dein Server muss natürlich https:// unterstützen, das tun die meisten, auch wenn das Zertifikat kein richtiges bezahltes ist.
Sinn kann https:// machen wenn man irgendwo im Internetcafe ist und keiner die Daten mitschneiden soll, auf dem eigenen PC braucht man das eigentlich nicht. Natürlich musst du das Export-Script mit Passwort schützen oder einen Dateinamen vergeben, den man nicht erraten kann. Beachtet man das nicht, dann könnte irgendwer von außen die Kundendaten klauen.
Benutzeravatar
powdermaniac.de
Beiträge: 46
Registriert: 06.05.2008, 15:59
Kontaktdaten:

Beitrag von powdermaniac.de »

okay, separator am ende der zeile ist weg.
danke.

noch eine frage nebenbei.
macht es sinn, das script bei httpS abzurufen? geht das überhaupt?
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

Ja nach der for-Schleife bevor es an $content angehangen wird.
Benutzeravatar
powdermaniac.de
Beiträge: 46
Registriert: 06.05.2008, 15:59
Kontaktdaten:

Beitrag von powdermaniac.de »

ich könnte ja auch am schluss noch abfragen, ob das letzte zeichen ein separator ist und das dann weglassen?
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

Wenn das erste Feld beim ersten Schleifendurchlauf leer ist, dann kommt es zu Problemen in meiner Variante, davon gehe ich natürlich nicht aus. :)

Bei deiner Variante ist dann am Ende eine Spalte mehr weil der $Separator immer ans Ende geschrieben wird. Richtig ist der Export damit nur, wenn du auch oben im Script bei der Kopfzeile einen zusätzlichen $Separator ans Ende der Zeile schreibst. SuperMailer selbst macht der zusätzliche Separator nichts, weil intern eine Prüfung eingebaut ist ob die definierten Spalten mit den Daten übereinstimmen. Stimmt es nicht überein, dann wird die Spalte ignoriert. Andere Programme könnten Probleme bekommen, weil ein Pufferüberlauf (der greift ins nichts) entstehen könnte.
Benutzeravatar
powdermaniac.de
Beiträge: 46
Registriert: 06.05.2008, 15:59
Kontaktdaten:

Beitrag von powdermaniac.de »

beim import über mysqlexport.php aus der mysql db verschieben sich die felder der datensätze, die das erste feld nicht gefüllt haben um eben dieses nach vorne.

ich habe leider nicht im ansatz eine idee, woran es liegen kann.

nur das email feld (nicht das erste) ist auf not_null gesetzt. hat es damit etwas zu tun?

Code: Alles auswählen

while ($row = mysql_fetch_row($result)) {
    $line="";
    for ($i=0; $i<count($row); $i++) {
       if ($line != "")
          $line = $line.$Separator.$row[$i];
          else
          $line = $row[$i];
    }
    $content .= $line.$CRLF;
 }
hier wird ja erst in die bedingung gesprungen, wenn $line NICHT leer ist. beim ersten mal ist $line eh leer. kommt dann aber noch das leere feld dazu wird der separator nicht geschrieben.

hab ich das richtig verstanden?

habe jetzte folgende Änderungen durchgeführt:

Code: Alles auswählen

while ($row = mysql_fetch_row($result)) {
    $line="";
    for ($i=0; $i<count($row); $i++) {
       if ($line != "")
******************************
$line = $line.$row[$i].$Separator;
else 
$line = $row[$i].$Separator;
******************************
    }
    $content .= $line.$CRLF;
 }

Damit wird der Separator hinter die Felder geschrieben und so ist $line nur beim ersten mal leer. Nicht auch, wenn das erste Feld leer ist.

Auf den ersten Blick hat\'s jetzt so geklappt.

Könntest du bitte mal schauen, ob ich jetzt evtl. andere Probleme hervorrufen könnte.

Danke.
Zuletzt geändert von powdermaniac.de am 10.06.2008, 14:34, insgesamt 8-mal geändert.
Antworten