2 つのデータベース テーブルにデータを挿入できるかどうかを知る必要があります。
ユーザーがログオンしているかどうかを確認する次のコードがあります。
<?php
// Start the session (pretty important!)
session_start();
// Establish a link to the database
$dbLink = mysql_connect('localhost', 'DBUSER', 'PW');
if (!$dbLink) die('Can\'t establish a connection to the database: ' . mysql_error());
$dbSelected = mysql_select_db('DBNAME', $dbLink);
if (!$dbSelected) die ('We\'re connected, but can\'t use the table: ' . mysql_error());
$isUserLoggedIn = false;
$query = 'SELECT * FROM users WHERE session_id = "' . session_id() . '" LIMIT 1';
$userResult = mysql_query($query);
if(mysql_num_rows($userResult) == 1){
$_SESSION['user'] = mysql_fetch_assoc($userResult);
$isUserLoggedIn = true;
}else{
if(basename($_SERVER['PHP_SELF']) != 'index.php'){
header('Location: index.php');
exit;
}
}
?>
データベースは次のようになります。
データベース テーブル:ユーザー
---------------------------------------------------------------
| id | name | email | password | registered_date | session_id |
---------------------------------------------------------------
HTML フォームは必要ありません。見た目はわかっているからです。
これで、データベース テーブルにデータを挿入する次のコードができました。上のコードとは異なるデータベーステーブル。
それはphpコードです:
<?php
include ('adresa-site.php');
if(isset($_POST['add']))
{
$dbhost = 'localhost';
$dbuser = 'DBUSER';
$dbpass = 'PW';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Eroare de conexiune: ' . mysql_error());
}
if(! get_magic_quotes_gpc() )
{
$link = $web_site.''.$_POST["stire"].'?idstire='.$_POST["idstire"];
$poza = addslashes ($_POST['poza']);
$nume = addslashes ($_POST['nume']);
$prenume = addslashes ($_POST['prenume']);
$varsta = addslashes ($_POST['varsta']);
$localitatea = addslashes ($_POST['localitatea']);
$numep = addslashes ($_POST['numep']);
$idstire = addslashes ($_POST['idstire']);
$stire = addslashes ($_POST['stire']);
$data = gmDate('Y-m-d H:i:s');
}
else
{
$link = $web_site."".$_POST['stire']."?idstire=".$_POST['idstire'];
$poza = htmlentities($_POST['poza'], ENT_QUOTES | ENT_HTML5);
$nume = htmlentities($_POST['nume'], ENT_QUOTES | ENT_HTML5);
$prenume = htmlentities($_POST['prenume'], ENT_QUOTES | ENT_HTML5);
$varsta = $_POST["varsta"];
$localitatea = htmlentities($_POST['localitatea'], ENT_QUOTES | ENT_HTML5);
$numep = htmlentities($_POST['numep'], ENT_QUOTES | ENT_HTML5);
$idstire = htmlentities($_POST['idstire'], ENT_QUOTES | ENT_HTML5);
$stire = $_POST["stire"];
$data = gmDate('Y-m-d H:i:s');
}
$sql = "INSERT INTO stiri2".
"(link, poza, nume, prenume, varsta, localitatea, numep, idstire, stire, accesari, data) ".
"VALUES('$link','$poza','$nume','$prenume','$varsta','$localitatea','$numep','$idstire','$stire','$accesari', NOW())";
mysql_select_db('DBNAME');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Nu s-au putut adauga datele: ' . mysql_error());
}
echo "
<p class='text-center'>Copiaza si trimite link-ul de mai jos, prietenului tau</p>
<textarea rows='2' cols='55'>http://site.ro/" . $_POST['stire'] . "?idstire=" . $_POST['idstire'] . "</textarea>
<br />
<p class='text-center'>Acceseaza <a target='_blank'href='http://site.ro/" . $_POST['stire'] . "?idstire=" . $_POST['idstire'] . "'>ACEST</a> link pentru previzualizare</p>
";
mysql_close($conn);
}
?>
データベースは次のようになります。
データベース テーブル: stiri2
--------------------------------------------------------------------------------------------------------
| id | link | poza | nume | prenume | varsta | localitatea | numep | idstire | stire | data | accesari |
--------------------------------------------------------------------------------------------------------
ユーザーデータベース テーブルのユーザーは、 stiri2データベース テーブルに新しい情報を挿入したいと考えています。
ユーザーデータベース テーブルからsession_idを取得し、挿入された情報でユーザーとstiri2データベース テーブルを更新する必要があります。
小さな地図を作成します。
ログインしているユーザーのsession_idは、たとえば328234917238914です。
今度は、 stiri2データベース テーブルに格納される新しい情報を挿入したいと考えています。
どのユーザーも自分の情報を追加するので、挿入された情報が重複しないようにする必要があります。
私が知る必要があるのは、現在のユーザーに挿入する方法です..