- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Argos: Szeretem az ecetfát
- sziku69: Szólánc.
- Magga: PLEX: multimédia az egész lakásban
- eBay-es kütyük kis pénzért
- NASsoljunk: ZyXEL NSA-310 és az FFP
- Elektromos rásegítésű kerékpárok
- #95904256: Socket370 / 3DMark2001
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
Gondolom arra gondolsz, hogy milyen a sortörés, Windows-os (\r\n), vagy UNIX-os (\n).
"Valami oknál fogva én a Linuxot pártolom."
Most itt nem tudom, általánosságban beszélsz-e, vagy konkrétan a sortörésekre gondolsz, de szerintem érdemes inkább a Windows-kompatibilis \r\n-t használni.
Bár gondolom normális ember nem nézeget forráskódot sima Notepadben (HOGY MICSODÁBAN??) manapság.
Szerk.:
hát ennyiből kicsit nehéz lenne megállapítani, miért nem megy az a domain...
Az is lehet, hogy nincs index.php rajta, vagy ... nem vágom.
Mindenesetre nem is dobál hibát jelző headereket (sőt, 200 OK-t dob), most néztem meg developer tools-zal. -
válasz
Sk8erPeter #7698 üzenetére
Csak ötleteltem. Hülyeség lehet, de ha jól emlékszem az sem mind1, hogy milyen a fájl, értem itt Linux vagy Windows kompatibilis. Valami oknál fogva én a Linuxot pártolom.
Szerk.: más, de miért szar a newhotsingon a Yii? Ez most mi? [link] (elvileg sima Yii által generált kód)
-
Sk8erPeter
nagyúr
Hát ne tőlem kérdezd, nem nálam van a probléma, egyébként meg a BOM-ra már én is rákérdeztem az imént, bár arra választ nem kaptam.
(#7695) biker : a Notepad++ tele van igen hasznos karakterformázó, -átalakító pluginekkel, amire szintén nem találtam alternatívát.
Meg az alap szintaktikakiemelése is áttekinthető, bár azt még le lehet "másolni" (beállítani azoknak a színeknek megfelelően, bár tökölős) a többi programhoz is.
Meg ott a konverzió ANSI-ra, UTF-8-ra, meg mittudomén, csomó minden van, ami nincs meg a hasonló kategóriájú Linuxos progikban (legalábbis amiket eddig találtam, elég sok), ami most úgysem fog eszembe jutni, mondjuk annyira nem is akarom törni a fejem rajta. -
válasz
Sk8erPeter #7694 üzenetére
Bom nélkül utf8 és esetleg linux fájl?
-
szike21
csendes tag
Köszönöm a segítséget! Megpróbáltam mindenhogy , de még mindig nem jutottam túl a hibán...Esetleg a kódolással lehetnek problémák? Az XAMPP-ban UTF-8 a kódolás, a fájlokban az alapértelmezettet használom, az azthiszem ANSI. Még mindig "undefined index" hibával száll el az egész, de csak az INSERT INTO résznél...
-
biker
nagyúr
válasz
Sk8erPeter #7694 üzenetére
Mar viccelni se lehet
Amig windozoltam azt hasznaltam, de az 2005 elott volt , hala egnek
Linuxra meg bluefish, szerintem tokeletes
Osxre meg smultron, illetve coda vagy espresso. Powerful az utobbi ketto -
Sk8erPeter
nagyúr
speciel a Notepad++ egy nagyon hasznos program, egy nagy hibája, hogy sajnos csak Windows-alapú. Van, hogy Linuxon is Wine-nal használom, mert a legtöbb Linuxos szövegszerkesztő nem tetszik, és/vagy nem olyan funkciógazdag, mint a Notepad++. (ha nem memóriazabáló programokról beszélünk, mint a NetBeans, ami szintén fasza, de durván erőforrásigényes, a szolgáltatásokért cserébe, amit nyújt)
A karakterkódolás elcsesződésének okára most hirtelen nincs konkrét ötletem, körül kéne nézni a szerver beállításainál, nincs-e .htaccess-es vagy globális szerveroldali felülbírálás, vagy bármi, ami az éles szerveren beleszól a folyamatba, a localhostos szerveren meg nem. Valami különbség biztos van.
-
biker
nagyúr
válasz
Sk8erPeter #7691 üzenetére
nem derült még ki.
mi az a notepad++? mi az a windows?
többször ellenőriztem, default UTF8-ban dolgozom évek óta.
localhoston xampp legfrisebb mindenből, távoli server is php 5.akármennyi.
mondjuk a formok is eredmény nélkül térnek vissza.
Ugyanezen a xamppon használok egy másik portált is, az meg hibátlan, erre varrj gombot... -
Sk8erPeter
nagyúr
hmm, hát ez fura. És még nem derült ki az oka, hogy miért csesződik el?
Amúgy a Notepad++-ban van sima UTF8-kódolásra átkapcsolás, meg konvertálás is. Ha az előbbit választja az ember fia, akkor az esetek többségében elkúródik a kódolás.
De gondolom nem ez a para.
Valami beállítás mégis eltérhet.
Ja, amúgy BOM nélküli UTF-8 minden fájl esetén?
Milyen szerver van egyik ill. másik tárhelyen?Ja, sokszor előfordulhat, hogy eszedbe jut valami nem épp a legaktívabb meló közben, és módosítanád, úgy, hogy nem vagy gépednél, akkor meg nagyon nem praktikus a localhostos módszer.
-
biker
nagyúr
válasz
Sk8erPeter #7689 üzenetére
én pl most úgy jártam, hogy a serveren hibátlan rendszer localhoston nem jó
egy külön lang_hu.php-ben van a magyar nyelvi változók letárolva, és az utf8 kódolás ellenére az összes onnan jövő szöveg ékezet hibás. az sql-ből jövő és a direkt index.php-be írt szöveg mind jó
az include-után kerül valami gebasz bele.én is jobban szeretek tárhelyen dolgozni, fölöslegesen ne vergődjek...
-
Sk8erPeter
nagyúr
válasz
Peter Kiss #7686 üzenetére
"Másik, hogy nem a tárhelyen kellene fejleszteni."
Semmi baj nincs a tárhelyen való fejlesztéssel, ha még nem élesben fut a projekt.Annyiból legalábbis jó, hogy akkor tuti, hogy a tesztkörnyezet megegyezik az éles környezettel.
Persze tény, jobb localhoston próbálgatni, de akkor meg az a szopás, hogy ha nem vagy saját gépnél, nem tudsz bárhonnan dolgozni. Vagy külön tárhelyet tartasz fenn a fejlesztési céloknak.
Én most épp utóbbit választottam egy projektnél, így bárhonnan tudok dolgozni, és van egy jól működő szerver mögötte. Ez úgysem megy ki élesbe.
Windows-on WinSCP-t használok, Ubuntu alatt meg becsatolom a távoli könyvtárat Nautilus-ba, így a fájlokon történő módosítások mentése egyből szinkronizálódik a szerverre is. Ez így nagyon kényelmes.
Persze ha nagyon kell, akkor localhoston nyomatom.===
(#7682) D@ni88 :
Athlon64+ kérdése teljesen jogos volt, ha már OOP, annál is kellene maradni.
- Akkor már [link]
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
- ugyanezen a linken van egy példaosztály is a leszármaztatásra:
class foo_mysqli extends mysqli {
public function __construct($host, $user, $pass, $db) {
parent::__construct($host, $user, $pass, $db);
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
}
}
$db = new foo_mysqli('localhost', 'my_user', 'my_password', 'my_db');
echo 'Success... ' . $db->host_info . "\n";
$db->close();- tulajdonképpen feleslegesen nevezed el select()-nek a metódust, ugyanoda nyugodtan be lehetne adni akár UPDATE, INSERT utasításokat is... Ha már wrapper vagy ORM-hez hasonló osztályt szeretnél írni, akkor írd is meg úgy, vagy ne erőltesd: a mysqli egy osztály, tehát nyugodtan felhasználhatnád annak az objektumorientáltságát.
- ezentúl én azt javasolnám, hogy használd inkább a PDO-t: [link], [link]
Egyrészt tök logikus a használata, másrészt OOP-s, harmadrészt ezzel sokkal rugalmasabb a kódod, ugyanis akár későbbiekben is átállhatsz más adatbázisra, hasonló szintaktikával (rosszabb esetben csak a query-ket kell átírni a másik adatbázisnak megfelelően, de legalább magát a lekérdezés módját nem - míg ebben az esetben az összes mysqli_*-vel kezdődőt le kell cserélni).- hibajelzés:
ini_set('error_reporting', E_ALL|E_STRICT); -
D@ni88
addikt
válasz
Brown ügynök #7685 üzenetére
póbáltam úgy is:
class Database
{
private $database;
public function __construct()
{
$database = mysqli_connect(HOST_NAME,USER_NAME,PASSWORD,DB_NAME);
if (!$database)
{
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
}
public function select($select)
{
$result=mysqli_query($database, $select);
if (!$result)
{
echo "Could not successfully run query ($select) from DB: " . mysql_error();
exit;
}
return $result;
}
} -
D@ni88
addikt
válasz
Peter Kiss #7683 üzenetére
hibajelzést a tárhely szolgáltatója kapcsolta ki, manuálisan pedig nincs lehetőség bekapcsolni
-
D@ni88
addikt
Próbálgatnám a mysqli használatát, de valamiért nem működik.
Az adatbázis kapcsapcsolat felépül...Adabázis kapcsolat és select függvény.
class Database
{
public function __construct()
{
$database = mysqli_connect(HOST_NAME,USER_NAME,PASSWORD,DB_NAME);
if (!$database)
{
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
}
public function select($select)
{
$result=mysqli_query($select);
if (!$result)
{
echo "Could not successfully run query ($select) from DB: " . mysql_error();
exit;
}
return $result;
}
}proba.php:
echo 'kész';
include_once('dbnames.inc.php');
include_once('database_connection.php');
$a= new Database();
$sql="select mail from users where userid='18'";
$nev=$a->select($sql);
echo "asd";
while ($row=mysqli_fetch_assoc($nev))
{
echo $row["mail"];
}Erre nem ad semmit, pedig megnéztem és van ilyen azonosítóhoz tartozó mail cím
-
wolandino
tag
válasz
DeltaPower #7676 üzenetére
azon hogy tudnék javítani?
-
wolandino
tag
válasz
Sk8erPeter #7671 üzenetére
query_cache_size = 268435456
query_cache_type=1
query_cache_limit=0Már sikerült meg nézni, csak nem tudom hol állítsam át, de ez is meglesz
-
wolandino
tag
válasz
Sk8erPeter #7677 üzenetére
igazad van, át fogom nézni
-
Sk8erPeter
nagyúr
válasz
wolandino #7675 üzenetére
Szívesen!
Hmm, hát ez fura. A phpmyadmin nem szokott ilyen lassú lenni. Amúgy milyen szerveren van a cuccotok? Apache?
Az 1280M beállításban biztos vagy?Nem véletlenül szokták lent tartani mondjuk 128M-nál, hanem "önvédelemből" is, nem túl jó, ha a kódod annál többet kajál...
Persze egy-kétszer elmegy, de akkor is legfeljebb a duplájára állítsd, ne a 10x-esére...
-
wolandino
tag
válasz
Sk8erPeter #7671 üzenetére
Köszönöm, nagyon hasznos oldal
Most egy darabig el leszek az infókkal, úgy néz ki sokat segít.
Bár érdekes, hogy lekérdezés 0.2692 mp-ig tartott, írja a phpmyadmin, miközben én simán elszámoltam 3-ig, kb 1 mp-s tempóban. Erre van valami ötlet? -
wolandino
tag
válasz
Sk8erPeter #7671 üzenetére
igen, igazad van
-
Sk8erPeter
nagyúr
válasz
wolandino #7667 üzenetére
"Az egyik ismerősöm szerint azért lehet, mert az easyphp amit használok nagyon kevés cache-t enged a mysql-nek, és ezért lassú."
Hogy ismerősödet korrigáljam, az EasyPHP-nek ehhez legfeljebb annyiból van köze, hogy milyen default beállításokat tartalmaz a benne foglalt MySQL- és PHP-konfiguráció... Ezt viszont úgy bírálod felül, ahogy akarod. Fogod a my.ini, illetve php.ini fájlt, és tetszés szerint átkonfigurálod.
Az EasyPHP azért nem hibás, hogy bizonyos default beállításokkal érkezik, ha külön-külön telepíted a MySQL-t, PHP-t, azt is pontosan ugyanúgy át kell állítgatni igény szerint.
Az EasyPHP viszont kicsit megkönnyíti a dolgodat, monitorozza egy minta php.ini fájlban a változásokat, és aszerint módosít egy másik fájlt, amit végül is a PHP figyelembe vesz. Aztán újraindítod az Apache-ot, és megvagy.
Vagy ha my.ini-n változtattál, újraindítod a MySQL-t, hogy érvénybe lépjenek a változások.
Ehhez az EasyPHP kínál egy admin-felületet, hogy ezeket az újraindítgatásokat megtehesd (megteheted services.msc-ből is, amennyiben szolgáltatásként vannak telepítve a szerverek).Érdemes lehet beállítani MySQL-ben a query cache-t, valami ilyesmi módon:
query_cache_size = 268435456
query_cache_type=1
query_cache_limit=1048576Elvileg így legalábbis kihasználhatja néhány lekérdezésed a query cache szolgáltatást.
Itt van egy-két trükk még MySQL-hez: [link]. Itt megmutatja azt is, hogy érdemes néha az EXPLAIN-t használni, hogy megkukkantsd, hol lassú esetleg a lekérdezés, pl. valahol nincs indexelve egy mező.(#7668) wolandino: ezt írja: "Allowed memory size of 134217728 bytes exhausted". Eszerint 134217728 byte = 128 MB memória van beállítva nálad. Ezt lépte túl. Az a memóriahasználat sok. Valami nem stimmel a kódodban, ha ennyire leakel. Vagy óriásképeket kezelsz, vagy nem vágom...
-
Sk8erPeter
nagyúr
Mondjuk a még szebb egy prepared statement lenne: [link], de ezt már nem is mertem említeni, mert az a kód úgyis szerteszéjjel van szórva hibákkal...
Amúgy amikor tanultam a PHP-t, én is a mysql_real_escape_string, mysql_query és hasonlókkal szopattam magam, mert a net tele van ilyen példákkal, többek közt azért, mert a PHP 4-es verziójában még nem volt OOP. Nincs nagy baj ezekkel a függvényekkel, csak az, hogy sokkal nehézkesebb: az ilyen wrapperclass-szerűségek (a PDO is olyan, mint egyfajta wrapper a különböző adatbázisokhoz tartozó műveletekhez) használata ezerszer praktikusabb lehet, ráadásul ha a fenti linket bárki megnézi, igazából a szintaktikája sem bonyolultabb, mint egy mysql_* függvényhasználatnak, csak ehhez kell szoktatnia magát az embernek.
Plusz a PDO a "hagyományos" hibakezelést elkerülendő már kivételek dobálására is képes, míg a mysql_* függvényeknél ezeket a hibákat a megfelelő módon - elég macerásan - le kell tudni kezelni. Hozzáállás kérdése, de így utólag már azt mondom, gány.Visszanézem pár évvel ezelőtti kódjaimat, és fogom a fejem, hogy mennyivel egyszerűbben is lehetett volna csinálni dolgokat.
Amúgy a legjobb az adatbázisok kezeléséhez még mindig az ORM-ek használata. Ezt már kicsit nehezebb lehet eleinte megtanulni, de megtérül.Bár sokan szidják az OOP-s megközelítést, hogy az nem jó, mert lassú... bullshit! Normális esetben nem észrevehető a különbség. Bár biztos vannak, akiknek feltűnik pár ezred/századmásodperces eltérés a betöltési időben...
Ja, amúgy ez most nem konkrétan neked szólt, hanem csak úgy általánosságban.
A post írása közben mindenfélék eszembe jutottak még a témával kapcsolatban, szerencse, hogy megálljt parancsoltam az írókámnak.
-
wolandino
tag
php oldalon ezzel kéne kezdenem valamit:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 43 bytes) in D:\Program Files (x86)\EasyPHP-5.3.8.1\www\mx\system\database\drivers\mysql\mysql_result.php on line 162kb 20k sormennyiség körül jön, alatta nem.
Beállítottam upload max filesize :2M-ről 50M-re, de nem hatotta meg. -
wolandino
tag
válasz
Peter Kiss #7666 üzenetére
annyira már én is rájöttem, hogy mysql oldalon (is) van hiba.
indexek rendben vannak. memóriát alig használ, a procihasználat megugrik, de a memóriahasználat végig 25 mb marad, egy nálam tapasztaltabb arc azt mondta, hogy az indexelés rendben van-egyébként szerintem is-a lekérdezés is, és ő sem értette mi tart 6mp-ig.a lekérdezést úgy tudom a mysql optimalizálja.de ha van konkrét ötleted örülnék neki -
Peter Kiss
őstag
válasz
wolandino #7664 üzenetére
Az SQL szerver cache-ébe nem nagyon szól bele a PHP, szóval tuti, hogy nem ez a baj.
Pár dolgot meg kellene nézni:
Mennyi "vas" is van a szerver alatt (és mi fut még azon)?
Elképzelhető, hogy index-hiányos a lekérdezés.
Optimalizálatlan a lekérdezés.Persze az adatokat PHP-val dolgozod fel, így a programkód is gyenge lehet.
-
wolandino
tag
Sziasztok,
Lényegében kezdő programozó vagyok.
PHP-ban fejlesztek egy rendszert.Codeigniter keretrendszert használok.
A funkciók központjában egy olyan tábla van, amire éves szinten kb 100-200k sorbejegyzés várható maximálisan. Úgy gondolom ez nem túl sok. A tábla egyébként nagyrészt id-ket tartalmaz 13 másik táblára, ezért a lekérdezések között nagyon sok olyan szerepel, amiben 14 join található. Már kezdek rájönni, hogy nem nagyon fog az működni, hogy az egész adatmennyiséget lekérem, ezért próbálkoztam olyan ajax hívásokkal, amelyek pár 100 sor szednek le. Viszont semmilyen gyorsulást nem tapasztaltam ahhoz képest, mintha megpróbálnám leszedni a teljes 100k sort. Az egyik ismerősöm szerint azért lehet, mert az easyphp amit használok nagyon kevés cache-t enged a mysql-nek, és ezért lassú.
Ha valakinek van ötlete, nagyon örülnék neki.
Köszönettel,
W. -
szike21
csendes tag
Nincsenek idézőjelek. Már próbálkoztam, így $_POST["aru_id"], de így sem működött. $_POST['aru_id'] így próbáljam meg?
-
szike21
csendes tag
Sziasztok! Egy adatbázist kellene írnom php-ban, de valamiért nem tudom feltölteni a táblákat, mert a $_POST nem kap értéket azt hiszem.
A kódok amiket írtam:
ujaru.html:
<html>
<body><form action="ujaru.php" method="post">
Áru név : <input type="text" name="aru_nev" />
Áru ID : <input type="text" name="aru_id" />
Ár : <input type="text" name="ar" /><input type="submit" />
</form></body>
</html>ujaru.php:
<html>
<head>
<title>SQL lekérdezések 2.</title>
</head>
<body><?php
$felh="root";
$jelszo="";
$adatbazis="raktar";//kapcsolat létesítése
$kapcsolat = mysql_connect("localhost", $felh, $jelszo);
//amennyiben a kapcsolódás sikertelen, a die-nak átadott szöveget írja ki (és a program futása leáll)
if (!$kapcsolat){
die ("Nem lehet csatlakozni a MySQL kiszolgalohoz!");
}mysql_select_db($adatbazis,$kapcsolat);
$parancs1="INSERT INTO aruk (aru_nev,aru_id,ar)
VALUES
('$_POST[aru_nev]', '$_POST[aru_id]','$_POST[ar]')";
mysql_query($parancs1, $kapcsolat);$eredmeny=mysql_query("SELECT * FROM aru ORDER BY aru_nev");
print "<table border=1>\n";
while ($sor = mysql_fetch_row($eredmeny)){
print "<tr>\n";
foreach ($sor as $mezo){
print "\t<td width='160'>$mezo</td>\n";
}
print "</tr>\n";
}
print "</table>";
print "<br>";mysql_close($kapcsolat);
?>
</body>
</html>A problémám az lenne, hogy undefined index hibával elszáll az aru_id-re, aru_nev-re és az ar-ra, de nem tudom mi lehet a probléma. Előre is köszi a segítséget!
-
Speeedfire
félisten
válasz
Peter Kiss #7657 üzenetére
-
Peter Kiss
őstag
válasz
Speeedfire #7656 üzenetére
-
Speeedfire
félisten
válasz
Peter Kiss #7655 üzenetére
Valóban ez a hiba oka. Hogy lehet visszaállítani 0-ra?
-
Peter Kiss
őstag
válasz
Speeedfire #7653 üzenetére
A mysql_result elállítja a pointert 0-ról 1-re szerintem. Mielőtt fetch-elnél, állítsd be 0-ra.
-
válasz
Speeedfire #7653 üzenetére
Szerintem a while függvényed a ludas. De hogy miért?
-
Speeedfire
félisten
Miért van az, hogy ha a mysql alatt futtatok egy sql parancsot akkor 4-et ad vissza, php alatt meg 3-at? Ilyet még nem láttam...
<?php
include_once 'config.php';
include_once 'db.php';
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
$SqlQuery = mysql_query("select * from diagrammok where tipus=1 order by szoveg asc limit 0 , 30");
$SqlQuery2 = mysql_query("select * from diagrammok where tipus=2");
?>
<h3>Üzemanyag árak</h3>
<table cellpadding="0px" cellspacing="0px" class="uzemanyag">
<tbody>
<tr><th colspan="2"><?php echo mysql_result($SqlQuery, 0, 'datum'); ?></th></tr>
<?php
while ($row = mysql_fetch_assoc($SqlQuery)) {
echo '
<tr><td class="tdleft">'.$row['szoveg'].'</td><td class="tdright">'.$row['szam'].' ft/l</td></tr>
';
}
?>
</tbody>
</table>
<h3>Jegybanki alapkamat</h3>
<table cellpadding="0px" cellspacing="0px" class="jegybank">
<tbody>
<tr><th><?php echo mysql_result($SqlQuery2, 0, 'datum'); ?></th></tr>
<tr><td><?php echo mysql_result($SqlQuery2, 0, 'szam'); ?>%</td></tr>
</tbody>
</table> -
Speeedfire
félisten
válasz
Sk8erPeter #7650 üzenetére
Nem baj, így marad.
Minden másra ott az analytics. -
Male
nagyúr
válasz
Sk8erPeter #7649 üzenetére
Köszi!
Igen, ezzel töltöttem a tegnap estét, hogy az egészet átnézzem. Szerencsére csak két ilyen változónevet használtam, azokat lecseréltem gyorsan. (pedig szeretem úgy csinálni, hogy azonos, ha ugyan olyan a tartalom, pl ha az adott, bejelentkezett ember neve a $_SESSION['felhasznalonev']-ben van, és közben valamiért kell egy másik felhasználó neve, akkor az a $felhasznalonev-be kerül... így jobban követhető nekem. Még jó, hogy itt most ilyesmi nem nagyon kellett. )
-
Sk8erPeter
nagyúr
válasz
Speeedfire #7643 üzenetére
"Ip, ország, böngésző, url, ahonnan jött url stbstb."
Ja, kábé ezek az adatok is kellenek. Az ország kivételével, bár utólag azt is megtudhatod IP alapján, ha nagyon akarod: [link]. De ez most nem kell neked.
Egyébként kicsit túlmisztifikálod ezt a plusz 5-6 mezőnyi letárolást.Még két tábla sem kell, ha nem feltétlenül akarod összekötni a júzerekkel az IP-címüket... bár azt is megteheted, pl. az első mező a uid, és anonim (nem bejelentkezett) user id-ja meg a 0. De ahogy elnézem, Te totál egyszerűt szeretnél, tehát kell neked a $_SERVER tömbön belül a 'REMOTE_ADDR' ($_SERVER['REMOTE_ADDR']), 'HTTP_REFERER', 'HTTP_USER_AGENT', esetleg 'REQUEST_URI', meg ami tetszik... Ezek a felsoroltak fontosak lehetnek. Meg természetesen egy időmező (default CURRENT_TIMESTAMP értékkel! Így ezzel sem kell foglalkozni, explicite értéket hozzárendelni, mert alapból kap egy értéket. Bár a query cache miatt elvileg jobb lenne PHP-vel átadni neki, de itt tök mindegy sztem...) Ráadásul így aszerint is tudnál szűrni, hogy mondjuk keresőrobot kereste-e fel az oldaladat, vagy akár spammotor.
Szóval nem egy olyan nagy csoda ez, egy tábla, azt' kész. Nincs itt semmi mini Google Analytics.
-
Male
nagyúr
válasz
Sk8erPeter #7638 üzenetére
Kipróbáltam egy alkönyvtárban egy teszt php-val, és ezzel a htaccess-szel... onnantól nem fut semmi, egy "A program nem futtatható!" felirat jelenik meg, és kész.
-
PazsitZ
addikt
válasz
Speeedfire #7646 üzenetére
Bár konkrétan analytic-et nem használtam még, de a google API általánosságban jól használható szvsz: [link]
-
PazsitZ
addikt
válasz
Speeedfire #7643 üzenetére
A google analytics egyébként miért nem jó?
vagy esetleg: Piwik
Kliens, de akár szerver oldalról is lehet beletolni az adatokat. -
cucka
addikt
válasz
Speeedfire #7643 üzenetére
Két tábla kell összesen, 1 a felhasználóknak és még egy a látogatásoknak. Ez független attól, hogy hányféle adatot tárolsz el.
-
Speeedfire
félisten
válasz
Sk8erPeter #7641 üzenetére
Igen, leka....uom.
A 100 tábla kicsi túlzás volt, de ismerlek benneteket. Ip, ország, böngésző, url, ahonnan jött url stbstb. A vége egy mini google analytics lenne.
-
Male
nagyúr
válasz
Sk8erPeter #7638 üzenetére
Köszi!
Nem tudom, hogy engedélyezett-e... sajnos nem olyan egyszerű a helyzet, mert az oldal már fut egy olyan tárhelyen, amihez csak FTP hozzáférésem van, nem látok admin felületet, nem tudok velük beszélni, stb... kísérletezni meg nem lehet menet közben...
-
Sk8erPeter
nagyúr
válasz
Speeedfire #7640 üzenetére
Ja, most értettem meg, hogy ezek szerint tulajdonképpen lesz@rod, hogy még egyszer bekerül, még ha ugyanaz a felhasználó nézi is meg...
Mivel pont Te írtad le, hogy az fog történni, hogy session megszűnése után már újabb látogatónak számít... ("Ha kilép a böngészőből és 20 perc múlva megint felmegy akkor az már még 1, még ha az ip ugyan az is.") Azt hittem, pont azt szeretnéd, hogy ez ne így történjen, legalábbis így volt értelmezhető, amit írtál...
"Nem akarok több 100 táblát egy sima statisztika miatt."
Nem igazán látom be, miért lenne szükség többszáz táblára emiatt?
Igazából több táblára sincs feltétlenül szükség.
Vagy ez költői túlzás akart lenni?A többszáz bejegyzés még stimmel, de ki a francot érdekel, ha többszáz sor van egy adatbázisban, rég rossz lenne, ha nem lehetne könnyen és gyorsan kezelhető...
-
Speeedfire
félisten
válasz
Sk8erPeter #7639 üzenetére
Nem nézem az ip-t pont a fix ip miatt, csak session-t nézek.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #7637 üzenetére
Akkor ezek szerint pont Te írtad az ellenkezőjét, amikor azt írtad, hogy "ha 5x megy fel akkor 5x kellene bekerülnie a táblába", és pont ezért borult az egész logikája...
mert ezek szerint ha most fix IP-ről beszélünk, akkor pont, hogy 1x kellene bekerülnie a táblába.
A dinamikus IP pedig (épp a session megszűnése miatt) - szopás.Ilyen esetben le kell tárolnod egy cookie-t hosszú lejárati idővel (miért olyan nagy para ez? Akkor gond, ha törli a júzer), meg session.cookie-lifetime (ez is sütialapú végül is). Itt van egy topic amúgy a session lejárati idejéről: [link].
-
Speeedfire
félisten
válasz
Sk8erPeter #7636 üzenetére
Lassan írom, hogy a gyengébbek is megértsék.
Szóval, statisztika.
Ha valaki ide oda kattintgat az oldalon akkor az 1 ember. Ha kilép a böngészőből és 20 perc múlva megint felmegy akkor az már még 1, még ha az ip ugyan az is.
Így oldottam meg, szerintem így a korrekt. Nem akarok több 100 táblát egy sima statisztika miatt.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #7623 üzenetére
Na várj, akkor most mit is szeretnél? Nekem legalábbis őszintén szólva ellentmondásos, amit írsz.
Először azt írtad, nem akarod, hogy csak a lap minden egyes betöltését számolja. Aztán azt írod, hogy nem 1x kéne eltárolnia júzerenként, hogy hányszor látogatott meg egy lapot, hanem ha 5x ment fel, akkor 5x tárolja el. Aztán írod, hogy "Viszont ha csak kattintgat ide-oda az oldalon akkor az 1nek számítsa." Most akkó' mi va'? -
Male
nagyúr
válasz
fordfairlane #7632 üzenetére
Igen, már megfejtettük.... amikor én kezdtem a PHP-t, akkor ez már rég alapból kikapcsolt volt, így nem is gondoltam rá. Továbbítottam nekik, hogy kapcsolják már ki így 2011-ben, a kódot meg ellenőriztem, hogy ne okozhasson problémát.
-
DeltaPower
addikt
válasz
fordfairlane #7632 üzenetére
Gondolom a register_globals a session változóra mutató referenciaként hozza létre a globálisokat.
-
Peter Kiss
őstag
válasz
Speeedfire #7623 üzenetére
IP, SessionID, DateTime, URL, ezeket, ha lemented, mindent megkaphatsz belőle.
-
Male
nagyúr
válasz
fordfairlane #7627 üzenetére
Akkor semmi gond nincs... szóval a hiba tulajdonképpen az, hogy a PHP változók egy idő után egyszerűen átvándorolnak a nevüknek megfelelő helyre a SESSION tömbbe... nem hinném, hogy ez normális viselkedés.
-
Male
nagyúr
...hát ez egy vicc...
Csináltam egy PHP-t, ennyi az egész:
session_start();
$_SESSION['csid'] = 69;
print"{$_SESSION['csid']}<br />";
$csid = 0;
print"{$_SESSION['csid']}<br />";Lefut egyszer, kiírja, hogy:
69
69...nyomok egy oldal frissítését, erre kiírja, hogy:
69
0Átírtam a kódot a következő képpen:
session_start();
$_SESSION['csid'] = 69;
print"{$_SESSION['csid']}<br />";
$csid = 5;
print"{$_SESSION['csid']}<br />";Lefut egyszer, kiírja, hogy:
69
69...nyomok egy oldal frissítését, erre kiírja, hogy:
69
5Én vagyok hülye, vagy ez a szerver "érdekesen" viselkedik?
-
Male
nagyúr
Gyors PHP kérdésem lenne, mert ezt egyszerűen nem tudom felfogni...
Kezdeti állapot például:
$_SESSION['akarmi'] = 5;
Későbbi részen:
$akarmi = 0;
if(isset($_SESSION['akarmi']) && preg_match('/^([0-9]{1,7})$/',$_SESSION['akarmi'])){
$akarmi = $_SESSION['akarmi'];
}Közvetlenül ezután ha kiíratom a $akarmi-t, akkor az 0, és a $_SESSION['akarmi'] szintén 0.
Olyan, mintha a $akarmi = $_SESSION['akarmi']; fordítva működne, és balról jobbra adna értéket.Mégis mi okozhatja ezt? Megkerültem a problémát úgy, hogy a $akarmi-nek nincs alapértelmezett értéke, hanem egy else ágban kapja meg a 0-t, de a miértre nem jöttem rá.
-
válasz
Speeedfire #7623 üzenetére
Nem érted. Külön táblába tárolod a lapletöltést, amit minden esetben elmentesz, és külön a napi látogatást.
-
Speeedfire
félisten
Igen, de ha 5x megy fel akkor azt csak 1nek számolja majd. Szerintem (erre írtam, hogy nem tudom hogy működik pontosan) ha 5x megy fel akkor 5x kellene bekerülnie a táblába. Viszont ha csak kattintgat ide-oda az oldalon akkor az 1nek számítsa.
Session lesz a megoldás szerintem, de kövezzetek meg ha hülyeséget írok. -
válasz
Speeedfire #7621 üzenetére
Akkor leírom megint
: szóval felnéz a lapodra - elkapod az ip címét, eltárolod. Letölt egy lapot, akkor megnézed, hogy aznap volt e már az oldalon, ha igen akkor egy másik táblába eltárolod, hogy ekkor, ő ezt letöltötte. A végén meg szummázod. Nem erre gondoltál?
-
Speeedfire
félisten
Az a baj, hogy én nem a lapletöltést akarnák számolni, hanem hogy mennyiszer mennek erre a lapra.
Ha valakinek fix ip-je van és egy nap felmegy 5x az oldalra akkor is csak 1x lesz benne az adatbázisban. Cookie-kat meg nem akarok. Lehet érdemes lenne a session-t és az ip-t kombinálni.
Nem tudom, hogy szokták ezt csinálni.
Nagyon bonyolult statisztikát nem szeretnék csinálni. Csak annyit, hogy a lap alján mutassa. -
válasz
Speeedfire #7619 üzenetére
Tárold el naponta az ip címet valamilyen titkosított formában. Aztán pedig utána, ha már megnézte egyszer a lapod, csak az oldalletöltések tárol, melyik lapon hányan, így frankó kis statisztikát - bár ez elég fapados - kaphatsz. Ha bonyolítani akarok akkor nézheted az opre / böngésző párost is, bár ez nem szükséges.
-
Speeedfire
félisten
Az egyik megrendelőmnél felmerül a nemrég emlegetett statisztika.
Egyelőre minden lapletöltéskor növekedik a számláló. Hogy lenne érdemes ezt megcsinálni?
Nyitni egy session-t és aszerint növelni a látogatottságot vagy ip alapján? Nagyon a session felé húzok. -
cucka
addikt
válasz
Speeedfire #7614 üzenetére
Nem, a te szervereden van kikapcsolva a php beállításai között az url_fopen, ami azt jelenti, hogy fopen() függvénnyel csak lokálisan elérhető file-t tudsz megnyitni. (A dom parser-ed ugyanúgy fopen-el próbálja megnyitni a file-t amivel dolgozni szeretne)
A megoldás, hogy szólsz a rendszergazdának, hogy kapcsolja be. -
Speeedfire
félisten
válasz
DeltaPower #7613 üzenetére
Igen, de hol a hvg-nél?
Nem teljesen értem... -
DeltaPower
addikt
válasz
Speeedfire #7612 üzenetére
...wrapper is disabled in server configuration by allow_url_fopen=0...
távoli fájlmegnyitás le van tiltva?
-
Speeedfire
félisten
RSS-ből szeretnék egy oldalt dom-olni, de valami nem kerek...
Ezt dobja:Error: [2] DOMDocument::load() [domdocument.load]: http:// wrapper is disabled in the server configuration by allow_url_fopen=0Error: [2] DOMDocument::load(http://hvg.hu/rss/gazdasag) [domdocument.load]: failed to open stream: no suitable wrapper could be foundError: [2] DOMDocument::load() [domdocument.load]: I/O warning : failed to load external entity "http://hvg.hu/rss/gazdasag
Ötletek?
-
biker
nagyúr
van valami jó tippetek konfigurálni a strip_tags-et?
sok termékem leírásánál jó, ha van formázott szöveg, de soknál hibás leírásokat kapok, és tele van div-ekkel, amik lezáratlanul hazavágják a rendszert
erre valami tipp? most mindent szűrök -
Speeedfire
félisten
válasz
Sk8erPeter #7609 üzenetére
Van amit én is megcsinálok sql alatt, de én is inkább azok közé tartozok akik inkább csak tárolásra használják.
-
Sk8erPeter
nagyúr
válasz
lafaty80 #7599 üzenetére
Akkor örülök, hogy segíthettem.
(#7598) letix : nincs mit, írj, ha elakadtál, szerintem akár kész scriptekkel is tudunk szolgálni. Meg azt is meg tudjuk mutatni, hogy a sessionben hogy tárold, hogy adott júzer adatai már el vannak mentve (ne legyen még egyszer).
(#7597) Speeedfire : végül is megszokás kérdése, hogy melyik feldolgozás egyszerűbb.
Ez is szemlélet kérdése: vannak, akik azt vallják, hogy pl. egy MySQL- (vagy más alapon működő) adatbázis szolgáljon csak puszta adattárolásra, ne legyen feladata (bonyolultabb) számítások elvégzése, azt bízzuk rá más szerveroldali nyelvre. Lehet akár még inkább csökkenteni az adatbázisra bízott feladatokat a query cache kihasználásával is, lásd itt az első tippet: [link] (meg a többit, érdemes megfontolni őket).
Máshol komplex tárolt eljárásokat használnak, összetett lekérdezéseket, bonyolult számításokat végeznek adatbázis oldalon.
Tulajdonképpen nehéz eldönteni, melyik a jobb megközelítés, mindkettőnek van előnye és nyilván hátránya is. Attól is függ, lehet-e kellőképpen terhelni az adatbázisszervert, stb... -
D@ni88
addikt
válasz
DeltaPower #7605 üzenetére
Nem pontosan ezt értem
Azt szeretném elérni, hogy pl "sok" egymást követő insert/update-k ne akadjanak meg valahol.
Pl csak akkor történjen meg a mentés, ha lefutott az összes insert/update -
DeltaPower
addikt
Ha ugyanazon formban van, más "name" attribútumot kell neki adni, elküldés után elvileg csak az a POST mező kap értéket a kettő közül, amelyik gombra kattintasz.
"Auto commit" alatt autocomplete-et értesz, tehát a mezőkbe begépelt szöveg tárolását? Nem sok indokot ismerek, amiért érdemes lenne letiltani, ráadásul elég sok user használja.
-
D@ni88
addikt
Szeretnék egy űrlapra egy törlés és egy Módosítás gombot tenni.
Hogy lehet megoldani hogy tudja mikor melyik gombra kattintottam?Másik kérdés, ti a holnapotoknál engedélyezitek az auto commitot?
-
letix
senior tag
válasz
Speeedfire #7600 üzenetére
Örülök hogy hasznosnak bizonyul az oldal!
Éppen oda tervezek valami jobban működő forgalomszámláló megoldást! Persze időm az még nem volt.A history-t kimentettem, átnyálazom, köszönöm az uraknak!
udv
letix -
biker
nagyúr
válasz
Speeedfire #7594 üzenetére
nem rossz, de hibás
SUM(case DNemKod when 'F' then 1 end) as Fefriak??
Új hozzászólás Aktív témák
Hirdetés
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Milyen videókártyát?
- Star Citizen
- Anime filmek és sorozatok
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- BestBuy topik
- Linux kezdőknek
- Xiaomi 15 - kicsi telefon nagy energiával
- Azonnali mobilos kérdések órája
- Samsung Galaxy A54 - türelemjáték
- További aktív témák...
- Eredeti DELL 240W töltők (LA240PM160)
- AKCIÓ! Lenovo Legion Slim 5 Gamer notebook - R7 7435HS 16GB RAM 1TB SSD RTX 4070 8GB GDDR6 WIN11
- LG 55G3 - 55" OLED evo - 4K 120Hz 0.1ms - MLA - 2000 Nits - NVIDIA G-Sync - AMD FreeSync - HDMI 2.1
- Apple iPhone 12 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Telefon felvásárlás!! Honor Magic6 Lite, Honor Magic6 Pro, Honor Magic7 Lite, Honor Magic7 Pro
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest