本文整理汇总了PHP中getSessionWert函数的典型用法代码示例。如果您正苦于以下问题:PHP getSessionWert函数的具体用法?PHP getSessionWert怎么用?PHP getSessionWert使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了getSessionWert函数的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: setSessionWert
/**
* author: coster
* date: 10.9.05
* setzt einen session wert (aus konstanten entnehmen)
* */
function setSessionWert($bezeichnung, $wert)
{
global $link;
$session_id = session_id();
$erstellung = getSessionDate(0);
if (getSessionWert($bezeichnung) == false) {
$query = "INSERT INTO \n\t\t REZ_GEN_SESSION\n\t\t (BEZEICHNUNG,ERSTELLUNG,HTTP_SESSION_ID,WERT)\n\t\t VALUES\n\t\t ('{$bezeichnung}','{$erstellung}','{$session_id}','{$wert}')\n\t\t ";
} else {
$query = "UPDATE \n\t\t REZ_GEN_SESSION\n\t\t SET\n\t\t WERT = '{$wert}'\n\t\t where\n\t\t HTTP_SESSION_ID = '{$session_id}'\n\t\t and\n\t\t BEZEICHNUNG = '{$bezeichnung}'\n\t\t ";
}
$res = mysqli_query($link, $query);
if (!$res) {
echo "die Anfrage {$query} scheitert";
echo mysqli_error($link);
return false;
} else {
return true;
}
}
开发者ID:utilo-web-app-development,项目名称:REZERVI,代码行数:24,代码来源:sessionFunctions.inc.php
示例2: setSessionWert
/**
* author: coster
* date: 10.9.05
* setzt einen session wert (aus konstanten entnehmen)
* */
function setSessionWert($bezeichnung, $wert)
{
global $db;
$session_id = session_id();
$erstellung = getSessionDate(0);
if (getSessionWert($bezeichnung) == false) {
$query = "INSERT INTO \n\t\t BOOKLINE_SESSION\n\t\t (BEZEICHNUNG,ERSTELLUNG,HTTP_SESSION_ID,WERT)\n\t\t VALUES\n\t\t ('{$bezeichnung}','{$erstellung}','{$session_id}','{$wert}')\n\t\t ";
} else {
$query = "UPDATE \n\t\t BOOKLINE_SESSION\n\t\t SET\n\t\t WERT = '{$wert}'\n\t\t where\n\t\t HTTP_SESSION_ID = '{$session_id}'\n\t\t and\n\t\t BEZEICHNUNG = '{$bezeichnung}'\n\t\t ";
}
//$res = $db->Execute($query);
$res = $db->Execute($query);
if (!$res) {
print $db->ErrorMsg();
return false;
} else {
return true;
}
}
开发者ID:utilo-web-app-development,项目名称:REZERVI,代码行数:24,代码来源:sessionFunctions.inc.php
示例3: getSessionWert
else
{
}
$scope.year = $scope.year -1;
$scope.monat_left = $scope.month;
$scope.monat_right = $scope.month;
$scope.jahr_left = $scope.year;
$scope.jahr_right = $scope.year;
var FormData = {
'month' : $scope.month,
'year' : $scope.year,
'zimmer_id':$scope.zimmer_id,
'unterkunft_id':<?php
echo getSessionWert(UNTERKUNFT_ID);
?>
,
'sprache':'<?php
echo $sprache;
?>
'
};
var zimmerName = $.grep($scope.zimmers,function(zimmer){
return zimmer.zimmerid == $scope.zimmer_id;
})[0].zimmerartnr;
$http.post("http://localhost/rezervi/rezervi/webinterface/reservierung/jahresuebersicht.php",FormData).success(function(data, status, headers, config){
var head= "Belegungsplan "+$scope.year+", für "+zimmerName;
// $('#rightView').hide('slow');
$('#rightView').children('.panel-heading').html(head);
开发者ID:utilo-web-app-development,项目名称:REZERVI,代码行数:31,代码来源:leftJS.js.php
示例4: getSessionWert
$root = "../../..";
$ueberschrift = "Tischkarten bearbeiten";
/*
date: 26.9.05
author: christian osterrieder alpstein-austria
*/
if (isset($_GET['tableCardId'])) {
$tableCardId = $_GET['tableCardId'];
//include the pdf class:
require_once $root . '/include/fpdf153/fpdf.php';
include_once $root . "/include/rdbmsConfig.inc.php";
include_once $root . "/include/vermieterFunctions.inc.php";
include_once $root . "/include/sessionFunctions.inc.php";
include_once $root . "/include/uebersetzer.inc.php";
$sprache = getSessionWert(SPRACHE);
$gastro_id = getSessionWert(GASTRO_ID);
//function to generate a table card:
include_once $root . '/include/tischkartenFunctions.inc.php';
//create a new pdf object:
$pageOrientation = getTableCardProperty(TC_PAGE_ORIENTATION, $tableCardId);
$measureUnit = getTableCardProperty(TC_MEASURE_UNIT, $tableCardId);
$dimension = getTableCardProperty(TC_DIMENSION, $tableCardId);
if ($dimension == TC_CUSTOM_FORMAT) {
$size = array();
$size[] = getTableCardProperty(TC_CUSTOM_FORMAT_Y, $tableCardId);
$size[] = getTableCardProperty(TC_CUSTOM_FORMAT_X, $tableCardId);
} else {
$size = $dimension;
}
//create the pdf with constructor:
$pdf = new FPDF($pageOrientation, $measureUnit, $size);
开发者ID:utilo-web-app-development,项目名称:REZERVI,代码行数:31,代码来源:output.php
示例5: getSessionWert
if (isset($_POST["Link"])) {
$link_wert = $_POST["Link"];
}
if (!isset($link_wert) || $link_wert != "true") {
$link_wert = "false";
}
$linkName = LINK_SUCHE;
if (isset($_POST["showParent"]) && $_POST["showParent"] == "true") {
$showParent = "true";
} else {
$showParent = "false";
}
$unterkunft_id = getSessionWert(UNTERKUNFT_ID);
$sprache = getSessionWert(SPRACHE);
$passwort = getSessionWert(PASSWORT);
$benutzername = getSessionWert(BENUTZERNAME);
$suchFilter = $_POST["suchFilter"];
//Properties für eine bestimmte Unterkunft setzen!
setProperty($kinder, $kinder_wert, $unterkunft_id, $link);
setProperty($haustiere, $haustiere_wert, $unterkunft_id, $link);
setProperty($linkName, $link_wert, $unterkunft_id, $link);
setProperty(SEARCH_SHOW_PARENT_ROOM, $showParent, $unterkunft_id, $link);
if ($suchFilter == "filterZimmer") {
setProperty(SUCHFILTER_ZIMMER, "true", $unterkunft_id, $link);
setProperty(SUCHFILTER_UNTERKUNFT, "false", $unterkunft_id, $link);
} else {
setProperty(SUCHFILTER_UNTERKUNFT, "true", $unterkunft_id, $link);
setProperty(SUCHFILTER_ZIMMER, "false", $unterkunft_id, $link);
}
//Dieser Satz muss noch in die Sprachtabellen eingefügt werden.
$nachricht = "Die Suchoptionen wurden erfolgreich geändert!";
开发者ID:utilo-web-app-development,项目名称:REZERVI,代码行数:31,代码来源:sucheAendern.php
示例6: getSessionWert
<?php
/*
* Created on 20.09.2005
*
* author: coster
*/
include_once $root . "/include/benutzerFunctions.inc.php";
include_once $root . "/include/mietobjektFunctions.inc.php";
include_once $root . "/include/sessionFunctions.inc.php";
$benutzer_id = getSessionWert(BENUTZER_ID);
$benutzerrechte = getUserRights($benutzer_id);
$anzahlVorhandenerMietobjekte = getAnzahlVorhandeneMietobjekte($vermieter_id);
?>
<table cellpadding="3" cellspacing="0" border="0" class="<?php
echo TABLE_STANDARD;
?>
">
<tr>
<?php
//prüfen ob benutzer das recht hat den folgenden link auszuführen:
if ($benutzerrechte >= 1 && $anzahlVorhandenerMietobjekte > 0) {
?>
<form action="<?php
echo $root;
?>
/webinterface/reservierung/index.php" method="post" name="resEingebenAendern" target="_self">
<tr><td><input name="resEingebenAendern" type="submit" class="<?php
echo BUTTON;
?>
" onMouseOver="this.className='<?php
开发者ID:utilo-web-app-development,项目名称:REZERVI,代码行数:31,代码来源:menue.inc.php
示例7: getUebersetzung
include_once "./benutzerAendern.php";
exit;
} else {
if ($pass == "" || $pass2 == "") {
$fehler = true;
$nachricht = getUebersetzung("Bitte geben sie das Passwort ein!");
include_once "./benutzerAendern.php";
exit;
} else {
if ($pass != $pass2) {
$fehler = true;
$nachricht = getUebersetzung("Die beiden Passwörter stimmen nicht überein!");
include_once "./benutzerAendern.php";
exit;
} else {
if (isBenutzerVorhanden($name, $pass, $gastro_id) && getSessionWert(BENUTZER_ID) != $id) {
$fehler = true;
$nachricht = getUebersetzung("Ein Benutzer mit diesen Zugangsdaten ist bereits vorhanden!");
include_once "./benutzerAendern.php";
exit;
}
}
}
}
//wenn im testmodus, dann nicht den test-benutzer ändern:
if (DEMO == true && $testuser == true) {
$fehler = true;
$nachricht = getUebersetzung("Der Testbenutzer kann im Demo Modus nicht verändert werden!");
include_once "./benutzerAendern.php";
exit;
}
开发者ID:utilo-web-app-development,项目名称:REZERVI,代码行数:31,代码来源:benutzerAendernDurchfuehren.php
示例8: getSessionWert
<?php
/*
* Created on 10.09.2005
*
* author: coster
*/
include_once $root . "/include/sessionFunctions.inc.php";
$angem = getSessionWert(ANGEMELDET);
if ($angem != "true") {
$fehler = true;
$nachricht = "Benutzeranmeldung fehlgeschlagen. Bitte melden sie sich erneut an.";
include $root . "/backoffice/index.php";
exit;
}
开发者ID:utilo-web-app-development,项目名称:REZERVI,代码行数:15,代码来源:checkPass.inc.php
示例9: chkFormular
<div class="panel panel-default">
<div class="panel-body">
<form action="./benutzerEintragen.php" method="post" name="benutzer" id="benutzer" target="_self" onSubmit="return chkFormular();" class="form-horizontal">
<div class="alert alert-danger" role="alert">
<?php
echo getUebersetzung("Der Testbenutzer kann im Demo-Modus nicht verändert werden.", $sprache, $link);
?>
</div>
<?php
} else {
if (changeBenutzer($id, $name, $pass, $rechte, $unterkunft_id, $link)) {
//Änderungen in der session durchführen:
if (getSessionWert(BENUTZER_ID) == $id) {
setSessionWert(PASSWORT, $pass);
setSessionWert(BENUTZERNAME, $name);
setSessionWert(RECHTE, '2');
}
?>
<?php
echo getUebersetzung("Die Änderung wurde erfolgreich durchgeführt", $sprache, $link);
?>
.</td>
<?php
}
}
?>
开发者ID:utilo-web-app-development,项目名称:REZERVI,代码行数:31,代码来源:benutzerAendernDurchfuehren.php
示例10: getGastroProperty
} else {
$sprache = getGastroProperty(STANDARDSPRACHE, $gastro_id);
}
}
}
setSessionWert(SPRACHE, $sprache);
//setSessionWert(SPRACHE,$sprache);
//mietobjekt?
if (isset($_GET["mietobjekt_id"])) {
$mietobjekt_id = $_GET["mietobjekt_id"];
} else {
if (isset($_POST["mietobjekt_id"])) {
$mietobjekt_id = $_POST["mietobjekt_id"];
} else {
if (getSessionWert(MIETOBJEKT_ID) != false) {
$mietobjekt_id = getSessionWert(MIETOBJEKT_ID);
} else {
$mietobjekt_id = getFirstRaumId($gastro_id);
}
}
}
//setSessionWert(MIETOBJEKT_ID,$mietobjekt_id);
//----------------------------------------------------------------
//das datum ermitteln:
if (isset($_POST["datum"])) {
$jahr = getJahrFromDatePicker($_POST["datum"]);
} else {
if (isset($_POST["jahr"])) {
$jahr = $_POST["jahr"];
} else {
$jahr = getTodayYear();
开发者ID:utilo-web-app-development,项目名称:REZERVI,代码行数:31,代码来源:index.php
示例11: getPropertyValue
<?php
/**
* Created on 31.08.2006
*
* @author coster
*/
//welche ansichten sollen gezeigt werden?
$showMonatsansicht = getPropertyValue(SHOW_MONATSANSICHT, $unterkunft_id, $link);
$showJahresansicht = getPropertyValue(SHOW_JAHRESANSICHT, $unterkunft_id, $link);
$showGesamtansicht = getPropertyValue(SHOW_GESAMTANSICHT, $unterkunft_id, $link);
$ansicht = getSessionWert(ANSICHT);
$anzahlAnsichten = 0;
if ($showMonatsansicht == "true") {
$anzahlAnsichten++;
}
if ($showJahresansicht == "true") {
$anzahlAnsichten++;
}
if ($showGesamtansicht == "true") {
$anzahlAnsichten++;
}
//ansicht-auswahl nur anzeigen wenn mehr als 1 ansicht möglich ist:
if ($anzahlAnsichten > 1) {
?>
<div class="panel panel-default">
<div class="panel-body">
<h4><?php
echo getUebersetzung("Ansicht für", $sprache, $link);
?>
开发者ID:utilo-web-app-development,项目名称:REZERVI,代码行数:31,代码来源:selectAnsicht.inc.php
示例12: getUebersetzung
/**
* author:coster
* date: 8.10.05
* liefert eine uebersetzung
* */
function getUebersetzung($text_standard)
{
global $db;
global $sprache;
if (empty($sprache)) {
global $root;
if (empty($root)) {
die("Globale Variable root fehlt.");
}
include_once $root . "/include/sessionFunctions.inc.php";
$sprache = getSessionWert(SPRACHE);
}
if (empty($db) || empty($sprache)) {
echo "db: " . $db . " sprache: " . $sprache;
die("Globale Variable fehlt.");
}
$query = "select \n\t\t TEXT\n\t\t from\n\t\t BOOKLINE_UEBERSETZUNGEN\n\t\t where\n\t\t TEXT_STANDARD = '{$text_standard}'\n\t\t AND \n\t\t SPRACHE_ID = '{$sprache}'\n\t\t ";
$res = $db->Execute($query);
if (!$res) {
print $db->ErrorMsg();
} else {
if (count($res) > 0) {
$txt = $res->fields["TEXT"];
if ($txt != "") {
$text_standard = $txt;
} else {
//die bersetzung existiert noch nicht in der datenbank
//sie wird neu angelegt um sie später bersetzen zu können:
setUebersetzung($text_standard, $text_standard, $sprache);
}
}
}
return $text_standard;
}
开发者ID:utilo-web-app-development,项目名称:REZERVI,代码行数:39,代码来源:uebersetzer.inc.php
示例13: getUebersetzung
/**
* author:coster
* date: 8.10.05
* liefert eine uebersetzung
* */
function getUebersetzung($text_standard)
{
global $link;
global $sprache;
global $root;
if (empty($sprache)) {
include_once $root . "/include/sessionFunctions.inc.php";
$sprache = getSessionWert(SPRACHE);
}
$query = "select \n\t\t TEXT\n\t\t from\n\t\t REZ_GEN_UEBERSETZUNGEN\n\t\t where\n\t\t TEXT_STANDARD = '{$text_standard}'\n\t\t AND \n\t\t SPRACHE_ID = '{$sprache}'\n\t\t ";
$res = mysqli_query($link, $query);
if (!$res) {
echo mysqli_error($link);
} else {
if (mysqli_num_fields($res) > 0) {
$d = mysqli_fetch_array($res);
if ($d["TEXT"] != "") {
$text_standard = $d["TEXT"];
} else {
//die bersetzung existiert noch nicht in der datenbank
//sie wird neu angelegt um sie später übersetzen zu könen:
setUebersetzung($text_standard, $text_standard, $sprache);
}
}
}
return $text_standard;
}
开发者ID:utilo-web-app-development,项目名称:REZERVI,代码行数:32,代码来源:uebersetzer.inc.php
示例14: getSessionWert
include_once "./conf/rdbmsConfig.php";
//funktions einbinden:
include_once "./include/unterkunftFunctions.php";
include_once "./include/zimmerFunctions.php";
include_once "./include/datumFunctions.php";
include_once "./include/reservierungFunctions.php";
include_once "./include/uebersetzer.php";
include_once "./rightHelper.php";
include_once "./leftHelper.php";
include_once "./include/propertiesFunctions.php";
//variablen initialisieren:
//unset($zimmer_id);
$unterkunft_id = getSessionWert(UNTERKUNFT_ID);
$sprache = getSessionWert(SPRACHE);
if (isset($_GET["vonStart"]) && $_GET["vonStart"] == "true") {
$zimmer_id = getSessionWert(ZIMMER_ID);
} else {
$zimmer_id = $_POST["zimmer_id"];
}
//falls keine zimmer_id ausgewählt wurde, das erste gefundene zimmer nehmen:
if (!isset($zimmer_id) || $zimmer_id == "" || empty($zimmer_id)) {
$zimmer_id = getFirstRoom($unterkunft_id, $link);
}
if (isset($_POST["monat"])) {
$monat = $_POST["monat"];
}
if (isset($_POST["jahr"])) {
$jahr = $_POST["jahr"];
}
setSessionWert(ZIMMER_ID, $zimmer_id);
$saAktiviert = getPropertyValue(SHOW_OTHER_COLOR_FOR_SA, $unterkunft_id, $link);
开发者ID:utilo-web-app-development,项目名称:REZERVI,代码行数:31,代码来源:right.php
示例15: getSessionWert
//sprache?
$temp = getSessionWert(SPRACHE);
if (isset($_GET["sprache"])) {
$sprache = $_GET["sprache"];
} else {
if (isset($_POST["sprache"])) {
$sprache = $_POST["sprache"];
} else {
if (!empty($temp)) {
$sprache = getSessionWert(SPRACHE);
} else {
$sprache = getVermieterEigenschaftenWert(STANDARDSPRACHE, $vermieter_id);
}
}
}
$temp = getSessionWert(SPRACHE);
if (empty($temp) && !empty($sprache)) {
setSessionWert(SPRACHE, $sprache);
}
//mietobjekt?
if (isset($_GET["mietobjekt_id"])) {
$mietobjekt_id = $_GET["mietobjekt_id"];
} else {
if (isset($_POST["mietobjekt_id"])) {
$mietobjekt_id = $_POST["mietobjekt_id"];
} else {
$mietobjekt_id = getFirstMietobjektId($vermieter_id);
}
}
//alte session werte löschen:
destroyInactiveSessions();
开发者ID:utilo-web-app-development,项目名称:REZERVI,代码行数:31,代码来源:start.php
示例16: define
</html>
<!-- -----------------------------------------------------------------------------------
left.php
Ende
----------------------------------------------------------------------------------- -->
<?php
// Set flag that this is a parent file
define('_JEXEC', 1);
include_once $root . "/include/sessionFunctions.inc.php";
//variablen initialisieren:
$zimmer_id = getSessionWert(ZIMMER_ID);
$sprache = getSessionWert(SPRACHE);
$unterkunft_id = getSessionWert(UNTERKUNFT_ID);
//wird der frame oben angezeigt oder links? oben => horizontal=true
$horizontal = false;
if (getPropertyValue(HORIZONTAL_FRAME, $unterkunft_id, $link) == "true") {
$horizontal = true;
}
//falls keine zimmer_id ausgewählt wurde, das erste gefundene zimmer nehmen:
if (empty($zimmer_id)) {
$zimmer_id = getFirstRoom($unterkunft_id, $link);
}
//falls kein jahr ausgewählt wurde, das aktuelle jahr verwenden:
if (empty($jahr)) {
$jahr = getTodayYear();
} else {
if (isset($_POST["jahr"])) {
$jahr = $_POST["jahr"];
开发者ID:utilo-web-app-development,项目名称:REZERVI,代码行数:31,代码来源:startNoFrame2.php
示例17: getUebersetzung
" method="post" target="_self">
<input name="art" type="hidden" value="<?php
echo $art;
?>
"/>
<p class="standardschrift">
<?php
echo getUebersetzung("Die mit [*] gekennzeichneten Felder müssen ausgefüllt werden");
?>
!
</p>
<?php
$res = getActivtedSprachenOfVermieter($gastro_id);
while ($d = $res->FetchNextObject()) {
$sprache_id = $d->SPRACHE_ID;
$standardsprache = getSessionWert(SPRACHE);
$bezeichnung = getBezeichnungOfSpracheID($sprache_id);
$subject = getUebersetzungGastro($betreffStandard, $sprache_id, $gastro_id);
$anrede = getUebersetzungGastro($anredeStandard, $sprache_id, $gastro_id);
$text = getUebersetzungGastro($textStandard, $sprache_id, $gastro_id);
$unterschrift = getUebersetzungGastro($unterschriftStandard, $sprache_id, $gastro_id);
/* if (isset($fehler) && $fehler === true){
$subject = $_POST["subject_".$sprache_id];
$anrede = $_POST["anrede_".$sprache_id];
$text = $_POST["text_".$sprache_id];
$unterschrift = $_POST["unterschrift_".$sprache_id];
}*/
?>
<p class="standardschrift">
<?php
echo getUebersetzung("Texte in") . " " . $bezeichnung;
开发者ID:utilo-web-app-development,项目名称:REZERVI,代码行数:31,代码来源:texteAnzeigen.php
示例18: getSessionWert
*/
//datenbank öffnen:
include_once "../../conf/rdbmsConfig.php";
//andere funktionen importieren:
include_once "../../include/benutzerFunctions.php";
include_once "../../include/unterkunftFunctions.php";
include_once "../../include/uebersetzer.php";
include_once "../../include/einstellungenFunctions.php";
include_once "../../include/zimmerFunctions.php";
include_once "../templates/components.php";
//variablen intitialisieren:
$unterkunft_id = getSessionWert(UNTERKUNFT_ID);
$benutzername = getSessionWert(BENUTZERNAME);
$passwort = getSessionWert(PASSWORT);
$zimmer_id = $_POST["zimmer_id"];
$sprache = getSessionWert(SPRACHE);
$standardsprache = getStandardSprache($unterkunft_id, $link);
if (!is_writable($root . "/upload")) {
$nachricht = "Achtung! Das Verzeichnis 'upload' ist nicht beschreibbar, Sie können erst Bilder hochladen wenn Sie diesem Verzeichnis Schreibrechte zuweisen!";
$nachricht = getUebersetzung($nachricht, $sprache, $link);
$fehler = true;
}
?>
<?php
include_once "../templates/headerA.php";
?>
<style type="text/css">
<?php
include_once $root . "/templates/stylesheetsIE9.php";
?>
开发者ID:utilo-web-app-development,项目名称:REZERVI,代码行数:31,代码来源:bilderHochladen.php
示例19: getUebersetzung
include_once "./benutzerAendern.php";
exit;
} else {
if ($pass == "" || $pass2 == "") {
$fehler = true;
$nachricht = getUebersetzung("Bitte geben sie das Passwort ein!");
include_once "./benutzerAendern.php";
exit;
} else {
if ($pass != $pass2) {
$fehler = true;
$nachricht = getUebersetzung("Die beiden Passwörter stimmen nicht überein!");
include_once "./benutzerAendern.php";
exit;
} else {
if (isBenutzerVorhanden($name, $pass, $vermieter_id) && getSessionWert(BENUTZER_ID) != $id) {
$fehler = true;
$nachricht = getUebersetzung("Ein Benutzer mit diesen Zugangsdaten ist bereits vorhanden!");
include_once "./benutzerAendern.php";
exit;
}
}
}
}
//wenn im testmodus, dann nicht den test-benutzer ändern:
if (DEMO == true && $testuser == true) {
$fehler = true;
$nachricht = getUebersetzung("Der Testbenutzer kann im Demo Modus nicht verändert werden!");
include_once "./benutzerAendern.php";
exit;
}
开发者ID:utilo-web-app-development,项目名称:REZERVI,代码行数:31,代码来源:benutzerAendernDurchfuehren.php
注:本文中的getSessionWert函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论