Jump to content

ok can anyone tell me what im doing wrong please

- - - - -

This topic has been archived. This means that you cannot reply to this topic.
15 replies to this topic

#1
mmo-dev

mmo-dev

    Learning Programmer

  • Members
  • PipPipPip
  • 87 posts
Warning: mssql_query() expects at most 3 parameters, 6 given in D:\xampp\htdocs\register.php on line 121

ok im getting this error on this script can someone please tell me what im doing wrong?

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>

<?php

//MSSQL settings
$sql_user = '*****'; // SQL ID
$sql_pwd = '********'; // SQL PASSWORD (change it to your password mssql)
$base = "RF_User"; // SQL BASE name (don't change it's by default)
$host = "127.0.0.1"; // SQL HOST (change it to your IP ex : 127.0.0.1)

$reg_open = true;

$tabelka = '<form action=register.php method=post><body topmargin="0" leftmargin="0" bottommargin="0" rightmargin="0" scroll="no" bgcolor="#1f1f1f" text="#a0a0a0">
    <table width="305" border="0">
        <tr>
          <td width="277"><span class="Style4">User: </span></td>
        </tr>
        <tr>
          <td height="35" valign="top"><input type=text name=login value="'.$_POST['login'].'"></td>
        </tr>
        <tr>
          <td><span class="Style4">password </span></td>
        </tr>
        <tr>
          <td height="35" valign="top"><input type=password name=pass></td>
        </tr>
        <tr>
          <td><span class="Style4">Confirm password: </span></td>
        </tr>
        <tr>
          <td height="35" valign="top"><input type=password name=cpass></td>
        </tr>
        <tr>
          <td><span class="Style4">E-mail: </span></td>
        </tr>
        <tr>
          <td height="35" valign="top"><input type=text name=mail value="'.$_POST['mail'].'"></td>
        </tr>
        <tr>
          <td height="41" valign="top">
            <div align="left">

<INPUT type="submit" value="Register now">

            </div></td>
        </tr>
      </table>
</form>';

if($reg_open AND isset($_POST['login']))
{


$conn=mssql_connect($host,$sql_user,$sql_pwd) or die("<center><b>Êðèòè÷åñêàÿ îøèáêà</b><br>Íåâîçìîæíî ïîäêëþ÷èòüñÿ ê áàçå<br><br><a href=register.php>Back</a></center>");

@mssql_select_db($base, $conn) or die("<center><b>Êðèòè÷åñêàÿ îøèáêà</b><br>Áàçà íå ñóùåñòâóåò, ëèáî íåò äîñòóïà<br><br><a href=register.php>Back</a></center>");


$login = $_POST['login'];
$pw = $_POST['pass'];
$cpw = $_POST['cpass'];
$email = $_POST['mail'];

$login = trim($login);
$pw = trim($pw);
$cpw = trim($cpw);

if(ereg("[^0-9a-zA-Z_-]", $login, $str))
    {
    echo '<body><center>Ëîãèí äîëæåí ñîñòîÿòü ÒÎËÜÊÎ èç ñèìâîëîâ a-z, A-Z è 0-9';
    echo '<br><br><a href="register.php">Back</a></center></body>';
    }
elseif(ereg("[^0-9a-zA-Z_-]", $pw, $str))
    {
    echo '<body><center>Ïàðîëü äîëæåí ñîñòîÿòü ÒÎËÜÊÎ èç ñèìâîëîâ a-z, A-Z è 0-9';
    echo '<br><br><a href="register.php">Back</a></center></body>';
    }
elseif (empty($login) || empty($email) || empty($pw) || empty($cpw))
    {
    echo '<body><center>Çàïîëíèòå âñå ïîëÿ<br><br><a href="register.php">Back</a></center></body>';
    }
elseif (strpos('\'',$email))
    {
    echo '<body><center>E-mail '.$email.' èìååò íåïðàâèëüíûé ôîðìàò.<br><br><a href="register.php">Back</a></center></body>';
    }
else
    {
    $login_test = strtolower($login);


    if (mssql_num_rows($resultx))
        {
        echo '<body><center>Ëîãèí '.$login.' is already in use<br><br><a href="register.php">Back</a></center></body>';
        }
    elseif (strlen($login) < 4)
        {
        echo '<body><center>Username must contain 4-10 characters<br><br><a href="register.php">Back</a></center></body>';
        }
    elseif (strlen($pw) < 4)
        {
        echo '<body><center>Password must contain 4-10 characters<br><br><a href="register.php">Back</a></center></body>';
        }
    elseif (strlen($pw) > 10)
        {
        echo '<body><center>Password must contain 4-10 characters<br><br><a href="register.php">Back</a></center></body>';
        }
    elseif (strlen($login) > 10)
        {
        echo '<body><center>Username must contain 4-10 characters<br><br><a href="register.php">Back</a></center></body>';
        }
    elseif ($pw != $cpw)
        {
        echo '<body><center>The passwords do not match<br><br><a href="register.php">Back</a></center></body>';
        }
    else
        {
mssql_query("DECLARE @ID varchar(13)", "DECLARE @pw varchar(13)", "Declare @Grade int", "Declare @subgrade int", "declare @class varchar(12)", "INSERT INTO RF_User.dbo.pInsert_Staff(@Id,@pw,@Grade,@Subgrade,@class) VALUES ((CONVERT(binary, '$login')), (CONVERT(binary, '$pw')),255,255,User);")or die('<center>Òàêîé àêêàóíò óæå ñóùåñòâóåò<br><br><a href=register.php>Back</a></center>');

                echo '<body bgcolor="000000"><center>Your account was successfully created<br><br><a href=rfweb/list.htm>Back</a></center></body>';
        }
    }
}
elseif($reg_open)
{
echo $tabelka;
}
else
{
echo '<center>Registration is currently closed. Please try again later.<br></center>';
}
?>


#2
Arctic Fire

Arctic Fire

    Learning Programmer

  • Members
  • PipPipPip
  • 48 posts
The error message says it all. You're passing too many parameters to mysql_query. You have to do one query at a time. It looks like you just tried to stuff a bunch of queries in there. :P

mssql_query("DECLARE @ID varchar(13)");
mssql_query("DECLARE @pw varchar(13)");
mssql_query("Declare @Grade int");
mssql_query("Declare @subgrade int");
mssql_query("declare @class varchar(12)");
mssql_query("INSERT INTO RF_User.dbo.pInsert_Staff(@Id,@pw,@Grade,@Subgrade,@class) VALUES ((CONVERT(binary, '$login')), (CONVERT(binary, '$pw')),255,255,User);")or die('<center>Òàêîé àêêàóíò óæå ñóùåñòâóåò<br><br><a href=register.php>Back</a></center>');


#3
mmo-dev

mmo-dev

    Learning Programmer

  • Members
  • PipPipPip
  • 87 posts
ok so how am i suppost to declare @id @pw @class @grade @subgrade then? cuse thats wats get me right now

#4
Arctic Fire

Arctic Fire

    Learning Programmer

  • Members
  • PipPipPip
  • 48 posts
Just like I did above. They'll stay throughout all the following queries. It's all one session with the database server.

#5
mmo-dev

mmo-dev

    Learning Programmer

  • Members
  • PipPipPip
  • 87 posts
ok but then i am still put back a step as again im getting a prev error

Warning: mssql_query() [function.mssql-query]: message: Must declare the variable '@Id'. (severity 15) in D:\xampp\htdocs\register.php on line 126

#6
Arctic Fire

Arctic Fire

    Learning Programmer

  • Members
  • PipPipPip
  • 48 posts
Well, I know you can't do this with the mysql_query function, but you can try it anyway.

mssql_query("DECLARE @ID varchar(13); DECLARE @pw varchar(13); OTHER QUERIES HERE");

EDIT: Apparently there's a third argument called batch size. I'm not sure what exactly it does, I've never used PHP with MsSQL. Take a look and play around with it. It looks like it'll be the answer to your problem; you'll be able to put all the queries in a string, separated by ;.

http://us3.php.net/mssql_query

#7
mmo-dev

mmo-dev

    Learning Programmer

  • Members
  • PipPipPip
  • 87 posts
Warning: mssql_query() expects parameter 2 to be resource, string given in D:\xampp\htdocs\register.php on line 121

Warning: mssql_query() expects parameter 2 to be resource, string given in D:\xampp\htdocs\register.php on line 122

Warning: mssql_query() [function.mssql-query]: message: Must declare the variable '@Id'. (severity 15) in D:\xampp\htdocs\register.php on line 123

using:
mssql_query("DECLARE @ID varchar(13)","DECLARE @pw varchar(13)","Declare @Grade int");
mssql_query("Declare @subgrade int","declare @class varchar(12)");
mssql_query("INSERT INTO RF_User.dbo.pInsert_Staff(@Id,@pw,@Grade,@Subgrade,@class) VALUES ((CONVERT(binary, '$login')), (CONVERT(binary, '$pw')),255,255,User);")or die('<center>Òàêîé àêêàóíò óæå ñóùåñòâóåò<br><br><a href=register.php>Back</a></center>');

honestly how am i suppost to declare them properly :(

#8
Arctic Fire

Arctic Fire

    Learning Programmer

  • Members
  • PipPipPip
  • 48 posts
Try this:

mssql_query("DECLARE @ID varchar(13); DECLARE @pw varchar(13); Declare @Grade int; Declare @subgrade int; declare @class varchar(12); INSERT INTO RF_User.dbo.pInsert_Staff(@Id,@pw,@Grade,@Subgrade,@class) VALUES ((CONVERT(binary, '$login')), (CONVERT(binary, '$pw')),255,255,User);",$conn,6);


#9
mmo-dev

mmo-dev

    Learning Programmer

  • Members
  • PipPipPip
  • 87 posts
ok and in case ur wondering here is the sql query in sql format
DECLARE @RC int     
DECLARE @id varchar(13)     
DECLARE @pw varchar(13)     
DECLARE @depart varchar(32)     
DECLARE @class varchar(12)     
DECLARE @name varchar(12)     
DECLARE @birthday varchar(10)     
DECLARE @grade int     
DECLARE @subgrade int     
SELECT @id = 'monkeygod46'     
SELECT @pw = 'monkey800'     
SELECT @depart = 'none'     
SELECT @class = 'GM'     
SELECT @name = 'name'     
SELECT @birthday = 'None'     
SELECT @grade = 255     
SELECT @subgrade = 255     
EXEC @RC = [rf_user].[dbo].[pInsert_Staff] @id, @pw, @depart, @class, @name, @birthday, @grade, @subgrade     
DECLARE @PrnLine nvarchar(4000)     
PRINT 'Stored Procedure: rf_user.dbo.pInsert_Staff'     
SELECT @PrnLine = ' Return Code = ' + CONVERT(nvarchar, @RC)

and for the edit u made on last post it returned this.

Parse error: syntax error, unexpected T_LOGICAL_OR in D:\xampp\htdocs\register.php on line 121

#10
Arctic Fire

Arctic Fire

    Learning Programmer

  • Members
  • PipPipPip
  • 48 posts

Quote

Parse error: syntax error, unexpected T_LOGICAL_OR in D:\xampp\htdocs\register.php on line 121
Did you add anything after what I posted above? There is no OR in the code I posted above....... Looks like you added the or die() part and didn't remove the semi-colon from what I posted.

#11
mmo-dev

mmo-dev

    Learning Programmer

  • Members
  • PipPipPip
  • 87 posts
rofl ya thats wat i did and now we stumble again :(

Warning: mssql_num_rows() expects parameter 1 to be resource, null given in D:\xampp\htdocs\register.php on line 95

Warning: mssql_query() [function.mssql-query]: message: Invalid object name 'RF_User.dbo.pInsert_Staff'. (severity 16) in D:\xampp\htdocs\register.php on line 121

Warning: mssql_query() [function.mssql-query]: Query failed in D:\xampp\htdocs\register.php on line 121

#12
mmo-dev

mmo-dev

    Learning Programmer

  • Members
  • PipPipPip
  • 87 posts
would it be possible to insert directly into tbl_StaffAccount instead of the stored proc?