Jump to content

Recommended Posts

I want this code to show an error if the passkey is not found, but at present if the passkey doesn't exist it just show a blank screen

 

<?php
include('config.php');

$passkey=$_GET['passkey'];

// Passkey that got from link
## added here
if (!isset($_GET['passkey']))

{
echo "Error here :: PASSKEY NOT FOUND ";
}
else
{

## table name
$tbl_name="temp_users";
$tbl_name2="users";

// after connecting succesfully: 
$sql1 = "SELECT * FROM $tbl_name WHERE confirm_code ='$passkey'";
$result = mysql_query($sql1) or die(mysql_error());

// while there is a result, fetch it into an array... 

while ($row = mysql_fetch_array($result))
{
$sql2="INSERT INTO $tbl_name2(name, address, address1, address2, address3, address4, county, zip, telephone, email, username, password, user)VALUES('".$row['name'] . "', '".$row['address'] . "', '".$row['address1'] . "', '".$row['address2'] . "', '".$row['address3'] . "', '".$row['address4'] . "', '".$row['county'] . "', '".$row['zip'] . "', '".$row['telephone'] . "', '".$row['email'] . "', '".$row['username'] . "', '".$row['password'] . "', 1)";
$result2=mysql_query($sql2)or die(mysql_error());
echo "Your account has been activated";
$sql3="DELETE FROM $tbl_name WHERE confirm_code = '$passkey'";
$result3=mysql_query($sql3)or die(mysql_error());
} 
}
?> 

 

 

Link to comment
https://forums.phpfreaks.com/topic/79534-solved-passkey-not-found/
Share on other sites

<?php
include('config.php');

//Cleanup
#$passkey=$_GET['passkey'];
$passkey = mysql_escape_string($_GET['passkey']);

// Passkey that got from link
## added here
if (!isset($_GET['passkey']))
{
echo "Error here :: PASSKEY NOT ENTERED";
}else{
## table name
$tbl_name="temp_users";
$tbl_name2="users";

// after connecting succesfully: 
$sql1 = "SELECT * FROM $tbl_name WHERE confirm_code ='$passkey'";
$result = mysql_query($sql1) or die(mysql_error());
$found = mysql_num_rows( $result);
if($found > 0)
{
	// while there is a result, fetch it into an array... 
	while ($row = mysql_fetch_array($result))
	{
		$sql2="INSERT INTO $tbl_name2(name, address, address1, address2, address3, address4, county, zip, telephone, email, username, password, user)VALUES('".$row['name'] . "', '".$row['address'] . "', '".$row['address1'] . "', '".$row['address2'] . "', '".$row['address3'] . "', '".$row['address4'] . "', '".$row['county'] . "', '".$row['zip'] . "', '".$row['telephone'] . "', '".$row['email'] . "', '".$row['username'] . "', '".$row['password'] . "', 1)";
		$result2=mysql_query($sql2)or die(mysql_error());
		echo "Your account has been activated";
		$sql3="DELETE FROM $tbl_name WHERE confirm_code = '$passkey'";
		$result3=mysql_query($sql3)or die(mysql_error());
	}
}else{
	echo "Error here :: PASSKEY NOT FOUND ";
}
}
?>

Could you explain what these lines do?

 

$passkey = mysql_escape_string($_GET['passkey']);

Okay.. this is to stop SQL Injection..

 

 

AND

 

while ($row = mysql_fetch_array($result))

this sets $row to the array of the next record, if their a no more records it returns false (which ends the loop)

 

so if you had 5 records you could do this

$row1 = mysql_fetch_array($result);
$row2 = mysql_fetch_array($result);
$row3 = mysql_fetch_array($result);
$row4 = mysql_fetch_array($result);
$row5 = mysql_fetch_array($result);

 

but

while ($row = mysql_fetch_array($result))

is better as you don't need to know the number of records

 

hope that helps

 

NB: records = rows

Sorry 1 more question

 

In my scenario the user clicks on a confirmation email to activate the account. Wouldn't this part of the code never come into play???

 

// Passkey from link
if (!isset($_GET['passkey']))
{
echo "Error here :: PASSKEY NOT ENTERED";

 

 

if the URL does NOT contains

passkey=

then that code will be triggered

 

a have reviewed you code and tweaked it a little, (didn't really read it first time, i see so much code everyday lol)

 

<?php
include('config.php');

// Passkey that got from link
## added here
if (!isset($_GET['passkey']))
{
echo "Error here :: Validation Failed";
}else{
//Cleanup
$passkey = mysql_escape_string($_GET['passkey']);

## table name
$tbl_name="temp_users";
$tbl_name2="users";

// after connecting succesfully: 
$sql1 = "SELECT * FROM $tbl_name WHERE confirm_code ='$passkey'";
$result = mysql_query($sql1) or die(mysql_error());
$found = mysql_num_rows( $result);
if($found > 0)
{
	//Don't need loop as only 1 record is valid per passkey
	$row = mysql_fetch_array($result);
	$sql2="INSERT INTO $tbl_name2(name, address, address1, address2, address3, address4, county, zip, telephone, email, username, password, user)VALUES('".$row['name'] . "', '".$row['address'] . "', '".$row['address1'] . "', '".$row['address2'] . "', '".$row['address3'] . "', '".$row['address4'] . "', '".$row['county'] . "', '".$row['zip'] . "', '".$row['telephone'] . "', '".$row['email'] . "', '".$row['username'] . "', '".$row['password'] . "', 1)";
	$result2=mysql_query($sql2)or die(mysql_error());
	echo "Your account has been activated";
	$sql3="DELETE FROM $tbl_name WHERE confirm_code = '$passkey'";
	$result3=mysql_query($sql3)or die(mysql_error());
}else{
	echo "Error here :: PASSKEY NOT FOUND ";
}
}
?>

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.