Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekazanie danych do tabeli mysql
Forum PHP.pl > Forum > Gotowe rozwiązania
slawko
Mam skrypt logowania, po zalogowaniu przenosi mnie do strony gdzie jest formularz do wysłania danych do tabeli:

[php:1:101610eb10]<?php
$zapytanie = "INSERT INTO xxx SET username='$username'";


$wykonaj = mysql_query ($zapytanie);
echo "<BR>Dziękujemy, dane zostały dodane poprawnie...";
}
else {
echo "<form method="get" action="dodaj.php">

<input type="hidden" name="username" size="20" value="jakisusername">
?>[/php:1:101610eb10]


Dotychczas nie miałem logowania, katalog z formularzem był zabezpieczony hasłem, wpisywalem ręcznie username w pole "value" (kazdy uzytkownik mial wlasny formularz...). Ostatnio ściągnąłem skrypt do logowania, który w określonej tabeli zapisuje username i hasło użytkownika, umożliwia zalogowanie. Nie wiem jednak jak przesłać username aktualnie zalogowanej osoby wypełniającej forrmularz do pola w tabeli xxx.

Proszę o pomoc...
[/code][/sql]
Fo
Cytat
Nie wiem jednak jak przesłać username aktualnie zalogowanej osoby wypełniającej forrmularz do pola w tabeli xxx.

[php:1:d51f109419]$zapytanie = "INSERT INTO xxx SET username='$username' WHERE user='$user'"; [/php:1:d51f109419]
to chyba powinno wygladac mniej wiecej jakos tak ale jesli sie myle (moge) to mnie poprawcie.. 8)
slawko
Nie działa niestety. Próbowałem też tak:
[php:1:5b8aa01f40]<?php
user=$_SESSION['user']
?>[/php:1:5b8aa01f40]
ale niestety też nie działa.
Fo
aa przesylasz dane GET'em czy POST'em,
bo moglbys sproobowac rowniez tak :
dla metody GET -> $user = $_POST['user'];
dla metody POST -> $user = $_POST['user'];

mhm.. jak dalej nie bedzie dzialac to sprawdz na stronie ktora jest odpowiedzialna za wykonanie instrukcji czy zmienne napewno sie przeslaly .. .w tym celu : echo $_POST['user']; albo echo $_GET['user'];
slawko
Przesyłam GET'em. Niestety dalej nie działa.
slawko
Opiszę wszystko bardziej szczegółowo...

Skrypt do logowania:
Tabela:
[php:1:bdc35ac12c]<?php
<?php
require('db_connect.php'); // require above script, change the path to match wherever you put it.

$table = "CREATE TABLE users (
id int(10) DEFAULT '0' NOT NULL auto_increment,
username varchar(40),
password varchar(50),
regdate varchar(20),
email varchar(100),
website varchar(150),
location varchar(150),
show_email int(2) DEFAULT '0',
last_login varchar(20),
PRIMARY KEY(id))";

$create = $db_object->query($table); // perform query

if(DB::isError($create)) {
die($create->getMessage()); // check is query was successful
} // if not error and exit.
else{
echo 'Table created successfully.';
}
$db_object->disconnect();
?>

?>[/php:1:bdc35ac12c]


Login (login.php)
[php:1:bdc35ac12c]<?php
<?php
require('db_connect.php'); // database connect script.
if($logged_in == 1) {
die('You are already logged in, '.$_SESSION['username'].'.');
}
?>
<html>
<head>
<title>Login</title>
</head>
<body>
<?php
if(isset($_POST['submit'])) { // if form has been submitted
/* check they filled in what they were supposed to and authenticate */
if(!$_POST['uname'] | !$_POST['passwd']) {
die('You didn't fill in a required field.');
}
// authenticate.
if(!get_magic_quotes_gpc()) {
$_POST['uname'] = addslashes($_POST['uname']);
}
$check = $db_object->query("SELECT username, password FROM users WHERE username = '".$_POST['uname']."'");
if(DB::isError($check)) {
die('That username doesn't exist in our database.');
}
$info = $check->fetchRow();
// check passwords match
$_POST['passwd'] = stripslashes($_POST['passwd']);
$info['password'] = stripslashes($info['password']);
$_POST['passwd'] = md5($_POST['passwd']);
if($_POST['passwd'] != $info['password']) {
die('Incorrect password, please try again.');
}

// if we get here username and password are correct, register session variables and set
// last login time.
$date = date('m d, Y');
$update_login = $db_object->query("UPDATE users SET last_login = '$date' WHERE username = '".$_POST['uname']."'");
$_POST['uname'] = stripslashes($_POST['uname']);
$_SESSION['username'] = $_POST['uname'];
$_SESSION['password'] = $_POST['passwd'];
$db_object->disconnect();
?>
<h1>Logged in</h1>
<p>Welcome back <?=$_SESSION['username']?>, you are logged in.</p>
<?php
}
else { // if form hasn't been submitted
?>
<h1>Login</h1>
<form action="<?=$HTTP_SERVER_VARS['PHP_SELF']?>" method="post">
<table align="center" border="1" cellspacing="0" cellpadding="3">
<tr><td>Username:</td><td><input type="text" name="uname" maxlength="40"></td></tr>
<tr><td>Password:</td><td><input type="password" name="passwd" maxlength="50"></td></tr>
<tr><td colspan="2" align="right"><input type="submit" name="submit" value="Login"></td></tr>
</table>
</form>
<?php
}
?>
</body>
</html>

?>[/php:1:bdc35ac12c]


Formularz, służący do wysyłania danych do bazy:(add.php)[php:1:bdc35ac12c]<?php
<?php
if($send=='Wyslij') {
mysql_connect ("db","user","password");
mysql_select_db (xxx);
$zapytanie = "INSERT INTO xxx SET data='$data', username='$username'";
$wykonaj = mysql_query ($zapytanie);
echo "<BR>Dziękujemy, dane zostały dodane poprawnie...";
}
else {
echo "<form method="get" action="add.php">


<div align="center">
<center>
<table border="1" width="50%" bordercolorlight="green" cellspacing="0" cellpadding="0">
<br>

<tr>
<td width="50%" align="center"><b><font size=2 face=Verdana>Data </font></b></td>
<td width="50%" align="center"><font size="2" face="Verdana"><input type="text" name="data" size="20"></font></td>
</tr>

<input type="hidden" name="username" size="20" value="username">

</table>
</center>
</div>
</form>";
}

?>


?>[/php:1:bdc35ac12c]

Co zmienić by jako username był przesyłany username osoby zalogowanej?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.