Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Komentarze dla zalogowanych użytkowników
Forum PHP.pl > Forum > Przedszkole
annie
Hej! smile.gif Tworzę stronę do której dostęp otrzymuję się po zalogowaniu. Korzystam ze skryptu do logowania i rejestracji które znalazłam w internecie (link, link i link). Wiem, że to nie idealne rozwiązanie i te skrypty mają swoje wady, ale ta strona nie wyjdzie na światło dzienne, więc nie potrzebuję na razie wielkich zabezpieczeń i kryptowania haseł.
Potrzebuję zrobić system komentarzy, ale wszystko rozbija się o pobieranie danych zalogowanego usera (dokładniej o nazwę użytkownika) i wysłanie jej do bazy danych. Z PHP znam podstawy i dlatego proszę o pomoc. Mój kod:


Kod
<?php session_start();
php require_once('Connections/eventerkobling.php');

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "commentform")) {
  $insertSQL = sprintf("INSERT INTO kommentar (tekst, brukernavn, tidsstempel, eventid) VALUES (%s, NOW(), %s)",
                       GetSQLValueString($_POST['tekst'], "text"),
                       GetSQLValueString($_GET['eventid'], "int"));

  mysql_select_db($database_eventerkobling, $eventerkobling);
  $Result1 = mysql_query($insertSQL, $eventerkobling) or die(mysql_error());
}


powyżej na pewno są błędy, reszta wygenerowana przez Dreamweaver:
Kod
$colname_kommentar = "-1";
if (isset($_GET['eventid'])) {
  $colname_kommentar = $_GET['eventid'];
}

mysql_select_db($database_eventerkobling, $eventerkobling);
$query_kommentar = sprintf("SELECT kommentarID, tekst, eventID, brukernavn, DATE_FORMAT(tidsstempel,'%%d.%%m.%%Y %%H:%%i') AS tidspunkt FROM kommentar WHERE eventID = %s ORDER BY tidsstempel DESC", GetSQLValueString($colname_kommentar, "int"));
$kommentar = mysql_query($query_kommentar, $eventerkobling) or die(mysql_error());
$row_kommentar = mysql_fetch_assoc($kommentar);
$totalRows_kommentar = mysql_num_rows($kommentar);


if(isset($_SESSION['valid_user'])) {}
else {header('Location: index.php');
};

?>


<form method="post" name="commentform" action="<?php echo $editFormAction; ?>">
          <textarea name="tekst"></textarea>
          <input type="submit" value="Kommenter">
          <input type="hidden" name="MM_insert" value="commentform">
</form>
NickOver
Więc tak...
W pliku z logowaniem (nie wiem jak on wygląda, i nie wiem czy robisz to na sesjach, pewnie tak) wrzuć coś takiego:
  1. $row = mysql_fetch_array($result);
  2. $_SESSION['logged'] = true;
  3. $_SESSION['nick'] = $row['NAZWA'];

NAZWA = nazwa komórki w której są loginy
Musisz to wrzucić w odpowiednie miejsce (gdzie będzie $_SESSION['logged'] = true;) ale pewnie i tak będą wymagane zmiany więc jeśli sobie nie poradzisz wrzuć plik z logowaniem tutaj.

Potem tam gdzie będziesz potrzebować loginu
  1. $a = $_SESSION['nick'];
  2. [php]
  3. Lub jeśli będziesz potrzebowała użyć jej tylko raz nie baw się w zmienne i daj po prostu
  4. [php]$_SESSION['nick']

NickOver
Dzieki wielkie smile.gif Ale z tego co patrze te Twoje pliczki wygladaja conajmniej dziwnie. Chodzi mi dokladniej o plik logowania. Po co te ostatnie 3 linijki?
annie
uhm, tak mi poradzili na stackoverflow (?)
"store the usename in session after login code like this: $_SESSION['valid_user']=$username;"
[...] "also you have to check the session like if(isset($_SESSION['valid_user'])){ your code} else {not logged in}"
mówisz, że to nie potrzebne?
Turson
Cytat
"store the usename in session after login code like this: $_SESSION['valid_user']=$username;"
[...] "also you have to check the session like if(isset($_SESSION['valid_user'])){ your code} else {not logged in}"

prawda


W tym kodzie druga linijka niepotrzebna
  1. if (isset($_SESSION['valid_user'])){
  2. $username = $_SESSION['valid_user'];
  3. header('Location: home.php');
annie
dzięki smile.gif
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.