2016-08-19 5 views
0

У меня есть одна страница входа и ее база данных. Я хочу оттуда отправить электронное письмо и сохранить его в другой таблице той же базы данных. Код ниже, пожалуйста, посмотрите и скажите мне.Как сохранить значение сеанса в другой таблице?

Таблица 1

<?php 
session_start(); 
$email = $_POST['email']; 
$password = $_POST['password']; 

include 'connection.php'; 

$sql = "SELECT * FROM users WHERE email='$email' AND password='$password'"; 
$res = mysql_query($sql); 
$count = mysql_num_rows($res); 

if($count == 0) 
{ 
    echo "Username Password Incorrect"; 
} 
else 
{ 
    $_SESSION['email'] = $email; 
    header("location:home2.php") 
} 
?> 

Таблица 2

<?php 

$email= (HOW TO GET IT FROM SESSION?) 

$company = $_POST['company']; 
$project = $_POST['project']; 
$duration = $_POST['duration']; 
$key_learning = $_POST['key_learning']; 

include 'connection.php'; 

$sql = "INSERT INTO `internship`(`id`, `email`, `company`, `project`, `duration`, `key_learning`) VALUES ('', '$email', '$company','$project', '$duration', '$key_learning')"; 
$res = mysql_query($sql); 
$count = mysql_num_rows($res); 

if($count == 1) 
{ 
    echo "Fail"; 
} 
else 
{ 
    $_SESSION['email'] = $email; 
    header("location:home3.php"); 
} 

?> 

Из таблицы 1 я хочу принять электронную почту при использовании сеанса и хочу сохранить его в таблице 2. Как это сделать?

+0

OH NOOOOOO !!!! НЕ ПОЛЬЗУЙТЕ MYSQl. Вместо этого используйте mysqli –

+0

$ email = $ _ SESSIOn ["email"] ??? –

ответ

0

$ электронная почта = (КАК ПОЛУЧИТЬ ОТ СЕССИИ?)

Если второй блок кода в том же контексте исполнения, что и первый, вы можете просто использовать переменную $email, что вы создали.

Если вы пытаетесь извлечь данные из сессии, пользователь переходит на новую страницу, вы делаете:

<?php 
session_start(); 
$email = isset($_SESSION['email'])? $_SESSION['email'] : null; 

Кстати, во 2-ом блоке кода вы пытаетесь использовать mysql_num_rows для проанализируйте эффект запроса INSERT. Вы не можете этого сделать. According to the manual:

[mysql_num_rows] извлекает количество строк из набора результатов. Эта команда действительна только для операторов типа SELECT или SHOW, которые возвращают фактический набор результатов. Чтобы получить количество строк, на которые ссылается запрос INSERT, UPDATE, REPLACE или DELETE, используйте mysql_affected_rows().

$res = mysql_query($sql) or die(mysql_error()); 
if(mysql_affected_rows()){ 
    //success 
}else{ 
    //failure 
} 

Вы не должны использовать mysql_ функции в любом случае, и вы должны определенно не быть вставив при условии пользовательских значений (имя пользователя, адрес электронной почты, пароль) непосредственно в вашем SQL заявлении

+0

Спасибо .. :): D –

Смежные вопросы