Page 1 of 1
Please make me understand :)
Posted: Mon Jul 25, 2011 4:34 pm
by wizzuriz
Hello.
I love the videos and are working on them each day now.
I have to things right now that I can´t seem to work out.
Strict Standards: Only variables should be passed by reference in C:\xampp\htdocs\testtest\core\init.inc.php on line 7
Fatal error: Call to undefined function shal() in C:\xampp\htdocs\testtest\inc\user.inc.php on line 24
If I delete the shal function I only have the strict standards.
A other thing, I had to make the FIle path = $path = dirname(_FILE_); - - - - - - it just have ' ' more then in the video but now it works. $path = dirname('_FILE_'); this one works for me.
however I can´t work out the to other problems I have..
Best Regards
Wizzuriz
Re: Please make me understand :)
Posted: Mon Jul 25, 2011 5:38 pm
by DomC
I may have missed this but I checked and I don't think I have, but what tutorial is this for?
And can we also have a look at your code and we will do our best to help you as with out them we cannot really help.
Sorry if I did miss the tutorial name!
Re: Please make me understand :)
Posted: Mon Jul 25, 2011 6:50 pm
by JelvinJS7
It seems like you're typing shal() when the function is sha1.
Re: Please make me understand :)
Posted: Mon Jul 25, 2011 7:03 pm
by jacek
wizzuriz wrote:Fatal error: Call to undefined function shal() in C:\xampp\htdocs\testtest\inc\user.inc.php on line 24
JelvinJS7 wrote:It seems like you're typing shal() when the function is sha1.
wizzuriz wrote:A other thing, I had to make the FIle path = $path = dirname(_FILE_); - - - - - - it just have ' ' more then in the video but now it works. $path = dirname('_FILE_'); this one works for me.
It should be __FILE__ not _FILE_ with two _ either side.
wizzuriz wrote:Strict Standards: Only variables should be passed by reference in C:\xampp\htdocs\testtest\core\init.inc.php on line 7
This is php being ultra picky about the coding style, you can safely hide these errors by adding
error_reporting(E_ALL & ~E_STRICT);
To the top of the file (in the init.inc.php file would be easiest)
Re: Please make me understand :)
Posted: Tue Jul 26, 2011 1:31 pm
by wizzuriz
Hello Again.
First thanks for the fast replay, second sorry for not uploading the code.
The sha1 is now fine, thanks. hard to see it was a 1 and not a l in the video. ( shaOne)
<?php
session_start();
$exceptions = array('register', 'login');
$page = substr(end(explode('/', $_SERVER['SCRIPT_NAME'])), 0, -4); --- This is the 7 line that is giving my problems
if (in_array($page, $exceptions) === false){
if (isset($_SESSION['username']) === false){
header('location: login.php');
die();
}
}
mysql_connect('localhost', 'root', '');
mysql_select_db('user_system');
$path = dirname('_FILE_');
include("{$path}/inc/user.inc.php");
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
// put your code here
?>
</body>
</html>
Re: Please make me understand :)
Posted: Tue Jul 26, 2011 1:46 pm
by jacek
jacek wrote:wizzuriz wrote:Strict Standards: Only variables should be passed by reference in C:\xampp\htdocs\testtest\core\init.inc.php on line 7
This is php being ultra picky about the coding style, you can safely hide these errors by adding
error_reporting(E_ALL & ~E_STRICT);
To the top of the file (in the init.inc.php file would be easiest)
Re: Please make me understand :)
Posted: Tue Jul 26, 2011 5:56 pm
by wizzuriz
Hi.
Thanks, that is now in the init.inc.php file and I don´t see the error anymore.
Now I did all videos and got it all working and when I got to the cookie part I got a problem.
I did check all the new code 5 times and I can´t see what the error is.
I can´t upload the php file what is best word or?
Best regards
Wizzuriz.
PS. if you are doing the video on user admin and user levels please let me know as I really like to see that.
Re: Please make me understand :)
Posted: Tue Jul 26, 2011 8:22 pm
by jacek
wizzuriz wrote:Now I did all videos and got it all working and when I got to the cookie part I got a problem.
Unless you tell me what that problem is I cant help
wizzuriz wrote:PS. if you are doing the video on user admin and user levels please let me know as I really like to see that.
I may do, but I am a bit bored of user account stuff so it won;t be any time soon.
Re: Please make me understand :)
Posted: Wed Jul 27, 2011 1:37 pm
by wizzuriz
Hi again.
I don´t really know what the problem is, I tried to check the files my self but I can´t see any thing that is not like in the video.
if (valid_credentials($_POST['username'], sha1($_POST['password'])) === false){
$errors[] = 'Username / Password incorrect.';
}
if (empty($errors)){
if (isset($_POST['set_cookie']) && $_POST['set_cookie'] == '1'){
setcookie('username', $_post['username'], time() + 6048000);
setcookie('password', sha1($_post['password']), time() + 6048000);
}
$_SESSION['username'] = htmlentities($_POST['username']);
header('location: protected.php');
die();
}
That should be all fine..
what code are you doing right now? I might have some fun for you if you like a challenge.
Best regards
wizzuriz
Re: Please make me understand :)
Posted: Wed Jul 27, 2011 1:38 pm
by wizzuriz
This is my Init.inc.php file
error_reporting(E_ALL & ~E_STRICT);
session_start();
$exceptions = array('register', 'login');
$page = substr(end(explode('/', $_SERVER['SCRIPT_NAME'])), 0, -4);
mysql_connect('localhost', 'root', '0"');
mysql_select_db('user_system');
$path = dirname(__FILE__);
include("{$path}/inc/user.inc.php");
if (isset($_COOKIE['username'], $_COOKIE['password']) && isset($_SESSION['username']) === false){
if (valid_credentials($_COOKIE['username'], $_COOKIE['password'])){
$_SESSION['username'] = htmlentities($_COOKIE['username']);
setcookie('username', $_COOKIE['username'], time() + 604800);
setcookie('password', $_COOKIE['password'], time() + 604800);
}
}
if (in_array($page, $exceptions) === false){
if (isset($_SESSION['username']) === false){
header('location: login.php');
die();
}
}
Re: Please make me understand :)
Posted: Wed Jul 27, 2011 1:42 pm
by wizzuriz
on register I have
if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false){
$errors[] = 'The E-mail address you entered does not appear to be valid.';
}
<p>
<lable for="email">E-mail:</lable>
<input type=="text" name="email" id="email" value="<?php if (isset($_POST['email'])) echo htmlentities($_POST['email']); ?>" />
</p>
This is the user.inc.php file
// adds a user to the database.
function add_user($user, $email, $pass){
$user = mysql_real_escape_string(htmlentities($user));
$email = mysql_real_escape_string($email);
$pass = sha1($pass);
$charset = array_flip(array_merge(range('a', 'c'), range('A', 'Z'), range(0, 9)));
$aid = implode('', array_rand($charset, 10));
$body = <<<EMAIL
Hi,
Thanks for registering, before you can login you need to activate your account.
To do that simply click the following link.
http://192.168.0.10/usersystem/activate.php={$aid}
EMAIL;
mail($email, 'you new account at intesira.com', $body, 'From: admin@intesira.com');
// insert into database, table_name user : colum user_name, & colum user_password.
mysql_query("INSERT INTO `users` (`user_name`, `user_password`, `user_email`) VALUES ('{$user}', '{$pass}', '{$email}')");
$user_id = mysql_insert_id();
mysql_query("INSET INTO `user_activations` (`user_id`, `activation_code`) VALUE ({$user_id}, '{$aid}')");
}
I don´t believe that there is anymore change in the code then that.
Re: Please make me understand :)
Posted: Wed Jul 27, 2011 1:44 pm
by jacek
What is the problem now ?
Also, please use the code buttons when posting code !
Re: Please make me understand :)
Posted: Wed Jul 27, 2011 2:03 pm
by wizzuriz
The problem is that I don´t get a E-mail with the link, I don´t see the activation code in the database and no user id. I can register fine and the E-mail go in to the users tabel but nothing in the user_activations
Sorry for the code posting.
function user_exists($user){
$user = mysql_real_escape_string($user);
$total = mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `user_name` = '{$user}'");
return (mysql_result($total, 0) == '1') ? true : false;
}
// checks if the given username and password combination is valid.
function valid_credentials($user, $pass){
$user = mysql_real_escape_string($user);
$pass = mysql_real_escape_string($pass);
$total = mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `user_name` = '{$user}' AND `user_password` = '{$pass}'");
return (mysql_result($total, 0) == '1') ? true : false;
}
// adds a user to the database.
function add_user($user, $email, $pass){
$user = mysql_real_escape_string(htmlentities($user));
$email = mysql_real_escape_string($email);
$pass = sha1($pass);
$charset = array_flip(array_merge(range('a', 'c'), range('A', 'Z'), range(0, 9)));
$aid = implode('', array_rand($charset, 10));
$body = <<<EMAIL
Hi,
Thanks for registering, before you can login you need to activate your account.
To do that simply click the following link.
http://192.168.0.10/usersystem/activate.php={$aid}
EMAIL;
mail($email, 'you new account at website test.com', $body, 'From: admin@website.com');
// insert into database, table_name user : colum user_name, & colum user_password.
mysql_query("INSERT INTO `users` (`user_name`, `user_password`, `user_email`) VALUES ('{$user}', '{$pass}', '{$email}')");
$user_id = mysql_insert_id();
mysql_query("INSET INTO `user_activations` (`user_id`, `activation_code`) VALUE ({$user_id}, '{$aid}')");
}
Re: Please make me understand :)
Posted: Thu Jul 28, 2011 1:29 pm
by jacek
You email is probably running into spam filtering on what ever host you are sending it to. Or you may not have a SMTP server set up properly. But lets deal with the other problem first.
Try adding
echo mysql_error();
after the failing query and see if it tells you why the row is not being inserted.
Re: Please make me understand :)
Posted: Thu Jul 28, 2011 5:22 pm
by JelvinJS7
wizzuriz wrote: if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false){
$errors[] = 'The E-mail address you entered does not appear to be valid.';
}
//shouldn't there be a ?> here?
<p>
//now we're in HTML
<lable for="email">E-mail:</lable>
When are you breaking out of php?
Re: Please make me understand :)
Posted: Thu Jul 28, 2011 6:15 pm
by wizzuriz
JelvinJS7 wrote:wizzuriz wrote: if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false){
$errors[] = 'The E-mail address you entered does not appear to be valid.';
}
//shouldn't there be a ?> here?
<p>
//now we're in HTML
<lable for="email">E-mail:</lable>
When are you breaking out of php?
I´m sorry, its because its very bad explained by me. its just a small bit of all this code.
<?php
include('core/init.inc.php');
$errors = array();
if (isset($_POST['username'], $_POST['password'], $_POST['repeat_password'])){
if (empty($_POST['username'])){
$errors[] = 'The username cannot be empty.';
}
if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false){
$errors[] = 'The E-mail address you entered does not appear to be valid.';
}
if (empty($_POST['password']) || empty($_POST['repeat_password'])){
$errors[] = 'The password cannot be empty.';
}
if ($_POST['password'] !== $_POST['repeat_password']){
$errors[] = 'Password verification failed.';
}
if (user_exists($_POST['username'])){
$errors[] = 'The username you entered is already taken.';
}
if(empty($errors)){
add_user($_POST['username'], $_POST['email'], $_POST['password']);
header('location: protected.php');
die();
}
}
?>
Re: Please make me understand :)
Posted: Thu Jul 28, 2011 6:22 pm
by wizzuriz
Hello Again.
I did a review of all the videos checking all the code and now I get the activations code in the user_activations table.
Now my problem is that Even before I click the link I don´t get because my mail is not working ( not in spam or junk ) I can still log in even with the activations code in the database. I did try to check the code that checks for activations code but I don´t see any thing.
Btw, my cookie is not working
Now I´m on my 3 book on php & Mysql for beginners and its starting to make sense what your saying in all the videos. still some small problems but its getting better.
Thanks for all the help, I really like your videos and forum
Take care, best regards
Wizzuriz