Jump to content
Larry Ullman's Book Forums

Chp 9 Executing Simple Queries - Sql Connect File Constants


Recommended Posts

I'm having a strange problem here. I created the registration.php and connect.php files, but I cannot seem to add the info entered into the form to the SQL table, unless I have the $dbc constants inside the register.php file.

 

Originally, I was using the require() function to pull in the SQL connect file. But I keep getting the "System Error  You could not register due to a system error." message when I submit the form. 

 

I did several tests to try find out where the problem is and I believe it has something to do with the constants not being able to be used in the require() and include() functions. Also, I found if I copy the contents in the connect.php file into the register.php, it works.

 

I checked my php.ini file, both allow_url_fopen and allow_url_include are on. So I'm not sure why I can't include/require constants in my PHP files. Also, when I used the require() function I was using an absolute URL path to the connect.php file. Any ideas?

 

 

Thanks!

 

Link to comment
Share on other sites

Sure.

 

Here is the connect.php file:

<?php
DEFINE ('DB_USER','root');
DEFINE ('DB_PASSWORD','2f8ks32d');
DEFINE ('DB_HOST','localhost');
DEFINE ('DB_NAME','phpbook');

$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) OR die('Could not connect' . mysqli_connect_error());
mysqli_set_charset($dbc, 'utf8');
?>

 

 

 

And here is part of the register.php page:

if(empty($errors)){
        require('http://localhost/PHP/chp8/connect.php');

$q = "INSERT INTO users (user_id, first_name, last_name, email, pass, registration_date) VALUES (0,'$fn', '$ln', '$e', SHA1('$p'), NOW())";



        $r = mysqli_query($dbc, $q);
        if($r){
         echo '<h1>Thank you!</h1>';
         echo '<p>You are now registered</p>';
        } else{
    echo '<h1>System Error</h1>
    <p>You could not register due to a system error.</p>';
    echo '<p>' . mysqli_error($dbc) . '<br>' . 'Query:' . $q . '</p>';
        }
        mysqli_close($dbc);
        
    } else{
        echo '<h1>Error(s)</h1>';
        foreach($errors as $msg){
        echo '<span class="error"> -'.  $msg . '</span><br>';
        }
    }

 

 

 

 

I just noticed, if I change the URL in the require('http://localhost/PHP/chp8/connect.php');

to:    require('connect.php');

It works!

 

I don't understand why it wouldn't work with an absolute URL...?

 

Thank you for the reply.

Link to comment
Share on other sites

 Share

×
×
  • Create New...