Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Kuinka luen tallentajan?

kettu [03.05.2004 17:07:27]

#

Hei!

Teen ylläpitopuolta, jossa hyödynnän istuntopiparia globaalin muuttujan cookien avulla. Minulla on nyt muuten toimiva päivityslomake tehtynä, mutta kuinka luen sen hetkisen tallentajan tietokantaan? Ylläpitoon on useampi tunnus ja tunnuksilla pääsee päivittämään muidenkin tallentamia tietoja. Seuraavalla $kyselyllä ilman lisämääreitä ei tulostu sen hetkisen käyttäjän nimeä vaan tietokannan ensimmäinen. Hyödynnänkö jotenkin istuntopiparia tässä vai mikä olisi simppeli ratkaisu tallentamaan $tallentaja-muutuujaan sen hetkinen tunnuksilla kirjautunut käyttäjä?

Koodinpätkää...

$kysely = mysql_query("select * from kayttaja where tunnus= ??? ");
$tieto = mysql_fetch_row($kysely);

// luetaan muuttujaan, kumpaa nappia käyttäjä painoi edellisellä lomakkeella
$nappi = $_POST['nappi'];
// luetaan sitten muutkin muuttujien arvot
$id = $_POST['id'];
$otsikko = $_POST['otsikko'];
$wwwosoite = $_POST['wwwosoite'];
$tallentaja = $tieto[1]; // vai mikä ????;

Olen vasta aloittelija ja tunnun hukkuvan tietoviidakkoon. Kiitos jo etukäteen vinkeistä ja avuista.

ajv [03.05.2004 19:21:15]

#

Hmm... Mainostan koodivinkkiäni, siitä saattaa olla apua:
https://www.ohjelmointiputka.net/koodivinkit/24301-php-kirjautuminen-rekisteröityminen-mysql-llä
Tuossa systeemissä pipariin tallennetaan käyttäjäkohtainen istunto, jonka avulla käyttäjän tiedot saa helposti luettua:

$kysely = mysql_query("SELECT tunnus FROM kayttajat WHERE istunto = '".$_COOKIE['istunto']."'");
$tieto = mysql_fetch_row($kysely);
$tallentaja = $tieto['tunnus'];

kettu [04.05.2004 11:01:51]

#

Näyttää mielenkiintoiselta ja toimivalta, mutta en saa poimittua tuolla kyselyllä $tallentajaa. En tosin saa mitään herjaustakaan, $tallentajaa ei vain tulostu. Mitähän teen väärin?

$kysely = mysql_query("select tunnus from kayttaja where istuntotunnus = '".$_COOKIE['istuntotunnus']."'");
mysql_error();
$tieto = mysql_fetch_row($kysely);
mysql_error();
$tallentaja = $tieto['tunnus'];
mysql_error();
print "Tallentaja on: $tallentaja";
mysql_error();

Piparini on asetettu seuraavasti:

setcookie("istuntopipari","$istunto");

Ja kayttaja-tauluni on seuraavanlainen:

create table kayttaja
(
id int(11) not null auto_increment primary key,
tunnus varchar(10) not null,
salasana varchar(100) not null,
aika timestamp,
istuntotunnus varchar(32),
);

ajv [04.05.2004 12:04:24]

#

setcookie("istuntopipari","$istunto");
muotoon
setcookie("istuntotunnus","$istunto");

kettu [04.05.2004 12:44:20]

#

Hei!

En saanut tuollainkaan pelaamaan (varmaan vika tämän pään nupissa). Mutta onnistuin tälläin kun lisäsin rivin lisää koodiini:

$kysely = mysql_query("select tunnus from kayttaja where istuntotunnus = '$istuntopipari' ");
$rivit = mysql_num_rows($kysely);
/* uusi rivi --> */ $tallentaja = mysql_fetch_row($kysely);

Josta sitten pääsin lukemaan tallentajan tunnuksen $tallentaja[0].

Kiitos oikein paljon avusta! Koodivinkkisi https://www.ohjelmointiputka.net/koodivinkit/24301-php-kirjautuminen-rekisteröityminen-mysql-llä vaikuttaa mielenkiintoiselta. Pitää alkaa testailemaan sitä toisessa harkassa.

ajv [04.05.2004 14:09:22]

#

Mun moka. Kehotin käyttämään mysql_fetch_row()-funktiota, vaikka tarkoitin mysql_fetch_array()-funktiota. mysql_fetch_array()-funktio palauttaa taulun rivistä taulukon, jonka alkioina on sekä taulun sarakkeen nimi ($tallentaja['tunnus']), että sen indexi ($tallentaja[0]).

edit:

https://www.php.net/manual/en/function.mysql-fetch-array.php:

mysql_fetch_array() is an extended version of mysql_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta