•
•
•
•
What is DaniWeb IT Discussion Community?
You're currently browsing the PHP section within the Web Development category of DaniWeb, a massive community of 423,946 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 4,146 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our PHP advertiser: Lunarpages PHP Web Hosting
Views: 4721 | Replies: 5
![]() |
•
•
Join Date: Sep 2006
Posts: 104
Reputation:
Rep Power: 3
Solved Threads: 0
i want to make a PHP page which have username and password and this
username and password should be saved in MySql table and the page should
redirect to another page.
i want to use ODBC and PHP.
i am very new to PHP.
Can anybody having any clue for making such application?
this is my code
what's wrong with this code ?????????
it is showing error
Warning: odbc_num_rows(): supplied argument is not a valid ODBC result resource in C:\Inetpub\wwwroot\scripts\PHPCodes\testlogin.php on line 18
Warning: odbc_exec() [function.odbc-exec]: SQL error: [MySQL][ODBC 3.51 Driver][mysqld-5.0.22-community-nt]Data too long for column 'password' at row 1, SQL state S1T00 in SQLExecDirect in C:\Inetpub\wwwroot\scripts\PHPCodes\testlogin.php on line 35
username and password should be saved in MySql table and the page should
redirect to another page.
i want to use ODBC and PHP.
i am very new to PHP.
Can anybody having any clue for making such application?
this is my code
php Syntax (Toggle Plain Text)
<?php // Connects to your Database $connect = odbc_connect("bhavnadb", "root", "infini") or die(odbc_error()); //This code runs if the form has been submitted if (isset($_POST['submit'])) { //This makes sure they did not leave any fields blank if (!$_POST['username'] | !$_POST['pass'] | !$_POST['pass2'] ) { die('You did not complete all of the required fields'); } // checks if the username is in use if (!get_magic_quotes_gpc()) { $_POST['username'] = addslashes($_POST['username']);} $usercheck = $_POST['username']; $check = "SELECT username FROM logintable WHERE username = '$usercheck'"; $check2 = odbc_num_rows($check); //if the name exists it gives an error if ($check2 != 0) { die('Sorry, the username '.$_POST['username'].' is already in use.');} // this makes sure both passwords entered match if ($_POST['pass'] != $_POST['pass2']) { die('Your passwords did not match. ');} // here we encrypt the password and add slashes if needed $_POST['pass'] = md5($_POST['pass']); if (!get_magic_quotes_gpc()) { $_POST['pass'] = addslashes($_POST['pass']); $_POST['username'] = addslashes($_POST['username']);} // now we insert it into the database $insert = "INSERT INTO logintable (username, password) VALUES ('".$_POST['username']."', '".$_POST['pass']."')"; $add_member = odbc_exec($connect,$insert); ?> <!-- Now we let them know if their registration was successful --> <IMG SRC=\"\images\logo1.gif\"> <h1>Registered</h1> <p>Thank you, you have registered - you may now login</a>.</p> <?php } else { ?> <!-- This is what they see before they have registered --> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <table border="0"> <tr><td>Username:</td><td> <input type="text" name="username" maxlength="60"> </td></tr> <tr><td>Password:</td><td> <input type="password" name="pass" maxlength="10"> </td></tr> <tr><td>Confirm Password:</td><td> <input type="password" name="pass2" maxlength="10"> </td></tr> <tr><th colspan=2><input type="submit" name="submit" value="Register"></th></tr> </table> </form> <?php } ?>
it is showing error
Warning: odbc_num_rows(): supplied argument is not a valid ODBC result resource in C:\Inetpub\wwwroot\scripts\PHPCodes\testlogin.php on line 18
Warning: odbc_exec() [function.odbc-exec]: SQL error: [MySQL][ODBC 3.51 Driver][mysqld-5.0.22-community-nt]Data too long for column 'password' at row 1, SQL state S1T00 in SQLExecDirect in C:\Inetpub\wwwroot\scripts\PHPCodes\testlogin.php on line 35
Last edited by stymiee : Feb 16th, 2007 at 10:13 am. Reason: added code tags
•
•
Join Date: Oct 2006
Location: Sofia, Bulgaria
Posts: 135
Reputation:
Rep Power: 2
Solved Threads: 7
•
•
•
•
$check = "SELECT username FROM logintable WHERE username = '$usercheck'";
First error is here. I don't know witch version of PHP you're using, however there is some change since 4.x that does not allow when creating MySQL requests to user variables inside querries. Use it like this:
$check = 'SELECT username FROM logintable WHERE username ="'. $usercheck.';";
It will work like that.
2nd error is that your password, when encrypted, becomes more characters than you have assigned for the table. Run querry in mysql console "describe logintable;" and check for Password column how many chars are assigned. E.g. you should see something like this:
password varchar(45) not null;
If you're using UTF8 as encoding in order to store 45 chars, you should double the number, that is you should make it 90 chars.
Make the changes and advise if solved your problems.
•
•
Join Date: Sep 2006
Posts: 104
Reputation:
Rep Power: 3
Solved Threads: 0
•
•
•
•
First error is here. I don't know witch version of PHP you're using, however there is some change since 4.x that does not allow when creating MySQL requests to user variables inside querries. Use it like this:
$check = 'SELECT username FROM logintable WHERE username ="'. $usercheck.';";
It will work like that.
2nd error is that your password, when encrypted, becomes more characters than you have assigned for the table. Run querry in mysql console "describe logintable;" and check for Password column how many chars are assigned. E.g. you should see something like this:
password varchar(45) not null;
If you're using UTF8 as encoding in order to store 45 chars, you should double the number, that is you should make it 90 chars.
Make the changes and advise if solved your problems.
my php version is 4.4.4 and mysql is 5.0
and now when i changed this
password varchar(45) not null;
then its working fine but still there is an error in
$check = "SELECT username FROM logintable WHERE username = '$usercheck'";
$check2 = odbc_num_rows($check);
and the error is
Warning: odbc_num_rows(): supplied argument is not a valid ODBC result resource in \testlogin.php on line 18
Last edited by bhavna_816 : Feb 19th, 2007 at 8:34 am. Reason: problem edited
•
•
Join Date: Oct 2006
Location: Sofia, Bulgaria
Posts: 135
Reputation:
Rep Power: 2
Solved Threads: 7
The num_rows function does not execute the query, but returns how many rows have been affected by your query...
I have never used the PHP odbc libraries, however, I think, that first you should run the query using smth like this:
[php] $query = odbc_mysql_query($check);
$check2 = odbc_num_rows($query); [/php]
If this does not work, try substituting the ($query) with your linkg identifier - e.g. you hsould have something like $connect = mysql_connect('localhost', 'user', 'pass');
So substitute the ($query) with ($connect).
Hope it will work for you
I have never used the PHP odbc libraries, however, I think, that first you should run the query using smth like this:
[php] $query = odbc_mysql_query($check);
$check2 = odbc_num_rows($query); [/php]
If this does not work, try substituting the ($query) with your linkg identifier - e.g. you hsould have something like $connect = mysql_connect('localhost', 'user', 'pass');
So substitute the ($query) with ($connect).
Hope it will work for you
•
•
Join Date: Sep 2006
Posts: 104
Reputation:
Rep Power: 3
Solved Threads: 0
•
•
•
•
The num_rows function does not execute the query, but returns how many rows have been affected by your query...
I have never used the PHP odbc libraries, however, I think, that first you should run the query using smth like this:
[php] $query = odbc_mysql_query($check);
$check2 = odbc_num_rows($query); [/php]
If this does not work, try substituting the ($query) with your linkg identifier - e.g. you hsould have something like $connect = mysql_connect('localhost', 'user', 'pass');
So substitute the ($query) with ($connect).
Hope it will work for you
no both the things are not working!
actually mysql_connect('localhost', 'user', 'pass');
is written when we use mysql database only but i want to use ODBC so this syntax would not work.ofcourse my database is mysql.
•
•
Join Date: Oct 2006
Location: Sofia, Bulgaria
Posts: 135
Reputation:
Rep Power: 2
Solved Threads: 7
•
•
•
•
no both the things are not working!
actually mysql_connect('localhost', 'user', 'pass');
is written when we use mysql database only but i want to use ODBC so this syntax would not work.ofcourse my database is mysql.
I am not familiar with the ODBC ways to connect to MySQL. Still the logic is always the same:
1. Connect to DB
2. Select DB
3. Enter query
4. Get results from query
5. Close connection
You should follow these steps whatever way of connection you use with the DB.
so, you should do smth like this:
[php]
//1. Connect
$connect = odbc_connect(database, user, pass);
//2. I assume that for ODBC database selection is done with the connect opiton...Still you have to check more in detail the php manual.
//3.Enter query
$query = 'SELECT STATEMENT GOES HERE';
$runquery = odbc_exec($connect, $query);
//4. Retrieve information
$rowsAffected = odbc_num_rows($runquery);
for ($i=0; $i<$rowsAffected; $i++)
{
$result[$i]=odbc_fetch_array($runquery);
}
[/php]
You should be able then to read the $result[] array to retrieve data. Note that result[0] will hold another array what may be accessed using the column name for each item. E.G. if your table column name is 'username' you can access the data in the array like this:
[php]
$resultrow = $result[0];
echo $resultrow['username'];
[/php]
Good luck
![]() |
•
•
•
•
•
•
•
•
DaniWeb PHP Marketplace
•
•
•
•
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
Similar Threads
- Login Page Database connection to MSAccess (VB.NET)
- Creating Login Page (ASP.NET)
- How to create one login page in ASP.NET using C# (C#)
- Creating a Login Page (ASP)
- Creating a login page (ASP)
Other Threads in the PHP Forum
- Previous Thread: how to paginate and get the information
- Next Thread: youtube


Linear Mode