Seite 1 von 1

Error beim Form Mod

Verfasst: 17.10.2008 02:51
von eddiz41
Hi!

Ich bräuchte mal wieder etwas Hilfe von euch...

Ich habe mir den 'Form to post/poll/pm/email' Mod von The_1_U_Fear versucht einzubauen. Er sollte als Mailer dienen, der eben bestimmte Angaben in der Form an eine E-Mail Adresse verschickt. Das klappt soweit auch alles, denn die E-Mail mit den Angaben kommt an. Aber sobald der User auf Submit klickt, kriegt er folgende Error-Meldung...

Code: Alles auswählen

Error in posting

DEBUG MODE

INSERT INTO phpbb_posts_text (post_id, post_subject, bbcode_uid, post_text) VALUES (5, '', '', 'Your post message here Klaus Meier can contain spaces and enter's')

Line : 168
File : form_submit.php
Hat jemand eine Idee, warum die Fehlermeldung kommt? Wie gesagt, der Vorgang läuft ansonsten reibungslos und die E-Mail geht auch raus.

Die Line 168 ind der form_submit enthält übrings nur den Hinweis auf die Fehlermeldung...

Code: Alles auswählen

message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
Ich bin echt ratlos...
Gruß

eddiz41

Re: Error beim Form Mod

Verfasst: 17.10.2008 06:45
von StarWolf3000

Code: Alles auswählen

Error in posting

DEBUG MODE

INSERT INTO phpbb_posts_text (post_id, post_subject, bbcode_uid, post_text) VALUES (5, '', '', 'Your post message here Klaus Meier can contain spaces and enter's')

Line : 168
File : form_submit.php
Das Problem in der Fehlermeldung ist dieser Abschnitt hier:

Code: Alles auswählen

'Your post message here Klaus Meier can contain spaces and enter's'
Der MOD ist nicht sauber programmiert worden, eigentlich müssten ' ' mit \ maskiert werden innerhalb von Texten. Der MOD müsste normalerweise 'Your post message here Klaus Meier can contain spaces and enter\'s' in die Datenbank eintragen. Da er aber ' ' als String-Limiter einsetzt, müssen sie maskiert werden.

Verfasst: 17.10.2008 10:27
von eddiz41
Ähhhhh... ok....

Sorry, ich bin in PHP-Programmierung nicht so firm. Kann eigentlich nur Mods einbauen. Was muss ich also jetzt tun, damit die Fehlermeldung verschwindet?

Liegt das Problem hier in diesem Block der form_submit.php?

Code: Alles auswählen

// Details
$op1 = $_POST["op1"];
$op2 = $_POST["op2"];
$op3 = $_POST["op3"];
$op4 = $_POST["op4"];
$op5 = $_POST["op5"];
$op6 = $_POST["op6"];
$op7 = $_POST["op7"];
$email = $_POST["email"];
//enter the email message here, can contain spaces and <Enter> as long as it is between the " " 
//anytime you want to use a variable, enter it as $op1 or whatever where you want to use it
$message ="$op1, $op2, $op3, $op4, $op5, $op6, $op7";
//Message for the post here, can contain spaces and <Enter> as long as it is between the " "
$post_message = "Your post message here
$op1   $op2   can contain spaces and enter's";
$current_time = time();

Verfasst: 17.10.2008 10:59
von Dungeonwatcher
eddiz41 hat geschrieben:Was muss ich also jetzt tun, damit die Fehlermeldung verschwindet?
Ersetze diese Zeile:

Code: Alles auswählen

$op1   $op2   can contain spaces and enter's";
durch diese:

Code: Alles auswählen

$op1   $op2   can contain spaces and enter\'s";

Verfasst: 17.10.2008 11:05
von StarWolf3000
Der MOD bietet total viele Sicherheitslücken, folgende Änderungen sollten ihn aber etwas sicherer machen.

Öffne /form_submit.php

Suche:

Code: Alles auswählen

// Details
$op1 = $_POST["op1"];
$op2 = $_POST["op2"];
$op3 = $_POST["op3"];
$op4 = $_POST["op4"];
$op5 = $_POST["op5"];
$op6 = $_POST["op6"];
$email = $_POST["email"];
Ersetze durch:

Code: Alles auswählen

// Details
$op1 = htmlspecialchars(addslashes($HTTP_POST_VARS["op1"]));
$op2 = htmlspecialchars(addslashes($HTTP_POST_VARS["op2"]));
$op3 = htmlspecialchars(addslashes($HTTP_POST_VARS["op3"]));
$op4 = htmlspecialchars(addslashes($HTTP_POST_VARS["op4"]));
$op5 = htmlspecialchars(addslashes($HTTP_POST_VARS["op5"]));
$op6 = htmlspecialchars(addslashes($HTTP_POST_VARS["op6"]));
$email = htmlspecialchars(addslashes($HTTP_POST_VARS["email"]));

Verfasst: 17.10.2008 21:22
von eddiz41
Hat geklappt! ;)

Vielen, vielen Dank nochmal für deine Hilfe!

LG
(und closed)