Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zapis w tabeli $_SESSION['user']
Forum PHP.pl > Forum > Przedszkole
jorgus
  1. <?php
  2. "INSERT INTO komentarze (ID, tresc, nick, "." data) VALUES ('$id', '$srodek', '$nick', "." NOW());";
  3. ?>


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
Nie rozumiem.. ale.. może o to Ci chodzi:
  1. <?php
  2. if (isset($_SESSION['user']))
  3. $nick = $_SESSION['user'];
  4.  
  5. //dalej dajesz zapytanie. To co wyzej napisalem podmieniasz zmienna $nick gdy sesj
    a 'user' istnieje.
  6. ?>
jorgus
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
Nie wiem czy dobrze zrozumialem, ale zakładając że nick jest unikalny to problem nie istnieje.
NetJaro
Napisz wyraźniej pytanie.. ja nic nie rozumiem :|
jorgus
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 smile.gif
NetJaro
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
  1. <?php
  2. if (isset($_SESSION['prawid_uzyt'])){
  3. $nick = $_SESSION['prawid_uzyt'];
  4.  
  5. //to mi potrzebne żeby wstawić automatycznie nazwę użytkownika do forumularza jeże
    li będzie zalogowany
  6.  
  7. }
  8.  
  9. if ($tresc && $nick ) {
  10.  
  11. //tu sprawdzam czy pola są wypełnione
  12.  
  13. if ($w = mysql_query("select * from users where uzytkownik='$nick'"))
  14.  
  15. //a tu niby to zapytanie o którym niżej
  16. ?>


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 sad.gif nie wiem jak to rozdzielić
Kicok
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
dzięki, ale czy sobie dam radę to nie wiem ....
Luke_Star
Zawsze możesz zrobic że wszyscy niezarejstrowani beda dopisywanie jako "gość". Albo do nazwy niezalogowanego dodawać tylde (~)
jorgus
coś kombinuje tylko nie wiem czy tak może być ? może ktoś zerknąć na ten kod?

  1. <?php
  2. if ($dd=='dodaj') { 
  3.  
  4. $id = intval($id);
  5. $srodek = addslashes(nl2br(htmlentities_iso88592 ($srodek))); 
  6. $nick = addslashes(htmlentities_iso88592 ($nick));
  7.  
  8. if (isset($_SESSION['prawid_uzyt'])){
  9. $nick = $_SESSION['prawid_uzyt'];
  10. if ($tresc && $nick) { 
  11. into(); //dodaje do bazy
  12. } }
  13.  
  14. else {
  15.  
  16. if ($w = mysql_query("select * from users where uzytkownik='$nick'")) 
  17.  
  18. echo 'ten nick jest zarezerwowany';
  19.  
  20.  
  21.  
  22. if ($tresc && $nick) { 
  23. into(); //dodaje do bazy
  24. } }
  25.  
  26. else {
  27.  
  28. echo 'musi być wpisany autor i tresc';
  29.  
  30. }
  31.  
  32. }
  33. ?>
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-2025 Invision Power Services, Inc.