Jump to content

Php POST variables empty online working fine on localhost


Recommended Posts

Hi all

 

I was hoping someone could help me with this coding issue im a bit of a noob to php but getting there slowly.

I have a form that should hold user information and should using POST insert it into a database.

This form works fine offline (localhost using apache)  however when i upload the code the form starts to return blank variables!

 

Online Echo result

INSERT INTO contact (address, email,fname,lname, birthyear, username, joined_date, ip_address) VALUES ('', '','','','' ,'', CURDATE(), '123.123.123.12' )
  :confused:

 

However when i run the form on the localhost the echo results a full!

 

Offline echo result

INSERT INTO contact (address, email,fname,lname, birthyear, username, joined_date, ip_address) VALUES ('TEST', 'TEST','TEST','TEST','TEST' ,'TEST', CURDATE(), '123.123.123.12' )
  :shrug:

 

I know for a fact that the connection to the Database is working fine as i am displaying data from it on another page  :D !

 

 

Below is the code for the php pages and I would like to say thanks in advance for any help

 

adddata.php

<?php

include_once $_SERVER['DOCUMENT_ROOT'] .	'../!__ONLINE comment/includes/magicquotes.inc.php';


// use the below method to add data to the various fields
        
        
function VisitorIP()
    { 
    if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
        $TheIp=$_SERVER['HTTP_X_FORWARDED_FOR'];
    else $TheIp=$_SERVER['REMOTE_ADDR'];

    return trim($TheIp);
    }
  
$ip = VisitorIP();

  //* Declare variables form form page below

$address = mysqli_real_escape_string($link, $_POST['address']);

$email = mysqli_real_escape_string($link, $_POST['email']);

$fname = mysqli_real_escape_string($link, $_POST['fname']);

$lname = mysqli_real_escape_string($link, $_POST['lname']);

$uname = mysqli_real_escape_string($link, $_POST['user']);

$dob = mysqli_real_escape_string($link, $_POST['dob']);


      


      
$sqlcode2="INSERT INTO contact (address, email,fname,lname, birthyear, username, joined_date, ip_address) 
      VALUES ('$address', '$email','$fname','$lname','$dob' ,'$uname', CURDATE(), '$ip' )";
       
      
  echo    $sqlcode2;    
    
        
  if (!mysqli_query($link, $sqlcode2))
  
{
$error = 'Error adding  submitting Product' . mysqli_error($link);
      	include $_SERVER['DOCUMENT_ROOT'] . '../!__ONLINE comment/includes/error.html.php'; 
exit();

}          
?>

 

register.php

<?php 
include $_SERVER['DOCUMENT_ROOT'] . '../!__ONLINE comment/includes//dbconnect.php';
include_once $_SERVER['DOCUMENT_ROOT'] .	'../!__ONLINE comment/includes/magicquotes.inc.php';


/**
* Returns true if the username has been taken
* by another user, false otherwise.
*/
function usernameTaken($username){
   global $link;
   if(!get_magic_quotes_gpc()){
      $username = addslashes($username);
   }
   $q = "select username from users where username = '$username'";
   $result = mysqli_query($link,$q);
   return (mysqli_num_rows($result) > 0);
}

/**
* Inserts the given (username, password) pair
* into the database. Returns true on success,
* false otherwise.
*/

       



function addNewUser($username, $password)
{
   global $link;
   $q = "INSERT INTO users VALUES ('$username', '$password')";
   return mysqli_query($link,$q);
}


       

/**
* Displays the appropriate message to the user
* after the registration attempt. It displays a 
* success or failure status depending on a
* session variable set during registration.
*/
function displayStatus(){
   $uname = $_SESSION['reguname'];
   if($_SESSION['regresult']){
   

   }
   else{

   }
   unset($_SESSION['reguname']);
   unset($_SESSION['registered']);
   unset($_SESSION['regresult']);
}

if(isset($_SESSION['registered'])){
/**
* This is the page that will be displayed after the
* registration has been attempted.
*/

   return;
}

/**
* Determines whether or not to show to sign-up form
* based on whether the form has been submitted, if it
* has, check the database for consistency and create
* the new account.
*/
if(isset($_POST['subjoin'])){
   /* Make sure all fields were entered */
   if(!$_POST['user'] 
   || 
   !$_POST['pass']
    || 
   !$_POST['fname']
    || 
   !$_POST['lname']
    || 
   !$_POST['dob']
    || 
   !$_POST['email']
   ){
      die('You didn\'t fill in a required field.');
   }
   

   
      
   
   
   /* Spruce up username, check length */
   $_POST['user'] = trim($_POST['user']);
   if(strlen($_POST['user']) > 20 )
   {
      die("Sorry, the username is longer than 20 characters, please shorten it.");
   }




   /* Check if username is already in use */
   if(usernameTaken($_POST['user'])){
      $use = $_POST['user'];
      die("Sorry, the username: <strong>$use</strong> is already taken, please pick another one.");
   }

  include 'adddata.php';


        

   /* Add the new account to the database */
   $md5pass = md5($_POST['pass']);
   $_SESSION['reguname'] = $_POST['user'];
   $_SESSION['regresult'] = addNewUser($_POST['user'], $md5pass);
   $_SESSION['registered'] = true;
   
  
   
   
header("location:../index.php");

     
  
  
   return;
}
else{





include 'registarform.php';



}
?>

registarform.php

<?php include_once $_SERVER['DOCUMENT_ROOT'] .'../!__ONLINE comment/includes/helpers.inc.php';?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Registration Page</title>

<link href="../styles/style.css" rel="stylesheet" type="text/css" />


<body>
<h1>Register</h1>

    

<div class='regformtxt'>
<br>Your account gives you access to the comment section of the website
<br>and also allows you to recive emails on any update to the webpage
<br>If you all ready have an account you can <a href='../index.php' >sign in here</a>.
<br>or go to the <a href='../index.php' >home page here</a>.<p></div>
<div class='regform'>
<form action="?" method="POST">
<table id="table1">
<tr><label for= "fname"><td>First Name:</td><td><input type="text" name="fname" maxlength="30"></td></tr></label>
<tr><label for= "lname"><td>Last Name:</td><td><input type="text" name="lname" maxlength="30"></td></tr></label>
<tr><td>Username:</td><td><input type="text" name="user" maxlength="30"></td></tr>
<tr><td>Password:</td><td><input type="password" name="pass" maxlength="30"></td></tr>
<tr><label for= "dob"><td>Birth Year:</td><td><input type="text" value ="eg 1990" name="dob" maxlength="30"></td></tr></label>
<tr><label for= "email"><td>Email:</td><td><input type="text" name="email" maxlength="30"></td></tr></label>
<tr><label for= "address"><td>Address:</td><td><input type="text" name="address" maxlength="30"></td></tr></label>
<tr><td colspan="2" align="right"><input type="submit" name="subjoin" value="Submit"></td></tr>
</table>
</form>
</div>
</body>
</html>

 

 

 

 

 

Hey cags

 

below dbconnect code as requested i know that the dbconnection is ok as i can pull data from the db and display it on other pages  :shrug:

 

<?php

//* Connect to database

$link = mysqli_connect('localhost','root','password');
if (!$link)
{                    

$error = 'Unable to connect to db server';
      	include $_SERVER['DOCUMENT_ROOT'] . ' ../comment/includes//error.html.php'; 
exit();

}

if (!mysqli_set_charset($link, 'utf8'))

{

$output ='Undable to set to db encoding';
      	include $_SERVER['DOCUMENT_ROOT'] . ' ../comment/includes//output.html.php'; 
exit();

}

if (!mysqli_select_db($link, 'comment'))
{

$error ='Unable to located Company db';
      	include $_SERVER['DOCUMENT_ROOT'] . ' ../comment/includes//error.html.php'; 
exit();

}



?>

Oh wow, totally missed that. Yeah the only reason I could see mysqli_real_escape_string() would return an empty string (rather than false) would be because no connection is open. Since you seem to successfully use $link in other places, i'm not so sure this is your problem.

 

 

Try doing a var_dump on the $link variable before you apply the escape_string function

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.