Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Newsletter Script funktioniert aufeinmal nicht mehr (https://www.delphipraxis.net/94399-%5Bphp%5D-newsletter-script-funktioniert-aufeinmal-nicht-mehr.html)

Luckie 20. Jun 2007 23:33


[PHP] Newsletter Script funktioniert aufeinmal nicht mehr
 
Ich musste gerade festellen, dass mein Newsletterskript nicht mehr richtig funktioniert. Die Mails werden zwar korrekt verschickt, aber das Eintragen in die DB schlägt ohne Fehlermeldung fehl:

Code:
      $_REQUEST['news_text'] = stripcslashes(htmlspecialchars($_REQUEST['news_text']));
      
      echo $_REQUEST['news_text'];
      
      $sql = "INSERT INTO `{$m_präfix}archiv` (`format`, `header`, `subject`, `text`, `an`, `timestamp`) VALUES ('$format2', '$header', '$_REQUEST[news_betreff]', '$_REQUEST[news_text]', '$send^$rows', '$time')";

      mysql_query($sql);   
      
      @mysql_close();
Das Öffnen funktioniert, er liest ja die Adressen aus der DB. Aber warum schreibt er nicht rein? Mein Forum, welches die selbe Datenbank benutzt funktioniert ohne Probleme. Das einzige, wa sich jetzt mal gemacht habe, war dass ich Newsletter aus der DB löschen musste, weil sie doppelt drinne waren. Jetzt ist in den IDs (autoinkrement) natürlich eine Lücke, könnte das die Ursache sein, warum das Skript nicht mehr korrekt funktioniert?

Hat sich geklärt in der Mail waren ' drinne, die mochte ds Query wohl nicht. :(

Basilikum 21. Jun 2007 06:48

Re: [PHP] Newsletter Script funktioniert aufeinmal nicht meh
 
Zitat:

Zitat von Luckie
Code:
      $_REQUEST['news_text'] = stripcslashes(htmlspecialchars($_REQUEST['news_text']));
      
      echo $_REQUEST['news_text'];
      
      $sql = "INSERT INTO `{$m_präfix}archiv` (`format`, `header`, `subject`, `text`, `an`, `timestamp`) VALUES ('$format2', '$header', '$_REQUEST[news_betreff]', '$_REQUEST[news_text]', '$send^$rows', '$time')";

      mysql_query($sql);   
      
      @mysql_close();

huch, da sind ja die Türen weit offen für Angriffe - man sollte NIE Werte vom Client ($_REQUEST) direkt als String in eine SQL-Query einbauen. Ich würde unbedingt die Strings mit mysql_escape_string escapen - dann hättest du nämlich auch kein Problem, wenn Mails ' enthalten.

Luckie 21. Jun 2007 09:07

Re: [PHP] Newsletter Script funktioniert aufeinmal nicht meh
 
Nun ja, das Script ist nicht von mir. Un dich habe mit Mühe und Not die Stelle gefunden, wo die Mails abgeschickt werden und in die DB eingetragen werden. Aber an das Administartoreninterface komme sowieso nur ich dran. Ich denke mal da besteht keine so große Gefahr.

Würde das dann so aussehen:
Code:
$betreff = mysql_escape_string($_REQUEST['news_betreff']);
$text = mysql_escape_string($_REQUEST['news_text']);

$sql = "INSERT INTO `{$m_präfix}archiv` (`format`, `header`, `subject`, `text`, `an`, `timestamp`) VALUES ('$format2', '$header', '$betreff', '$text', '$send^$rows', '$time')";

mkinzler 21. Jun 2007 09:09

Re: [PHP] Newsletter Script funktioniert aufeinmal nicht meh
 
Es ist nur die Frage, ob im öffentlich zugänglichen Skripten ähnliche SQL-Injection-Lücken bestehen.

Luckie 21. Jun 2007 09:11

Re: [PHP] Newsletter Script funktioniert aufeinmal nicht meh
 
Öffentlich zugänglich ist nur die An- und Abmeldung. Aber da wird die Gültigkeit der Mail-Adresse überprüft, wenn ich das gestern richtig gesehen habe.

Daniel 21. Jun 2007 09:19

Re: [PHP] Newsletter Script funktioniert aufeinmal nicht meh
 
Der in meinen Augen wichtige nächste Schritt besteht darin, herauszubekommen, woran es genau hakt. Lasse Dir doch mal den Fehler auswerfen. Folgendes Beispiel habe ich von http://de.php.net/mysql_query:

Code:
<?php
$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
    die('Ungültige Abfrage: ' . mysql_error());
}
?>
Mit hoher Wahrscheinlichkeit wird die Ausgabe der Funktion mysql_error() Aufschluss über die Fehlerursache geben. Eine Lücke in den Auto-IDs sollte kein Problem darstellen - es sei denn, ein Script fummelt da noch zwischen rein. Aber das werden wir dann sehen.

Luckie 21. Jun 2007 09:26

Re: [PHP] Newsletter Script funktioniert aufeinmal nicht meh
 
Jupp, aber das hat erstmal geringere Priorität.

alcaeus 21. Jun 2007 09:35

Re: [PHP] Newsletter Script funktioniert aufeinmal nicht meh
 
Zitat:

Zitat von Luckie
Code:
$_REQUEST['news_text'] = strip[color=red][s]c[/s][/color]slashes(htmlspecialchars($_REQUEST['news_text']));

Wenn das error_reporting auf niedrige Werte gesetzt ist, oder show_errors auf off ist, bricht das Script an dieser Stelle ohne Fehlermeldung ab ;)

Greetz
alcaeus

Daniel 21. Jun 2007 09:39

Re: [PHP] Newsletter Script funktioniert aufeinmal nicht meh
 
Warum? "stripcslashes" ist eine reguläre Funktion in PHP 4 und 5.

alcaeus 21. Jun 2007 09:44

Re: [PHP] Newsletter Script funktioniert aufeinmal nicht meh
 
:oops:

Bin schon still :duck:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz