Pagina 1 van 1

Nieuwe admin page

Geplaatst: 10 jan 2007, 15:14
door Drekslet
Yo,

Ik heb een extra admin page gemaakt zodat mensen (admins) nieuws berichten kunnen toevoegen op de main site. Die page toevoegen lukt allemaal wel maar nu ben ik bezig met de scripts voor de pagina zelf:

Hier Code:

Code: Selecteer alles

<?php
define('IN_PHPBB', 1); 

if( !empty($setmodules) ) 
{ 
   $filename = basename(__FILE__); 
   $module['Site']['Add_news'] = $filename; 

   return; 
}

// 
// Load default header 
// 

$phpbb_root_path = "./../";
require($phpbb_root_path . 'extension.inc');
require('./pagestart.' . $phpEx);
include($phpbb_root_path . 'includes/functions_admin.'.$phpEx);

switch($mode) {
		case 'delete':
			if( isset($HTTP_GET_VARS['id']) ) {
			$sql = "DELETE FROM News WHERE ID='". intval($HTTP_GET_VARS['id'])  ."' LIMIT 1";
			}
			
			if( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, "Failed to delete news message", "", __LINE__, __FILE__, $sql);
			}	
			break;
}

		if( $HTTP_POST_VARS['submit'] ) {

		if(($HTTP_POST_VARS['form_title']) AND ($HTTP_POST_VARS['form_message'])) {
			
			$date = date("d-m");
			$message = stripslashes(trim($HTTP_POST_VARS['message']));
			$news_title = stripslashes(trim($HTTP_POST_VARS['news_title']));
			
			$sql = "INSERT INTO News (title, message, user, date) VALUES ('" . str_replace("\'", "''", $news_title) . "','" . str_replace("\'", "''", $message) . "','" . str_replace("\'", "''", $form_user) . "','" . str_replace("\'", "''", $date) . "')";
			
			if ( !($result = $db->sql_query($sql, BEGIN_TRANSACTION)) )
			{
				message_die(GENERAL_ERROR, 'Failed to insert news message', '', __LINE__, __FILE__, $sql);
			}
			
//			if( isset($HTTP_POST_VARS['submit']) )
//			{
//			$message = $lang['Config_updated'] . "<br /><br />" . sprintf($lang['Click_return_config'], "<a href=\"" . append_sid("admin_add_news.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
//
//			message_die(GENERAL_MESSAGE, $message);
//			}
			
		} else {
		
		message_die(GENERAL_ERROR, "Failed to insert news message", "", __LINE__, __FILE__, $sql);
		
		}
		
		}

$template->set_filenames(array(
	'body' => 'admin/news_add.tpl')
);

$template->assign_vars(array(
	'S_FORUM_ACTION' => append_sid("admin_add_news.$phpEx"),
	'L_NEWS_TITLE' => $lang['News_admin'], 
	'L_NEWS_EXPLAIN' => $lang['News_admin_explain'], 
	'L_DELETE' => $lang['Delete'],
	'L_NEWS_TITLE' => $lang['News_title'],
	'L_NEWS_MESSAGE' => $lang['News_message'],
	'S_SUBMIT_VALUE' => $lang['Submit'],
	
	'MESSAGE' => $message,
	'NEWS_TITLE' => $news_title)
);

$template->pparse('body');

include('./page_footer_admin.'.$phpEx);


?>
Hij werkt alleen niet, ik zie alles wel helemaal goed enzo maar als ik op submit druk zonder iets in te vullen krijg ik

Code: Selecteer alles

Failed to insert news message

DEBUG MODE

SELECT * FROM Forum_config

Line : 58
File : admin_add_news.php
en als ik gewoon alles invul dan gebeurd er helemaal niks :?
Ziet iemand wat ik vergeten ben, of wat ik fout heb gedaan ?


Greetz

Dré

Geplaatst: 10 jan 2007, 18:06
door Bee
Bouw een check in dat de query niet wordt uitgevoerd als de lengte van het nieuwsbericht 0 is.

Moet dit trouwens niet in MOD Ontwikkeling?

Geplaatst: 10 jan 2007, 18:08
door Drekslet
Wat bedoel je met de lengte van het nieuwsbericht 0 als ik vragen mag :roll:

En owja oops verkeerde forum staan, als een moderator zo vriendelijk zou willen zijn dit topicje even te verplaatsen :bier:

Geplaatst: 10 jan 2007, 18:10
door Bee
Dat de tekenlengte van het nieuwsbericht dus 0 of niets of '' is.

Geplaatst: 10 jan 2007, 18:11
door Drekslet
Maar dat heb ik toch ? :?

Code: Selecteer alles

if(($HTTP_POST_VARS['form_title']) AND ($HTTP_POST_VARS['form_message'])) { 
of bedoel je soms wat anders ?

Geplaatst: 10 jan 2007, 18:13
door Bee
Die velden worden bij een formulier toch ook verzonden als er niets in staat, of niet soms :wink: Dat is dus niet voldoende.

Geplaatst: 10 jan 2007, 18:14
door Drekslet
Ow je bedoelt

Code: Selecteer alles

$message = '';
$news_title = '';

Geplaatst: 10 jan 2007, 18:15
door Bee
maar dan in een if-constructie.

Geplaatst: 10 jan 2007, 18:16
door Drekslet
maar ik zie eigelijk het nut er nog niet van in, wat doet dat dan precies ? :?:

Geplaatst: 10 jan 2007, 18:17
door Bee
Alleen de code uitvoeren als het veld niet leeg is misschien?

Alleen gebruiken we dan niet = maar !=.

Geplaatst: 10 jan 2007, 18:19
door Drekslet
maar dan zou dit toch precies hetzelfde moeten doen

Code: Selecteer alles

if(($HTTP_POST_VARS['form_title']) AND ($HTTP_POST_VARS['form_message'])) {

Geplaatst: 10 jan 2007, 18:19
door Bee
Dat heb ik net toch uitgelegd? Een formulierveld wordt altijd opgestuurd, ook als het leeg is.

Geplaatst: 10 jan 2007, 18:22
door Drekslet
ow verrek ik snap hem,, dus het moet zijn

Code: Selecteer alles

if(($HTTP_POST_VARS['form_title'] != '') AND ($HTTP_POST_VARS['form_message'] != '')) {
als dit fout is snap ik er dus helemaal niks van