Seite 1 von 1
Quiz Mod / Yellow Card Problem
Verfasst: 27.03.2005 14:05
von Supersonic
Hab den Quiz mod installiert. Wenn man die Frage beantworten will und den "Go"-Button drückt, kommt folgende Fehlermeldung:
No user/post specified
DEBUG MODE
post_id="", user_id=""
Line : 85
File : card.php
Wenn man auf "Antwort erstellem" drückt und die Antwort auswählt klappt alles einwandfrei....
Hier noch die Zeilen aus der "card.php"
Code: Alles auswählen
if ( !( $post_id + $user_id ) )
message_die(GENERAL_ERROR, "No user/post specified", "", __LINE__, __FILE__,'post_id="'.$post_id.'", user_id="'.$user_id.'"');
if ( empty($mode) )
message_die(GENERAL_ERROR, "No action specified", "", __LINE__, __FILE__,'mode="'.$mode.'"');
Verfasst: 28.03.2005 15:14
von Supersonic
*schieb*
Verfasst: 28.03.2005 15:28
von chris478
Da wird wohl $post_id und $user_id nicht übergeben
Post uns mal die Function
Gruss
---chris
Verfasst: 28.03.2005 16:20
von Supersonic
Aber gern
posting_body.tpl
Code: Alles auswählen
<script>
function checkForm() {
formErrors = false;
if (document.post.message.value.length < 2) {
formErrors = "You must enter a message when posting";
}
<!-- BEGIN switch_quiz_answer_js -->
{switch_quiz_answer_js.JS}
<!-- END switch_quiz_answer_js -->
if (formErrors) {
alert(formErrors);
return false;
} else {
//formObj.preview.disabled = true;
//formObj.submit.disabled = true;
return true;
}
}
</script>
EDIT
und hier noch die Stelle aus der quiz.php (ich denke, daß diese Stelle dafür verantwortlich ist)
includes/quiz.php
Code: Alles auswählen
//
// This function generate the quiz answer box
//
function generate_answer_box($topic_id, $user_id, $value)
{
global $db;
$sql = "SELECT quiz_type, answer, answer2, answer3, answer4
FROM " . QUIZ_TABLE . "
WHERE quiz_topic_id = '$topic_id'";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not select quiz', '', __LINE__, __FILE__, $sql);
}
if ( !($row = $db->sql_fetchrow($result)) )
{
message_die(GENERAL_ERROR, 'Quiz question doesn\' t exist.');
}
if ( $row['quiz_type'] > 0 )
{
$return = '<select tabindex="4" name="answer">';
$return .= '<option value="">-</option>';
for ($i = 1; $i <= 4; $i++)
{
$answer = $row['answer' . ( $i == 1 ? '' : $i )];
$answer = preg_replace('#\[img:' . $this->bbcode_uid . '\].*?\[\/img:' . $this->bbcode_uid . '\]#', ' ', $answer);
$answer = preg_replace('#\[\/?url(=.*?)?\]#', ' ', $answer);
$answer = preg_replace('#\[\/?[a-z\*=\+\-]+(\:?[0-9a-z]+)?:' . $this->bbcode_uid . '(\:[a-z0-9]+)?=?.*?\]#', ' ', $answer);
$selected = ( $i == $value ) ? ' selected="selected"' : '';
$return .='<option value="' . $i . '"' . $selected . '>' . $this->quiz4_chars[$i - 1] . ') ' . $answer . '</option>';
}
$return .= '</selected>';
$js = 'if ( formErrors && document.post.answer.selectedIndex > 0 ) formErrors = false;';
}
else
{
$return = '<input type="text" name="answer" tabindex="4" value="' . $value . '" size="25" maxlenght="100" />';
$js = 'if ( formErrors && document.post.answer.value.length != 0 ) formErrors = false;';
}
return array($return, $js);
}
und aus
posting.php
Code: Alles auswählen
// BEGIN Quiz Hack
if ( $auth_answer )
{
list($answer_field, $js) = $quiz->generate_answer_box($topic_id, $userdata['user_id'], $answer);
$template->assign_block_vars('switch_quiz_answer', array(
'L_ANSWER' => $lang['Answer'],
'ANSWER' => $answer_field)
);
$template->assign_block_vars('switch_quiz_answer_js', array(
'JS' => $js)
);
}
// END Quiz Hack
Verfasst: 29.03.2005 11:55
von chris478
äh..der fehler tritt doch in der card.php auf
post uns halt die function wo die entsprechende Fehlermeldung herkommt
Line : 85
File : card.php
Verfasst: 29.03.2005 12:04
von Supersonic
Stehen doch im ersten Post....
Zeile 80-87 card.php
Code: Alles auswählen
$post_id = ( isset($HTTP_POST_VARS['post_id']) ) ? intval ($HTTP_POST_VARS['post_id']) : '';
$user_id = ( isset($HTTP_POST_VARS[POST_USERS_URL]) ) ? intval ($HTTP_POST_VARS[POST_USERS_URL]) : '';
// check that we have all what is needed to know
if ( !( $post_id + $user_id ) )
message_die(GENERAL_ERROR, "No user/post specified", "", __LINE__, __FILE__,'post_id="'.$post_id.'", user_id="'.$user_id.'"');
if ( empty($mode) )
message_die(GENERAL_ERROR, "No action specified", "", __LINE__, __FILE__,'mode="'.$mode.'"');
EDIT:
Zeile 80-83 hinzugefügt...
Verfasst: 30.03.2005 15:40
von Supersonic
*schieb*
Verfasst: 31.03.2005 16:35
von Supersonic
und nochmal *schieb*
Verfasst: 31.03.2005 22:25
von Supersonic
Konnte den Fehler etwas analysieren. Beim Klick auf den "GO" Button wird die card.php aufgerufen. (domainname/card.php) Wenn man die card.php direkt aufruft, kommt dieser Fehler zustande.
Aber warum wird die card.php überhaupt aufgerufen?
Das Script wird wohl hier generiert:
posting.php
Code: Alles auswählen
// BEGIN Quiz Hack
if ( $auth_answer )
{
list($answer_field, $js) = $quiz->generate_answer_box($topic_id, $userdata['user_id'], $answer);
$template->assign_block_vars('switch_quiz_answer', array(
'L_ANSWER' => $lang['Answer'],
'ANSWER' => $answer_field)
);
$template->assign_block_vars('switch_quiz_answer_js', array(
'JS' => $js)
);
}
// END Quiz Hack
und das ist die Submit-Funktion aus der
templates/quiz.tpl
Code: Alles auswählen
<!-- BEGIN quiz -->
<table align="center" cellpadding="3" cellspacing="1" border="0" class="forumline">
<tr>
<td class="row1"> <span class="gen">{L_QUESTION}:</span> </td>
<td class="row1"> <span class="gen">{QUESTION}</span> </td>
</tr>
<tr>
<td class="row2"> <span class="gen">{L_ANSWER}:</span> </td>
<td class="row2"><form method="POST" action="{S_ACTION}">
<input type="text" size="30" maxlenght="100" name="answer" /> </td>
</td>
</tr>
<tr>
<td colspan="2" align="center" class="catBottom">
<input type="submit" value="{L_GO}" class="mainoption">
</td>
</tr>
</table></form><br clear="all" />
<!-- END quiz -->