jorgus
6.08.2006, 09:41:34
<?php
"INSERT INTO komentarze (ID, tresc, nick, "." data) VALUES ('$id', '$srodek', '$nick', "." NOW());";
?>
i chciałbym, a nie wiem jak tak zrobić, żeby jeżeli jest ktoś zalogowany w sesji $_SESSION['user'] zapisał się w tabli zamiast $nick. Jeżeli natomiast nie ma takiej sesji z user to wtedy zapisuje się w tabli jako $nick.
NetJaro
6.08.2006, 09:56:24
Nie rozumiem.. ale.. może o to Ci chodzi:
<?php
if (isset($_SESSION['user'])) $nick = $_SESSION['user'];
//dalej dajesz zapytanie. To co wyzej napisalem podmieniasz zmienna $nick gdy sesj
a 'user' istnieje.
?>
jorgus
6.08.2006, 10:07:39
o to chodziło dzięki,
ale nasuwa sie teraz juz powazny problem, zeby nikt kto jest w bazie i przekazywany jest jego nick sesją nie mógłbyć zastąpiony przez $nick, nawet jeśli nie jest zalogowany ?
revyag
6.08.2006, 11:08:34
Nie wiem czy dobrze zrozumialem, ale zakładając że nick jest unikalny to problem nie istnieje.
NetJaro
6.08.2006, 11:10:37
Napisz wyraźniej pytanie.. ja nic nie rozumiem :|
jorgus
6.08.2006, 14:17:07
no chodzi o to jak zapewne jest tutaj na forum, że jeżeli jako gość wpisze Twój nick to nie będę mógł wysłać posta.
w tamtym przykładzie chodzi o to samo ponieważ normalnie dodawać do bazy mogą niezarejestrowani i chodzi wlaśnie o to żeby nie mogli używać nizków tych zarejestrowanych, których nick będzie przekazywany w sesji.
ale już wiem jak to zrobić, tak mi się chyba wydaje
NetJaro
6.08.2006, 20:08:34
Podczas wysyłania sprawdzaj czy user o takim nicku jest zarejestrowany, i jeżeli jest to po prostu informuj o tym przerywając wykonywanie skryptu.
jorgus
7.08.2006, 11:25:52
<?php
if (isset($_SESSION['prawid_uzyt'])){ $nick = $_SESSION['prawid_uzyt'];
//to mi potrzebne żeby wstawić automatycznie nazwę użytkownika do forumularza jeże
li będzie zalogowany
}
if ($tresc && $nick ) {
//tu sprawdzam czy pola są wypełnione
if ($w = mysql_query("select * from users where uzytkownik='$nick'"))
//a tu niby to zapytanie o którym niżej
?>
no i tak sobie próbuje wykombinować jakby to było, żeby nie mógł nikt wykorzystać nicka który jest zarejestrowany w bazie. Więc mam zapytanie jak powyżej i jeżeli się będzie równał ten z bazy z tym który zostanie wpisany to przerywa działanie. Jest tylko jeden problem, że w takim przypadku problem bedzie równeż wtedy kiedy nick będzie pobrany z sesji - wtedy też będzie przerwane działanie

nie wiem jak to rozdzielić
Kicok
7.08.2006, 12:43:09
Chodzi ci o to, że zalogowani użytkownicy mają tylko wpisać treść komentarza, a ich login zostanie dodany automatycznie. Natomiast niezalogowani będą musieli wpisać swój login do dodatkowego pola w formularzu?
Jeśli tak to najpierw sprawdzasz czy w sesji jest zapisany login - jeśli tak to bez pytania dodajesz jego komentarz do bazy z loginem zapisanym w sesji. Jeśli użytkownik nie jest zalogowany, to odczytujesz login z formularza ($_POST['login']), sprawdzasz, czy któryś z zarejestrowanych użytkowników ma już taki login. Jeśli ma to wyświetlasz prośbę o wpisanie innego loginu, a jeśli nie to dodajesz komentarz do bazy z loginem podanym w formularzu.
jorgus
7.08.2006, 15:11:27
dzięki, ale czy sobie dam radę to nie wiem ....
Luke_Star
7.08.2006, 15:20:22
Zawsze możesz zrobic że wszyscy niezarejstrowani beda dopisywanie jako "gość". Albo do nazwy niezalogowanego dodawać tylde (~)
jorgus
7.08.2006, 17:09:48
coś kombinuje tylko nie wiem czy tak może być ? może ktoś zerknąć na ten kod?
<?php
if ($dd=='dodaj') {
$nick = addslashes(htmlentities_iso88592
($nick));
if (isset($_SESSION['prawid_uzyt'])){ $nick = $_SESSION['prawid_uzyt'];
if ($tresc && $nick) {
into(); //dodaje do bazy
} }
else {
if ($w = mysql_query("select * from users where uzytkownik='$nick'"))
echo 'ten nick jest zarezerwowany';
if ($tresc && $nick) {
into(); //dodaje do bazy
} }
else {
echo 'musi być wpisany autor i tresc';
}
}
?>
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.