переменная php / mysql - PullRequest
       4

переменная php / mysql

0 голосов
/ 20 ноября 2011

Я пытаюсь использовать содержимое 2 переменных на 2 страницах php, но не могу заставить его работать.

$connect = mysql_connect('localhost', 'username', 'password');

if(!$connect)

{
    die('Could not connect to the database: ' . mysql_error());
}

mysql_select_db("database", $connect);


$id   = $lastid; // in the page I created this variable i have: $lastid = mysql_insert_id()

$code = $random; // in the page I created this variable i have: $random = rand(123456789,98765432); 

if($id&&$code)
{
    $check= mysql_query('SELECT * FROM members WHERE id= "$id" AND random = "$code"');
    $checknum = mysql_num_rows('$check');

    if($checknum == '1') // run query to activate the account
    {
        $acti= mysql_query('UPDATE members SET activation = "1" WHERE id= "$id"');

        die('Your account has been activated. You may now log in!');

    }else{

        die('Invalid id or activation code.');
    }

}else{

    die('Could not either find $id or $code!'); 
}

?>

Я был бы в порядке, если бы мог использовать mysql_insert_id() намоя новая страница, но mysql_insert_id() не работает, если я не изменяю базу данных.

Ответы [ 2 ]

3 голосов
/ 20 ноября 2011

Вам нужно использовать $_SESSION хранилище, чтобы они сохранялись на двух страницах. Прочтите руководство PHP по хранению сессии.

// The first page...
session_start();
// Store variables in `$_SESSION`
$_SESSION['id']   = mysql_insert_id();
$_SESSION['code'] = rand(123456789,98765432); 


// The next page:
session_start();
// Retrieve $id and $code from $_SESSION
$id   = $_SESSION['id'];
$code = $_SESSION['code'];

// etc... the rest of your code...
if($id&&$code)
{
    $check= mysql_query('SELECT * FROM members WHERE id= "$id" AND random = "$code"');
    $checknum = mysql_num_rows('$check');

    if($checknum == '1') // run query to activate the account
    {
        $acti= mysql_query('UPDATE members SET activation = "1" WHERE id= "$id"');
        die('Your account has been activated. You may now log in!');
    }else{
        die('Invalid id or activation code.');
    }
}else{
    die('Could not either find $id or $code!'); 
}

Вкратце, вызовите session_start() в верхней части любого скрипта, для которого вам нужен доступ к переменным сеанса. Затем сохраните значения в суперглобальном массиве $_SESSION или получите доступ к ранее сохраненным значениям.

1 голос
/ 20 ноября 2011

Если у вас есть две отдельные страницы (скажем, page1.php), содержит [в качестве примера]:

<?php
$lastid = mysql_insert_id();
$random = rand(123456789,98765432); //you should really use mt_rand() with a proper number 
?>

Вы хотите передать значения в page2.php, но значения будут потеряны при переходе к page2.php Вам нужно будет хранить их в сеансе так:

<?php
session_start();
$_SESSION['lastid'] = mysql_insert_id();
$_SESSION['random'] = rand(123456789,98765432); 
?>

Тогда вы можете получить к ним доступ, например, на странице page2.php

<?php
session_start();
$connect = mysql_connect('localhost', 'username', 'password')or die('Could not connect to the database: '.mysql_error());
mysql_select_db("database", $connect);

$id   = $_SESSION['lastid'];
$code = $_SESSION['random'];

if(isset($id)&&isset($code)){
    $check= mysql_query('
    SELECT * 
    FROM members 
    WHERE id="'.mysql_real_escape_string($id).'" AND random="'.mysql_real_escape_string($code).'"');


    if(mysql_num_rows($check) == '1') // run query to activate the account
    {
       mysql_query('UPDATE members SET activation = "1" WHERE id= "'.mysql_real_escape_string($id).'"');
       //Really you should use the header to redirect to the login page, or set user as logged in
        die('Your account has been activated. You may now log in!');
    }else{
        //Really you should use the header to redirect to a warning
        die('Invalid id or activation code.');
    }

}else{
   //Really you should not tell the user about codes or ids and just redirect them to home
    die('Could not either find $id or $code!'); 
}

?>

Также обратите внимание на изменения синтаксиса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...