Jump to content

Cant connect to MySQL!


wavedude

Recommended Posts

I'm having trouble getting my php page to connect to the database. What could be wrong?

 

Heres the code:

 


<?php

session_start(); //lets start the session so we could use them!

// session_start() must always be used if you want to use session variables on the page.


require_once("data.php"); //include..



if(empty($_SESSION['username'])){

//check if user is not logged in



$act = htmlspecialchars(mysql_real_escape_string($_GET['act']));

// security hoo-haa



if($act == 'reg'){

// if we've attempted to start the registration process...

// lets set the variables

$username = htmlspecialchars(mysql_real_escape_string($_POST['username'])); // username...

$username = strtolower($username); // lets make it lower cased so username like fRIiKs would be transformed to friiks

$password = htmlspecialchars(mysql_real_escape_string($_POST['password'])); // password(s)

$passwordCheck = htmlspecialchars(mysql_real_escape_string($_POST['passwordCheck']));

$email = htmlspecialchars(mysql_real_escape_string($_POST['email'])); // E-mail



$checkUsername = mysql_num_rows(mysql_query("SELECT `id` FROM `users` WHERE `username`='".$username."' LIMIT 1"));

// check if username not taken

$emailCheck = mysql_num_rows(mysql_query("SELECT `id` FROM `users` WHERE `email`='".$email."' LIMIT 1"));

// check if E-mail not taken



if($checkUsername < 1 && $emailCheck < 1 && !empty($password) && !empty($username) && $password == $passwordCheck && strlen($username) < 18 && strlen($password) < 32){

// if everything's fine lets continue with the registration process



$hash = substr(md5(mt_rand(0000000,999999)."somethingForNothingRawr!"),0,25);

// create random, 25 character long hash

$password = sha1($password.$hash);

// create password



$lastId = mysql_fetch_array(mysql_query("SELECT `userId` FROM `users` ORDER BY `id` DESC LIMIT 1"));

$myId = $lastId['userId']+1;

// Get the last user id in the database and create the current users id



if(mysql_query("INSERT INTO `users` (`id`, `userId`, `userLevel`, `username`, `password`, `email`, `registered`, `avatar`, `randString`) VALUES ('NULL','".$myId."','1','".$username."','".$password."','".$email."','".time()."','','".$hash."')")){

// If the user data is inserted into the DB return success!

header("Location:register.php?act=success");

}else{

// if not, return error...

header("Location:register.php?act=err7");

}



}else{

// if something's wrong above let's check out what IS wrong and return an error!

if($checkUsername > 0){

header("Location:register.php?act=err0");

}

if($emailCheck > 0){

header("Location:register.php?act=err1");

}

if(empty($password)){

header("Location:register.php?act=err2");

}

if(empty($username)){

header("Location:register.php?act=err3");

}

if($password != $passwordCheck){

header("Location:register.php?act=err4");

}

if(strlen($username) > 18){

header("Location:register.php?act=err5");

}

if(strlen($password) > 32){

header("Location:register.php?act=err6");

}

}



}





$errors = array(

"0" => "Username already taken!",

"1" => "This E-mail is already used!",

"2" => "Password field must be filled!",

"3" => "Username field must be filled!",

"4" => "Passwords you entered didn't match!",

"5" => "Username is longer than 18 characters",

"6" => "Password is longer than 32 characters",

"7" => "There was an error while inserting data into database!<br />Please try again later!"

);

// lets create error reports...



if($act == "success"){

?>

<span style="color:green;font-weight:bold">Registration was successful, you may log in <a href="index.php">here</a></span>

<?php

}else if(ereg('err',$act) > 0){

// if $act variable contains "err" then lets get the number of error and output the error!

?>

<span style="color:red;font-weight:bold"><?php echo $errors[substr($act,3)]; ?></span>

<?php

}



?>

<form action="register.php?act=reg" method="post" >

<table>

<tr><td>Username:</td><td><input type='text' name='username' maxlength='18' /></td></tr>

<tr><td>Password:</td><td><input type='password' name='password' maxlength='32' /></td></tr>

<tr><td>Password Again:</td><td><input type='password' name='passwordCheck' maxlength='32' /></td></tr>

<tr><td>E-Mail:</td><td><input type='text' name='email' /></td></tr>

<tr><td><input type='submit' value='Register' /></td></tr>

</table>

</form>



<?php

}else{

// if user's logged in return the user to index

header("Location:index.php");

}

?>

 

That would be the registering page. It connects to a page called data.php to get the MySQL info.

 

Please help, thanks.

Link to comment
https://forums.phpfreaks.com/topic/143332-cant-connect-to-mysql/
Share on other sites

Separate your mysql_fetch's and queries, and run

or die(mysql_error());

on each of the queries:

 

Example, your check username:

$checkUsername = mysql_num_rows(mysql_query("SELECT `id` FROM `users` WHERE `username`='".$username."' LIMIT 1"));

Change to:

$checkUsernameQ = mysql_query("SELECT `id` FROM `users` WHERE `username`='".$username."' LIMIT 1") or die(mysql_error());
$checkUsername = mysql_num_rows($checkUsernameQ);

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.