The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
||||
|
||||
SOLVED. - formulating a if sentence
NO ERRORS ANYMORE READ LAST AREA :P
############################# original post ############### hmm getting a parse error in this snippit Code:
$vbulletin->input->clean_gpc('r', 'invitation', TYPE_NOHTML); if ($vbulletin->GPC['invitation']){$invitegroupid = $db->query_first_slave("SELECT NewusergroupID FROM " . TABLE_PREFIX . "vbinvitationcode WHERE invitation = " . $db->escape_string($vbulletin->GPC['InvitationCODE'])} { $userdata->set('usergroupid', $invitedgroupid); } else { $userdata->set('usergroupid', $newusergroupid); } {} dont fit in the if (){} ? and not really sure that else can be used here, maybe ? |
#2
|
|||
|
|||
You've got
if () {} { } else { } when it should be if (){ } else { } |
#3
|
|||
|
|||
Something like:
PHP Code:
|
#4
|
||||
|
||||
all it says is parse error, ewen with "show http errors" enabled in ie.
Code:
Parse error: parse error in D:\xampp\htdocs\forums\invitationcode.php on line 364 the file is a copy of register and in the template on submit it submits to invitationcode.php instead of register.php a db view attached Attachment 93985 |
#5
|
||||
|
||||
okay some guy told me i cannot use the else statment there,
when i look around the document i see it buildt excaktly like that. but if i exclude the else statement, how can i make sure all that is not "true" here are changed to $newusergroupid ? |
#6
|
|||
|
|||
The else statement is fine. Just follow the code Marco van Herwaarden posted and you'll be in good shape.
|
#7
|
||||
|
||||
still getting error
Parse error: parse error in D:\xampp\htdocs\forums\invitationcode.php on line 363 Gonna try it on a live server, if the code is correct maybe its the server using php 5.2.8 / mysql 5.1.3 and latest apache release. but it might be missing a module just running of the install, no special modifications made. OMG.. now im gonna take a brake, now i just learned it DOSENT execute install query when installing Code:
$db->hide_errors(); $vbulletin->db->query_write(" CREATE TABLE IF NOT EXISTS `". TABLE_PREFIX ."vbinvitationcode` ( `codedbID` INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, `InvitationCODE` VARCHAR(100) NOT NULL, `NewusergroupID` VARCHAR(100) NOT NULL, "); $db->show_errors(); where does it instruct me, on how to execute a query dureing install, cant find it in the manual, so simply put it in the install code box. refering to : http://www.vbulletin.com/docs/html/creating_a_product off to a brake before i blow up. [COLOR=""]--------------- Added [DATE]1233706418[/DATE] at [TIME]1233706418[/TIME] ---------------------------------------------[/COLOR] #########################################EDIT UPDATE BELOW######################### okay a little update here.. current if statement : Code:
$vbulletin->input->clean_gpc('r', 'invitation', TYPE_NOHTML); if ($vbulletin->GPC['invitation']) { $invitegroupid = $db->query_first_slave("SELECT NewusergroupID FROM " . TABLE_PREFIX . "vbinvitationcode WHERE '" . $db->escape_string($vbulletin->GPC['invitation'] . "' = InvitaionCODE"); $userdata->set('usergroupid', $invitedgroupid); } else { $userdata->set('usergroupid', $newusergroupid); } shoundt there be a "if ($vbulletin->GPC['invitation'] = content ) cause if i enter "lol1" as invitation code on registration, then the it would say if (lol1) {} else {} dosent it just skib the entire if ? since if will never be true, the SQL query just gets the data but only if "if" is true. reference of this : http://www.w3schools.com/php/php_if_else.asp Im thinking maybe run the query : Code:
$sql = select * InvitationCODE from vbinvitation if $sql <> { set usergroup standard } else { $newgroupid = select newusergroupID from vbinvitation where $sql = invitation set usergroupid newgruopid } ************************************************** ****SOLVED*************************************** Its not working, but it dosent promt with erros anymore :P Code:
// if ($vbulletin->GPC['invitation']) { $invitegroupid = $db->query_read_slave(" SELECT NewusergroupID FROM " . TABLE_PREFIX . "vbinvitationcode WHERE InvitationCODE = '" . $db->escape_string($vbulletin->GPC['invitation']) . "'" ); $userdata->set('usergroupid', $invitedgroupid); } else { $userdata->set('usergroupid', $newusergroupid); } |
#8
|
||||
|
||||
$invitegroupid, as it stands right now, will return an array. And will not work as you want it to. You want to use $invitegroupid['NewusergroupID'].
The first will check if a value is true. True being one that is not null, not an empty array or string, or the integer 0 (a string that is "0" is not true). The second will actually assign the constant "content" (you were probably meaning to use the string, not the constant) to the variable. You were looking for the equivalence operator "==". This checks if the two values are the same (note that it will not check type). |
#9
|
||||
|
||||
Quote:
possebly something wrong with the SELECT so i checked it in Navicat entered the SELECT and it gave me an error. DB looks like : Attachment 94094 But the Query errrors 1054 : Attachment 94095 usercode is the userimput, gonna try to exchange places between InvitationCODE(colum) and imput, so it says imput = colum,, currently i have Colum = imput.. ill ofcourse report back EDIT : lol well yeah adding '' helps.. result to the original line : Attachment 94096 just wondering why it dosent check out in vb then.. EDIT 2 : okay now the code runs through error less.. but aparently dosent check / modify usergroup id.. lol ?????????????????????????????????????????????????? ?????????????????? EDIT 3 : FULL UPDATE CURRENT CODE running, not working, but no errors either : Invitationcode.php (modifyed copy of register.php) around line 212-230 added type Code:
'invitation' => TYPE_STR, Code:
$vbulletin->input->clean_gpc('r', 'invitation', TYPE_NOHTML); if ($vbulletin->GPC['invitation']) { $invitegroupid = $db->query_first_slave(" SELECT NewusergroupID FROM " . TABLE_PREFIX . "vbinvitationcode WHERE InvitationCODE = '" . $vbulletin->GPC[COOKIE_PREFIX . 'invitation'] . "'"); $userdata->set('usergroupid', $invitegroupid['NewusergroupID']); } if (empty($user['usergroupid'])) { $userdata->set('usergroupid', $newusergroupid); } however if i replace the if statement with the original code it DOES change the usergroup.. but no DB selection. Code:
if ($vbulletin->GPC['invitation'] == 'awsome') { $userdata->set('usergroupid', '5'); } else { $userdata->set('usergroupid', $newusergroupid); } ################################################## ################################################## #################################### EDIT 4 ################################ Okay moved it all into the existing code for makering usergroups and it runs smooth, but it still dosent place users in the group only does "standard behavior" going back to the idea IF dont work as intended Current usergroupID placement : PHP Code:
PHP Code:
Changeing DB table name from NewusergroupID to NUGUID im suspecting interference between the "other" $newusergroupid used in the same page. |
#10
|
||||
|
||||
YES EFFING YES,,
it works.. yay. |
Thread Tools | |
Display Modes | |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|