Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #11  
Old 10-30-2008, 08:17 AM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I am not interested in what you expect the value to be, but in the real value. You can use a vardump or echo to list the value.

If you are using query_first then you should not have te message that it is a resource id.
Reply With Quote
  #12  
Old 10-30-2008, 09:10 AM
jfk1 jfk1 is offline
 
Join Date: Mar 2008
Posts: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Marco van Herwaarden View Post
I am not interested in what you expect the value to be, but in the real value. You can use a vardump or echo to list the value.

If you are using query_first then you should not have te message that it is a resource id.
well, i finally got a working piece of code! (curtesy of PHPbuilder.com). perhaps when u see my code, u will see how simple my question was in the first place. probably my fault, making it appear complicated.
Code:
//jfk
$forum_name="$pagetitle";

$query=("SELECT forumid FROM " . TABLE_PREFIX . "forum WHERE title='$forum_name'");
$result=mysql_query($query);
if( mysql_num_rows ($result)) //if it has a match from the database/table
{
$row=mysql_fetch_assoc($result);  //lets get that matched row's id, and create a link
$forum_link="<a href=\"/forums/forumdisplay.php?f=".$row["forumid"]."\">$forum_name&nbspForum</a>";
}
//end jfk
i now use the $var "$forum_link" whereever i want the link to appear. this is my hacked version of the code, perhaps u could suggest some tidying that would be more consistent with vbull?
Reply With Quote
  #13  
Old 10-30-2008, 09:20 AM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Not wrong, but not using teh vB coding standards and functions. Also, unless there is more code, you are not cleaning $forum_name before using it in a query, opening your board to SQL-Injections.

The "correct" vB way to do this:

PHP Code:
$forum_name="$pagetitle"// <-- This need to be cleaned before using it in a query!!!!
$row $db->query_first("SELECT forumid FROM " TABLE_PREFIX "forum WHERE title='$forum_name' LIMIT 1");
$forum_link="<a href=\"/forums/forumdisplay.php?f=".$row["forumid"]."\">$forum_name&nbspForum</a>"
Reply With Quote
  #14  
Old 10-30-2008, 09:40 AM
Dismounted's Avatar
Dismounted Dismounted is offline
 
Join Date: Jun 2005
Location: Melbourne, Australia
Posts: 15,047
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Not really following vB Coding Standards there either, Marco .
PHP Code:
// "Comments should precede the code they describe, rather than following it."

// "Variables should not be quoted if they do not need to be."
$forum_name $pagetitle;

// Not necessary to separate into newlines if not long, but it looks better aesthetically.
$row $db->query_first("
    SELECT forumid
    FROM " 
TABLE_PREFIX "forum
    WHERE title = 
$forum_name
    LIMIT 1
"
);

// "Strings should be quoted with single quotes if they contain no variables or control characters, otherwise use double quotes."
// "The choice between using string evaluations or string additions is yours to make, depending upon the circumstances."
// "Array keys should be quoted if they are strings or variables, even if you know that the variable evaluates to an integer. Quoting should follow the same rules as defined for string quoting."
$forum_link '<a href="/forums/forumdisplay.php?f=' $row['forumid'] . '">' $forum_name '&nbspForum</a>';

// This is also OK
$forum_link "<a href=\"/forums/forumdisplay.php?f=$row[forumid]\">$forum_name&nbspForum</a>"
Reply With Quote
  #15  
Old 10-30-2008, 10:53 AM
jfk1 jfk1 is offline
 
Join Date: Mar 2008
Posts: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

oh! i started a fight! (just kidding)
it is very nice to have TWO distinguished coders helping me with my little problem!
i will study comments re quotes very carefully, as i know from experince how important those little jobbies can be!

--------------- Added [DATE]1225368751[/DATE] at [TIME]1225368751[/TIME] ---------------

with regard to "cleaning" $pagetitle. i am dropping this piece into an existing script, in which $pagetitle is preset... can i not assume that this is var is clean? this will not be introduced as an $input... or from a form etc...

--------------- Added [DATE]1225370809[/DATE] at [TIME]1225370809[/TIME] ---------------

Quote:
Originally Posted by Dismounted View Post
Not really following vB Coding Standards there either, Marco .
PHP Code:
// "Comments should precede the code they describe, rather than following it."

// "Variables should not be quoted if they do not need to be."
$forum_name $pagetitle;

// Not necessary to separate into newlines if not long, but it looks better aesthetically.
$row $db->query_first("
    SELECT forumid
    FROM " 
TABLE_PREFIX "forum
    WHERE title = 
$forum_name
    LIMIT 1
"
);

// "Strings should be quoted with single quotes if they contain no variables or control characters, otherwise use double quotes."
// "The choice between using string evaluations or string additions is yours to make, depending upon the circumstances."
// "Array keys should be quoted if they are strings or variables, even if you know that the variable evaluates to an integer. Quoting should follow the same rules as defined for string quoting."
$forum_link '<a href="/forums/forumdisplay.php?f=' $row['forumid'] . '">' $forum_name '&nbspForum</a>';

// This is also OK
$forum_link "<a href=\"/forums/forumdisplay.php?f=$row[forumid]\">$forum_name&nbspForum</a>"
hmmm... this code produces "database error" without single quotes round $forum_name in the query

--------------- Added [DATE]1225371729[/DATE] at [TIME]1225371729[/TIME] ---------------

could i ask another question please?
this code (immediately above) doesnt have an "if" condition in it, as i previously had.... does this matter? what would happen it the query fails (no match in the db)?
Reply With Quote
  #16  
Old 10-31-2008, 05:54 AM
Dismounted's Avatar
Dismounted Dismounted is offline
 
Join Date: Jun 2005
Location: Melbourne, Australia
Posts: 15,047
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by jfk1 View Post
hmmm... this code produces "database error" without single quotes round $forum_name in the query
Overlooked that, sorry .
Quote:
Originally Posted by jfk1 View Post
could i ask another question please?
this code (immediately above) doesnt have an "if" condition in it, as i previously had.... does this matter? what would happen it the query fails (no match in the db)?
I only corrected Marco's code, but yes, you should check the data exists.
PHP Code:
// "Comments should precede the code they describe, rather than following it."

// "Variables should not be quoted if they do not need to be."
$forum_name $pagetitle;

// Not necessary to separate into newlines if not long, but it looks better aesthetically.
$row $db->query_first("
    SELECT forumid
    FROM " 
TABLE_PREFIX "forum
    WHERE title = '
$forum_name'
    LIMIT 1
"
);

if (!empty(
$row))
{
    
// "Strings should be quoted with single quotes if they contain no variables or control characters, otherwise use double quotes."
    // "The choice between using string evaluations or string additions is yours to make, depending upon the circumstances."
    // "Array keys should be quoted if they are strings or variables, even if you know that the variable evaluates to an integer. Quoting should follow the same rules as defined for string quoting."
    
$forum_link '<a href="/forums/forumdisplay.php?f=' $row['forumid'] . '">' $forum_name '&nbspForum</a>';

    
// This is also OK
    
$forum_link "<a href=\"/forums/forumdisplay.php?f=$row[forumid]\">$forum_name&nbspForum</a>";

Reply With Quote
  #17  
Old 10-31-2008, 10:35 AM
jfk1 jfk1 is offline
 
Join Date: Mar 2008
Posts: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

thanx for reply (and amendment). could u comment on "cleaning" $pagetitle. am i correct in my assumption?
Reply With Quote
  #18  
Old 11-06-2008, 12:17 PM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Create Secure Mods
Reply With Quote
  #19  
Old 11-07-2008, 07:54 PM
jfk1 jfk1 is offline
 
Join Date: Mar 2008
Posts: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Marco van Herwaarden View Post
thanx for reply, and for useful link. i am sure i will need this info in near future
regards

--------------- Added [DATE]1226095204[/DATE] at [TIME]1226095204[/TIME] ---------------

while i am here, would u like to comment on the following? this is the reciprocal link back to "page" from the forum
Code:
//jfk
$home_pageid = $forumTitle;

$page_link = '<a href="/index.php?pageid=' . $home_pageid . '">' . $home_pageid . '&nbspPage</a>';

//end jfk
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 08:20 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05929 seconds
  • Memory Usage 2,284KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (2)bbcode_code
  • (4)bbcode_php
  • (5)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (9)post_thanks_box
  • (9)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (9)post_thanks_postbit_info
  • (9)postbit
  • (9)postbit_onlinestatus
  • (9)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete