MyBB.de Forum
Formular in Beitrag - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Sonstiges (https://www.mybb.de/forum/forum-1.html)
+--- Forum: Programmierung (https://www.mybb.de/forum/forum-32.html)
+--- Thema: Formular in Beitrag (/thread-20204.html)

Seiten: Seiten: 1 2


RE: Formular in Beitrag - naaney - 17.02.2008

k, das war der 1. Versuch:

Zitat:<?php
define("KILL_GLOBALS", 1);
define("IN_MYBB", 1);
//define("NO_ONLINE", 1); // Wenn Seite nicht in Wer ist online-Liste auftauchen soll

require("global.php");
require_once MYBB_ROOT."inc/datahandlers/post.php";
$posthandler = new PostDataHandler("insert");
$posthandler->action = "thread";
$posthandler->admin_override = true; // Optional, ich habe es lieber drin ^^

$uid = $mybb->user[uid];
$username = $mybb->user[username];
$fid = 2; // Forum in das der Thread gepostet werden soll
$message = $db->escape_string($_POST[message]);
$subject = "Formular von ".$username;

$new_thread = array(
"fid" => $fid,
"subject" => $subject,
"uid" => $uid,
"username" => $username,
"message" => $message,
"ipaddress" => get_ip(),
);

$posthandler->set_data($new_thread);
$validate = $posthandler->validate_thread();
if ($validate)
{
$tinfo = $posthandler->insert_thread();
$tid = $tinfo[tid];
redirect("showthread.php?tid=$tid");
}
else
{
error("Es ist ein Fehler w&auml;hrend der Threaderstellung aufgetreten");
}


add_breadcrumb("Suchanfrage");

eval("\$Suchanfrage .= \"".$templates->get("Suchanfrage")."\";"); // Hier wird das erstellte Template geladen
output_page($Suchanfrage);
?>



RE: Formular in Beitrag - StefanT - 17.02.2008

Ersetze:
PHP-Code:
$new_thread = array(
"fid" => $fid,
"subject" => $subject,
"uid" => $uid,
"username" => $username,
"message" => $message,
"ipaddress" => get_ip(),
); 
durch:
PHP-Code:
$new_thread = array(
"fid" => $fid,
"subject" => $subject,
"uid" => $uid,
"username" => $username,
"message" => $message,
"ipaddress" => get_ip(),
"options" => array()
); 



RE: Formular in Beitrag - naaney - 17.02.2008

Gut, die Fehlermeldung ist weg, allerdings kommt immer noch diese Forenmeldung:

Zitat:Es ist ein Fehler während der Threaderstellung aufgetreten

Was ist nun noch falsch? Habt ihr eine Idee?


RE: Formular in Beitrag - XxAnimusxX - 17.02.2008

PHP-Code:
$validate $posthandler->validate_thread();
if (
$validate)
{
$tinfo $posthandler->insert_thread();
$tid $tinfo[tid];
redirect("showthread.php?tid=$tid");
}
else
{
error("Es ist ein Fehler w&auml;hrend der Threaderstellung aufgetreten");

Scheint als würde der Posthandler den Thread nicht mögen, bzw die Validierung der Postdaten schlug fehl.
Bist du dir sicher ob auch alle benötigten Daten des $new_thread-Arrays vorhanden sind? Die Validierung wird die Daten auf die uid, die message und andere Werte überprüfen, wenn eines davon nicht richtig vorhanden oder definiert ist, gibts nen Fehler.

Wenn du genau wissen möchtest was fehl gelaufen ist, ersetze den error-Code im obigen Quelltext mit folgendem:
PHP-Code:
$post_errors $posthandler->get_friendly_errors();print_r($post_errors); 
sieht zwar nicht allzu schön aus, geht aber schneller :b


RE: Formular in Beitrag - naaney - 17.02.2008

Hmmm, kA, was du jetzt genau meinst, aber wenn ich den code ändere, kommt folgende Fehlermeldung:

Zitat:Array ( [0] => Die Nachricht fehlt. Bitte gib eine Nachricht ein. )

Ich habe alle Felder des Formulars ausgefüllt.


RE: Formular in Beitrag - XxAnimusxX - 17.02.2008

Das hatte ich mir schon gedacht, bist du dir denn sicher ob due Variable $message auch einen Wert enthält?
Nach deinem Quelltext kann es keine Message geben, da kein Formularelement "name = 'message'" definiert wurde.

Ich verstehe aber nicht welcher Code zu welcher Datei gehört.
Wäre es möglich die Dateien aufzulisten, die du benutzt?
Denn nach deinem Formular muss die "Suchanfrage.php" den Code des Posthandler beinhalten, die Message müsstest du in diesem Fall selbst generieren.

PHP-Code:
$message $db->escape_string($_POST[message]); 
PHP-Code:
$fname $db->escape_string($_POST[Familienname]);
$vname $db->escape_string($_POST[Vorname]);
$bday $db->escape_string($_POST[Geburtstag]);
// undsoweiter
$message "Ein neuer Thread wurde erstellt.\n\nName = $vname $fname \nGeburtstag = $bday"

/edit: Der Eintrag "Geburtstag" hat gefehlt, weil ich oben bei $_POST[Geburtstage) geschrieben hatte Smile


RE: Formular in Beitrag - naaney - 17.02.2008

Jupp, funzt, haut noch nicht alles so hin (beim Geburtstag fehlt zB der Eintrag), aber ich denke (hoffe Big Grin) den Rest schaff ich alleine. Vielen vielen Dank für deine Geduld und Hilfe. Klasse Team hier.
Sorry, nächstes Problem: immer, wenn ich jetzt auf den Link für das Suchformular klicke, werde ich ins Forum zum Thread weitergeleitet. :question::question: