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 -->