Jump to content

functions.php


andy5000_uk15

Recommended Posts

Hi everyone, im new to PHP and these forums, but im in a desperate plee for some help.

I have an intel mac and installed the latest version of MAMP. so i could test some php that i have made, well followed a tutorial on how to make a login system.

Heres the link of the tutorial.

http://www.roscripts.com/PHP_login_script-143.html

 

i have followed it pretty much to the dot but im getting this error.

 

Warning: include(functions.php) [function.include]: failed to open stream: No such file or directory in /Applications/MAMP/htdocs/login.php on line 3

 

Warning: include() [function.include]: Failed opening 'functions.php' for inclusion (include_path='.:/Applications/MAMP/bin/php5/lib/php') in /Applications/MAMP/htdocs/login.php on line 3

 

i have been told that MAMP sometimes misses some of the pear files out on the install. and have already created a db.php that was missing thanks to some help but as i dont know what files should be there i think i will get these errors for quite some time.

 

Anybody know where i can get a list, preferably with the files of the missing .php files.

 

thanks for the help

Andrew

Link to comment
Share on other sites

I use MAMP every day and have used it for years. MAMP is fully contained, there is no 'missing' anything. It's not like the installer selects which files it's going to install; it installs them all.

 

Your problem probably that the file doesn't exist in the document root or relative location on your virtual server. what is your apache document root and where is this script and function.php in relation to document root and each other?

Link to comment
Share on other sites

i dont have a file called functions.php anywhere. i dont know what it does or is supposed to do. like i say i am a newbie.

this is the login.php

 

<?php

require_once('db.php');

include('functions.php');

 

if(isset($_POST['Login']))

{

if($_POST['username']!='' && $_POST['password']!='')

{

//Use the input username and password and check against 'users' table

$query = mysql_query('SELECT ID, Username, Active FROM users WHERE Username = "'.mysql_real_escape_string($_POST['username']).'" AND Password = "'.mysql_real_escape_string(md5($_POST['password'])).'"');

 

if(mysql_num_rows($query) == 1)

{

$row = mysql_fetch_assoc($query);

if($row['Active'] == 1)

{

$_SESSION['user_id'] = $row['ID'];

$_SESSION['logged_in'] = TRUE;

header("Location: members.php");

}

else {

$error = 'Your membership was not activated. Please open the email that we sent and click on the activation link';

}

}

else {

$error = 'Login failed !';

}

}

else {

$error = 'Please user both your username and password to access your account';

}

}

?>

 

<?php if(isset($error)){ echo $error;}?>

<form action="<?=$_SERVER['PHP_SELF']?>" method="post">

<input type="text" id="username" name="username" size="32" value="" />

<input type="password" id="password" name="password" size="32" value="" />

<input type="submit" name="Login" value="Login" />

</form>

Link to comment
Share on other sites

From a quick glance, this is what goes in the functions.php page.

 

<?php
function checkLogin($levels)
{
	if(!$_SESSION['logged_in'])
	{
		$access = FALSE;
	}
	else {
		$kt = split(' ', $levels);

		$query = mysql_query('SELECT Level_access FROM users WHERE ID = "'.mysql_real_escape_string($_SESSION['user_id']).'"');
		$row = mysql_fetch_assoc($query);

		$access = FALSE;

		while(list($key,$val)=each($kt))
		{
			if($val==$row['Level_access'])
			{//if the user level matches one of the allowed levels
				$access = TRUE;
			}
		}
	}
	if($access==FALSE)
	{
		header("Location: login.php");
	}
	else {
	//do nothing: continue
	}

}
?>

Link to comment
Share on other sites

right now we are getting somewhere, no errors on the login page now, but im getting an error on the registration page (shown below).

 

Fatal error: Call to undefined function valid_email() in /Applications/MAMP/htdocs/registration.php on line 7

 

here is the registration file.

 

<?php

require_once('db.php');

include('functions.php');

 

if(isset($_POST['register']))

{

if($_POST['username']!='' && $_POST['password']!='' && $_POST['password']==$_POST['password_confirmed'] && $_POST['email']!='' && valid_email($_POST['email'])==TRUE && checkUnique('Username', $_POST['username'])==TRUE && checkUnique('Email', $_POST['email'])==TRUE)

{

 

$query = mysql_query("INSERT INTO users (`Username` , `Password`, `Email`, `Random_key`) VALUES ('".mysql_real_escape_string($_POST['username'])."', '".mysql_real_escape_string(md5($_POST['password']))."', '".mysql_real_escape_string($_POST['email'])."', '".random_string('alnum', 32)."')") or die(mysql_error());

 

$getUser = mysql_query("SELECT ID, Username, Email, Random_key FROM users WHERE Username = '".mysql_real_escape_string($_POST['username'])."'") or die(mysql_error());

 

if(mysql_num_rows($getUser)==1)

{//there's only one MATRIX :PP

 

$row = mysql_fetch_assoc($getUser);

$headers = 'From: webmaster@ourdomainhere.com' . "\r\n" .

    'Reply-To: webmaster@ourdomainhere.com' . "\r\n" .

    'X-Mailer: PHP/' . phpversion();

$subject = "Activation email from ourdomainhere.com";

$message = "Dear ".$row['Username'].", this is your activation link to join our website. In order to confirm your membership please click on the following link: http://www.ourdomainhere.com/confirm.php?ID=".$row['ID']."&key=".$row['Random_key']." Thank you for joining";

if(mail($row['Email'], $subject, $message, $headers))

{//we show the good guy only in one case and the bad one for the rest.

$msg = 'Account created. Please login to the email you provided during registration and confirm your membership.';

}

else {

$error = 'I created the account but failed sending the validation email out. Please inform my boss about this cancer of mine';

}

}

else {

$error = 'You just made possible the old guy (the impossible). Please inform my boss in order to give you the price for this.';

}

 

}

else {

$error = 'There was an error in your data. Please make sure you filled in all the required data, you provided a valid email address and that the password fields match';

}

}

?>

<?php if(isset($error)){ echo $error;}?>

<?php if(isset($msg)){ echo $msg;} else {//if we have a mesage we don't need this form again.?>

<form action="<?=$_SERVER['PHP_SELF']?>" method="post">

Username: <input type="text" id="username" name="username" size="32" value="<?php if(isset($_POST['username'])){echo $_POST['username'];}?>" /><br />

Password: <input type="password" id="password" name="password" size="32" value="" /><br />

Re-password: <input type="password" id="password_confirmed" name="password_confirmed" size="32" value="" /><br />

Email: <input type="text" id="email" name="email" size="32" value="<?php if(isset($_POST['email'])){echo $_POST['email'];}?>" /><br />

<input type="submit" name="register" value="register" /><br />

</form>

<? } ?>

 

(how do you show code like the previous poster has done?)

 

i presume i need to change the bits where it says ourdomainhere.com but will i be able to change them if i am only hosting it on a local server.

 

thanks again for the help

Link to comment
Share on other sites

there is no function called valid_email anywhere in your code. here is the one i use. you might copy/paste it into your functions.php file.

 

function valid_email($eaddr) {
if (!ereg("([[:alnum:]\.\-]+)(\@[[:alnum:]\.\-]+\.+)", $eaddr)) {
	return false;
}
return true;
}

Link to comment
Share on other sites

Put it in code tags When you reply, it is the # button.  You will have to go back to the roscripts page, and the valid_email function is linked in the 11th paragraph right at the end.  There are 2 other functions that you will have to get as well.  They are also linked there.

Link to comment
Share on other sites

ok, so i copied those 3 functions into the functions.php

when i try to register i get:

 

Warning: Missing argument 3 for checkUnique(), called in /Applications/MAMP/htdocs/registration.php on line 7 and defined in /Applications/MAMP/htdocs/functions.php on line 70

 

Notice: Undefined variable: compared in /Applications/MAMP/htdocs/functions.php on line 72

 

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /Applications/MAMP/htdocs/functions.php on line 73

 

Warning: Missing argument 3 for checkUnique(), called in /Applications/MAMP/htdocs/registration.php on line 7 and defined in /Applications/MAMP/htdocs/functions.php on line 70

 

Notice: Undefined variable: compared in /Applications/MAMP/htdocs/functions.php on line 72

 

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /Applications/MAMP/htdocs/functions.php on line 73

No database selected

 

any clues?

Link to comment
Share on other sites

<#><?php

function checkLogin($levels)

{

if(!$_SESSION['logged_in'])

{

$access = FALSE;

}

else {

$kt = split(' ', $levels);

 

$query = mysql_query('SELECT Level_access FROM users WHERE ID = "'.mysql_real_escape_string($_SESSION['user_id']).'"');

$row = mysql_fetch_assoc($query);

 

$access = FALSE;

 

while(list($key,$val)=each($kt))

{

if($val==$row['Level_access'])

{//if the user level matches one of the allowed levels

$access = TRUE;

}

}

}

if($access==FALSE)

{

header("Location: login.php");

}

else {

//do nothing: continue

}

 

}

function valid_email($eaddr) {

if (!ereg("([[:alnum:]\.\-]+)(\@[[:alnum:]\.\-]+\.+)", $eaddr)) {

return false;

}

return true;

}

 

function random_string($type = 'alnum', $len = 8)

{

switch($type)

{

case 'alnum' :

case 'numeric' :

case 'nozero' :

 

switch ($type)

{

case 'alnum' : $pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

break;

case 'numeric' : $pool = '0123456789';

break;

case 'nozero' : $pool = '123456789';

break;

}

 

$str = '';

for ($i=0; $i < $len; $i++)

{

$str .= substr($pool, mt_rand(0, strlen($pool) -1), 1);

}

return $str;

  break;

case 'unique' : return md5(uniqid(mt_rand()));

  break;

}

}

 

function checkUnique($table, $field, $compared)

{

$query = mysql_query('SELECT  '.mysql_real_escape_string($field).' FROM '.mysql_real_escape_string($table).' WHERE "'.mysql_real_escape_string($field).'" = "'.mysql_real_escape_string($compared).'"');

if(mysql_num_rows($query)==0)

{

return TRUE;

}

else {

return FALSE;

}

}

 

?>

</#>

 

Link to comment
Share on other sites

<code> if($_POST['username']!='' && $_POST['password']!='' && $_POST['password']==$_POST['password_confirmed'] && $_POST['email']!='' && valid_email($_POST['email'])==TRUE && checkUnique('Username', $_POST['username'])==TRUE && checkUnique('Email', $_POST['email'])==TRUE) </code>

that is line 7 at the moment, are you saying remove that and instead put

<code>checkUnique('users','Username', $_POST['username'])</code>

 

thanks

im really not getting how to put it into code am i

Link to comment
Share on other sites

ah ok, thanks

 

Parse error: syntax error, unexpected T_IF in /Applications/MAMP/htdocs/registration.php on line 7

 

this is the error now.ahhhh will this ever end.lol.

 

{
	checkUnique('users','Username', $_POST['username']) if($_POST['username']!='' && $_POST['password']!='' && $_POST['password']==$_POST['password_confirmed'] && $_POST['email']!='' && valid_email($_POST['email'])==TRUE && checkUnique('Username', $_POST['username'])==TRUE && checkUnique('Email', $_POST['email'])==TRUE) 
	{

 

thats line 6-8

thanks

Link to comment
Share on other sites

{
checkUnique('users','Username', $_POST['username']) {if($_POST['username']!='' && $_POST['password']!='' && $_POST['password']==$_POST['password_confirmed'] && $_POST['email']!='' && valid_email($_POST['email'])==TRUE && checkUnique('Username', $_POST['username'])==TRUE && checkUnique('Email', $_POST['email'])==TRUE) 
}		
{

 

You can try that, not sure why the if statement is there though

 

Link to comment
Share on other sites

this lines

{
if($_POST['username']!='' && $_POST['password']!='' && $_POST['password']==$_POST['password_confirmed'] && $_POST['email']!='' && valid_email($_POST['email'])==TRUE && checkUnique('users','Username', $_POST['username'])==TRUE && checkUnique('users','Email', $_POST['email'])==TRUE) 
{

Link to comment
Share on other sites

error recieved

Parse error: syntax error, unexpected T_ELSE in /Applications/MAMP/htdocs/registration.php on line 39

do you think this is ever going to work. im learning fast here.really appreaciate it.

<?php
require_once('db.php');
include('functions.php');

if(isset($_POST['register']))
{
{
if($_POST['username']!='' && $_POST['password']!='' && $_POST['password']==$_POST['password_confirmed'] && $_POST['email']!='' && valid_email($_POST['email'])==TRUE && checkUnique('users','Username', $_POST['username'])==TRUE && checkUnique('users','Email', $_POST['email'])==TRUE) 
{
}		


		$query = mysql_query("INSERT INTO users (`Username` , `Password`, `Email`, `Random_key`) VALUES ('".mysql_real_escape_string($_POST['username'])."', '".mysql_real_escape_string(md5($_POST['password']))."', '".mysql_real_escape_string($_POST['email'])."', '".random_string('alnum', 32)."')") or die(mysql_error());

		$getUser = mysql_query("SELECT ID, Username, Email, Random_key FROM users WHERE Username = '".mysql_real_escape_string($_POST['username'])."'") or die(mysql_error());

		if(mysql_num_rows($getUser)==1)
		{//there's only one MATRIX :PP

			$row = mysql_fetch_assoc($getUser);
			$headers = 	'From: webmaster@ourdomainhere.com' . "\r\n" .
    					'Reply-To: webmaster@ourdomainhere.com' . "\r\n" .
    					'X-Mailer: PHP/' . phpversion();
			$subject = "Activation email from ourdomainhere.com";
			$message = "Dear ".$row['Username'].", this is your activation link to join our website. In order to confirm your membership please click on the following link: http://www.ourdomainhere.com/confirm.php?ID=".$row['ID']."&key=".$row['Random_key']." Thank you for joining";
			if(mail($row['Email'], $subject, $message, $headers))
			{//we show the good guy only in one case and the bad one for the rest.
				$msg = 'Account created. Please login to the email you provided during registration and confirm your membership.';
			}
			else {
				$error = 'I created the account but failed sending the validation email out. Please inform my boss about this cancer of mine';
			}
		}
		else {
			$error = 'You just made possible the old guy (the impossible). Please inform my boss in order to give you the price for this.';
		}

	}
	else {		
		$error = 'There was an error in your data. Please make sure you filled in all the required data, you provided a valid email address and that the password fields match';	
	}
}
?>
<?php if(isset($error)){ echo $error;}?>
<?php if(isset($msg)){ echo $msg;} else {//if we have a mesage we don't need this form again.?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
Username: <input type="text" id="username" name="username" size="32" value="<?php if(isset($_POST['username'])){echo $_POST['username'];}?>" /><br />
Password: <input type="password" id="password" name="password" size="32" value="" /><br />
Re-password: <input type="password" id="password_confirmed" name="password_confirmed" size="32" value="" /><br />
Email: <input type="text" id="email" name="email" size="32" value="<?php if(isset($_POST['email'])){echo $_POST['email'];}?>" /><br />
<input type="submit" name="register" value="register" /><br />
</form>
<? } ?>

 

 

Link to comment
Share on other sites

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.