Archívum - Jan 8, 2012 - Fórum téma
Osztálymetódos meghívása példányosítás nélkül
Épp a statikus osztálymetódusokról olvasgattam, amikor egy érdekes dolgot vettem észre:Itt ugye szépen kiírja a várt szöveget, ami rendben is van: statikus tagfüggvénynél működik a példányosítás nélküli függvényhívás.
Azonban ha kihagyom a static kulcsszót a függvény meghatározásából, akkor is meg lehet azt hívni objektumpéldány nélkül. Tehát kvázi direktben lehet hívni egy osztálymetódust (amelyik persze public vagy protected), anélkül, hogy mondjuk a konstruktor is automatikusan lefutna.Csak nekem fura ez a viselkedés?:)
■
class Foo {
public static function bar() {
print 'Egy bar vagyok.';
}
}
print Foo::bar();
Azonban ha kihagyom a static kulcsszót a függvény meghatározásából, akkor is meg lehet azt hívni objektumpéldány nélkül. Tehát kvázi direktben lehet hívni egy osztálymetódust (amelyik persze public vagy protected), anélkül, hogy mondjuk a konstruktor is automatikusan lefutna.
class Foo {
public function __construct() {
throw new Exception('Itt le kéne állni!');
}
public function bar() {
print 'Egy bar vagyok.';
}
}
//$foo = new Foo();
print Foo::bar();
PHP SESSION --> JavaScript
Sziasztok,
lenne egy olyan kérdésem, hogy egy PHP-ben generált $_SESSION változót miként tudom alkalmazni egy JavaScript kódban?
PHP --> $_SESSION['user'];
ezt szeretném alkalmazni Js-ben:
ezt a sort szeretném módosítani:
'folder' : 'tmp'
így:
'folder' : 'tmp/$_SESSION[username]/'
Teljes kód:
<script type="text/javascript">
$(function() {
$('#custom_file_upload').uploadify({
'uploader' : 'lib/uploadify/uploadify.swf',
'script' : 'lib/uploadify/uploadify.php',
'cancelImg' : 'lib/uploadify/cancel.png',
'folder' : 'tmp',
'multi' : true,
'auto' : true,
'fileExt' : '*.jpg;*.gif;*.png',
'fileDesc' : 'Image Files (.JPG, .GIF, .PNG)',
'queueID' : 'custom-queue',
'queueSizeLimit' : 3,
'simUploadLimit' : 3,
'sizeLimit' : 10240000,
'removeCompleted': false,
'onSelectOnce' : function(event,data) {
$('#status-message').text(data.filesSelected + ' files have been added to the queue.');
},
'onAllComplete' : function(event,data) {
$('#status-message').text(data.filesUploaded + ' files uploaded, ' + data.errors + ' errors.');
}
}); });
</script>
■ lenne egy olyan kérdésem, hogy egy PHP-ben generált $_SESSION változót miként tudom alkalmazni egy JavaScript kódban?
PHP --> $_SESSION['user'];
ezt szeretném alkalmazni Js-ben:
ezt a sort szeretném módosítani:
'folder' : 'tmp'
így:
'folder' : 'tmp/$_SESSION[username]/'
Teljes kód:
<script type="text/javascript">
$(function() {
$('#custom_file_upload').uploadify({
'uploader' : 'lib/uploadify/uploadify.swf',
'script' : 'lib/uploadify/uploadify.php',
'cancelImg' : 'lib/uploadify/cancel.png',
'folder' : 'tmp',
'multi' : true,
'auto' : true,
'fileExt' : '*.jpg;*.gif;*.png',
'fileDesc' : 'Image Files (.JPG, .GIF, .PNG)',
'queueID' : 'custom-queue',
'queueSizeLimit' : 3,
'simUploadLimit' : 3,
'sizeLimit' : 10240000,
'removeCompleted': false,
'onSelectOnce' : function(event,data) {
$('#status-message').text(data.filesSelected + ' files have been added to the queue.');
},
'onAllComplete' : function(event,data) {
$('#status-message').text(data.filesUploaded + ' files uploaded, ' + data.errors + ' errors.');
}
}); });
</script>
Mysqlben szürés a join egyik oldalán álló rekordok száma alapján
Sziasztok!
Elakadtam egy lekérdezésnél: Adott két tábla egyikben albumok, másikban a hozzájuk tartozó képek.
Elegánsan hogyan lehet lekérdezni azokat az albumokat, amikhez több kép tartozik mint egy?
Szörnyeteg módon meg tudtam oldani, de amikor ránéztem a "művemre" elborzadtam. :)
■ Elakadtam egy lekérdezésnél: Adott két tábla egyikben albumok, másikban a hozzájuk tartozó képek.
Elegánsan hogyan lehet lekérdezni azokat az albumokat, amikhez több kép tartozik mint egy?
Szörnyeteg módon meg tudtam oldani, de amikor ránéztem a "művemre" elborzadtam. :)
php weblap őű megjelenítési probléma
Sziasztok!
Tudom hogy már nagyon sok ilyen őű megjelenítési problémás fórum indult.Böngészve se találtam problémámra orvosságot.
Segítségeteket szeretném kérni.
Olyan problémám lenne mi szerint készítettem egy HTML oldalt index.html néven. Ahol az ékezetek normálisa müködtek, de mivel hogy php kód is szerepel az oldalamon ezért az index.php-vá alakítottam át. Az ékezetes betűk ez után kérdőjelek sorává alakultak.
Charset-et már többször átállítottam,de nem csinál semmit.
Milyen megoldásokat próbáljak ki rajta, hogy az ékezeteket is vegye és ne essen szét?
Kód részlet:
■ Tudom hogy már nagyon sok ilyen őű megjelenítési problémás fórum indult.Böngészve se találtam problémámra orvosságot.
Segítségeteket szeretném kérni.
Olyan problémám lenne mi szerint készítettem egy HTML oldalt index.html néven. Ahol az ékezetek normálisa müködtek, de mivel hogy php kód is szerepel az oldalamon ezért az index.php-vá alakítottam át. Az ékezetes betűk ez után kérdőjelek sorává alakultak.
Charset-et már többször átállítottam,de nem csinál semmit.
Milyen megoldásokat próbáljak ki rajta, hogy az ékezeteket is vegye és ne essen szét?
Kód részlet:
<?php session_start();
include "login.php";
$login = new Login();
if ($_GET["kilepes"] == 1) {
$_SESSION['isLogin'] = false;
unset($_SESSION['user']);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="hu" lang="hu">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link href="style.css" rel="stylesheet" type="text/css" />
<link href="layout.css" rel="stylesheet" type="text/css" />
<script src="rollover.js" type="text/javascript"></script>
</head>
include "login.php";
$login = new Login();
if ($_GET["kilepes"] == 1) {
$_SESSION['isLogin'] = false;
unset($_SESSION['user']);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="hu" lang="hu">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link href="style.css" rel="stylesheet" type="text/css" />
<link href="layout.css" rel="stylesheet" type="text/css" />
<script src="rollover.js" type="text/javascript"></script>
</head>
Státusz megőrzése form-resubmit tiltással
Sziasztok!
A bonyolult cím ellenére a probléma elég gyakori:
1. Szeretném megakadályozni, hogy a lapot újratöltve a felhasználó ismételten elküldhesse az űrlapot.
2. Úgy eleget tenni az egyes pontnak, hogy a szkript "emlékezzen" arra, hogy az űrlap ki lett töltve, és annak megfelelően dobjon egy státusz-üzenetet. (Ez után a form újra szerepel, tehát külön fájlba nem tehető, illetve az URL után se fűzzünk semmit - és a lapot újratöltve a státusz már ne jelenjen meg.)
Arra lennék kíváncsi, hogy a legegyszerűbb megoldást találtam-e meg, vagy létezik-e erre jobb gyakorlat. Az én megfejtésem szerint:
1. Az elküldött űrlap feldolgozása után
2. Ezért az átirányítás előtt egy
Tehát van-e ennél jobb, célszerűbb módszer?
Előre is köszönve a válaszokat,
Ádám
■ A bonyolult cím ellenére a probléma elég gyakori:
1. Szeretném megakadályozni, hogy a lapot újratöltve a felhasználó ismételten elküldhesse az űrlapot.
2. Úgy eleget tenni az egyes pontnak, hogy a szkript "emlékezzen" arra, hogy az űrlap ki lett töltve, és annak megfelelően dobjon egy státusz-üzenetet. (Ez után a form újra szerepel, tehát külön fájlba nem tehető, illetve az URL után se fűzzünk semmit - és a lapot újratöltve a státusz már ne jelenjen meg.)
Arra lennék kíváncsi, hogy a legegyszerűbb megoldást találtam-e meg, vagy létezik-e erre jobb gyakorlat. Az én megfejtésem szerint:
1. Az elküldött űrlap feldolgozása után
header('Location: '.$_SERVER['REQUEST_URI']);
- Ez eddig tökéletes, csak emiatt már nem fog emlékezni az újratöltés után, hogy post-olva lett a form.2. Ezért az átirányítás előtt egy
$_SESSION['message']
változóban jelzem, hogy milyen visszajelzést kell adni a felhasználó számára (persze átirányítás után exit()
, hogy a sessionbe bele is írja - vagy akár előtte egy session_write_close()
, de előbbivel nem fut tovább feleslegesen a szkript), majd utána kiolvasom, és megjelenítem, ha talált $_SESSION['message']
-et, végül unset()
-elem azt.Tehát van-e ennél jobb, célszerűbb módszer?
Előre is köszönve a válaszokat,
Ádám