- Kevesebb dolgozó kell az Amazonnak, AI veszi át a rutinfeladatokat
- Humanoid robotokat visz az AI-szervergyárba az NVIDIA és a Foxconn
- Nehéz helyzetben az SMIC, régebbi chipet használ az új Huawei laptop
- One otthoni szolgáltatások (TV, internet, telefon)
- 1000 milliárd dolláros AI-központot akar az USA-ban a SoftBank
Új hozzászólás Aktív témák
-
Soak
veterán
válasz
sztanozs #10599 üzenetére
public static function pagination_photograph($sql="",$id,$per_page,$pagination) {
global $db;
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false );
$query = $db->prepare($sql);
$result_set = $query->execute(array($id,$per_page,$pagination));
$object_array = array();
while ($row = $query->fetch($result_set)) {
$object_array[] = self::instantiate($row);
}
return $object_array;
}
private static function instantiate($record) {
$object = new self;
foreach($record as $attribute=>$value){
if($object->has_attribute($attribute)) {
$object->$attribute = $value;
}
}Ha csak simán mondjuk users_id-ra keresek akkor minden tökéletesen működik.
-
Soak
veterán
válasz
burgatshow #10597 üzenetére
Attól az még eredmény.
Más kérdés, hogy még nem az amit szeretnék.
-
Soak
veterán
-
Lacces
őstag
"Ahány ember, annyi féle" - pont ez a legrosszabb benne
Mikor 5 éves kódba kell beleírnod, semmi Joinolás nincs a query-kben stb. Én menekülök...
Biztos hogy van eredmény a query lefutása után? phpmyadmin (vagy mysql-ben) a query lefutása után van ott visszaadott sor?
csinálj egy die($query) - vagy $sql, amiben van a "SELECT * FROM..." és azt kell megnézni mysql-ben is.
-
Soak
veterán
-
Lacces
őstag
Csak nekem fura, új az az query-zés
, én év elején tanultam a php-t és azt láttam neten és új könyvekben is inkább az-az megoldás, amit én írtam. Nem kötekedésből írtam, elnézést ha az volt. Szal nekem csak ezért volt fura, még sosem láttam
. Elnézést kérek ha félreérthető voltam
t|-|om! Nálad a pont, bemutattam egy olyan példát, amit nem szabad elkövetni... a rossz szokás hatalma itt a melóhelyen, átveszem a rossz kódolást, mindig más rendszerébe kell belenyúlni. Tudom nem kifogás, de jó hogy szóltál, mert rám ragad
-
burgatshow
veterán
Ha a :változókat lecseréled kérdőjelre, utána meg a tömbben csak a megfelelő sorrendben felsorolod az értékeket akkor sem jó?
Pl.:
$sql = 'SELECT * FROM photographs WHERE users_id = ? LIMIT ? OFFSET ?';
$query = $db->prepare($sql);
$result_set = $query->execute(array($page, $per_page, $pagination));Mod: vagy ötvözve Lacces megoldásával.
-
Lacces
őstag
Esetleg ez? Nekem nem tetszik az utolsó sorod
A bindparamot javaslom a típusok miatt is. Szerintem jó az ha felvan tüntetve a típus
$id= 150;
$per_page= '120';
$pagination = '10';
$sth = $dbh->prepare('SELECT *
FROM photographs
WHERE users_id =:id LIMIT :per_page OFFSET :pagination);
$sth->bindParam(':id', $id, PDO::PARAM_INT);
$sth->bindParam(':per_page', $per_page, PDO::PARAM_INT);
$sth->bindParam(':pagination', $pagination, PDO::PARAM_INT);
$sth->execute();PDO::PARAM_INT --- Integer típus. Ha meg stringről van szó, akkor meg PDO::PARAM_STR
-
sztanozs
veterán
Reasons to strongly type parameters in PDO? - első válasz...
-
Soak
veterán
Sziasztok !
Több helyen olvastam már a probléma létezéséről, de nem sikerült még megoldást találnom ami működik nekem. Biztos találkoztatok már vele :
Ezt szeretném :
$sql = 'SELECT * FROM photographs WHERE users_id = :id LIMIT :per_page OFFSET :pagination';
Így nem megy -üres array-t ad vissza- :
$query = $db->prepare($sql);
$result_set = $query->execute(array(':page' => $page,':per_page' => $per_page, ':pagination' => $pagination));Ha jól értem akkor a PDO string-nek veszi az integereket . Probáltam bindParamm-al ,de nem ment.
-
biker
nagyúr
már érg 60mp ini_time_set
és 4000emailt is ki tud küldeni ugyanez a script, eddig ennyi volt a csúcs teszt. minden küldés után kiíratom az emailcímet a usernek, ezzel ugye küldésenként 60mp, mivel minden echoval reseteli az időkorlátot, hiszen van válasz
ha nem tenném, lejárna a limit -
Robaj
addikt
Lehet, az a gond, hogy a futási idő korlátozva van.
Némelyiknél 15mp-ig futhat 1-1 php program.
Phpinfo-val nézd meg a max_execution_time értékét.Ha ez alacsony, pl. 15-30 mp, akkor próbáld megnöveltetni szolgáltatóval, ha nem megy, akkor érdemes kitapasztalni, mennyi email megy ki (írtad 400 db), és úgy módosítani a programot, hogy 1 futtatás során ennél valamennyivel kevesebbet küldjön ki (jelen esetben pl. 300 db), majd cronban beállítani, h. pl. 5 percenként futtassa le a progit.
Másik megoldás, ha header-rel átirányítod, ekkor újraindul a time limit, azonban paraméternek megadod, hogy 300-tól kezdje a küldés, 600-nál meg újra header. -
Lacces
őstag
válasz
burgatshow #10579 üzenetére
köszi, ez jó
-
Korcsii
őstag
válasz
burgatshow #10579 üzenetére
Aztán jön az IPv6, és jól bekever.
-
-
Sk8erPeter
nagyúr
válasz
Lacces #10574 üzenetére
A reguláris kifejezésedben látsz számokat?
/^http:\/\/[A-Za-z0-9\.:]+/
Így stimmelne, de ez a kifejezés sem jó még önmagában semmire, csak arra, hogy valamennyire korlátoztad, hogy ezek a karakterek lehetnek benne, tehát ezen a teszten még egy http://9: is átmenne.Amúgy itt van egy online tester, ha érdekel.
-
Lacces
őstag
Szívatom magam regexel
Ezt akarom vizsgálni
$http=http://205.188.215.229:8008
Ez a kifejezés miért nem jó?
preg_match("/^(http:\/\/)[^A-Za-z]/",$http) -
biker
nagyúr
válasz
Tele von Zsinór #10572 üzenetére
Ezaz, semmi. Errors.log üres, smtp server naplot meg nem kaptam meg, hogy az hisztizik vagy mi
A swiftmailer se kuld exceptiont ami fura -
biker
nagyúr
válasz
Sk8erPeter #10570 üzenetére
igen, természetesen benne van a setCharset
-
Sk8erPeter
nagyúr
Én PHPMailert szoktam használni.
Ha meghatározod a karakterkódolást, ahogy itt látható, akkor is probléma van az ékezetekkel?// Approach 1: Change the global setting (suggested)
Swift_Preferences::getInstance()->setCharset('iso-8859-2');
..........(lásd még a többi approach-ot is)
Ez a "leáll a futás" tényleg elég megfoghatatlan, így nyugodtan elképzelhető, hogy más levelezőosztály használhatával is le fog állni...
-
biker
nagyúr
nyűglődök kicsit swiftmailerrel.
A bajom, hogy "eddig jó volt" most meg rendre leáll, semmi hibaüzenet, leáll a futás.
van egy webshop, ugyanezen serveren, elküldök 1200 levelet, 5 után 5, 20 után 20mp szünet körbe körbe, ne ugráljon a server
frankóugyanitt egy másik cég, 40-60 küldés után leáll a futás.
legfrisebb swiftmailert próbáltam, de az meg ugyanazon iso-8859-2 kódolásokkal eldobálja az ékezetes karaktereketmit javasoltok helyette, saját smtp userrel küldenék ki maileket
-
Lacces
őstag
válasz
Sk8erPeter #10566 üzenetére
jah, majd bérlés lesz belőle, most localon jó. Többivel tényleg nem csesztettem magam.
Igen, utána azt a sort én is próbáltam amit írtál. Csak a sorrend nem volt nálam mind1. közvetlenül az execute elé kellett raknom.
De most működik minden babán localon és ez a lényeg. Köszi a segítséget!
-
Sk8erPeter
nagyúr
válasz
Lacces #10564 üzenetére
Röviden: felejtsd el a fostalicska ingyenes szervereket. Ma már olyan olcsón lehet kapni tárhelyeket, meg domaint, hogy felesleges szopatnod magad ezekkel.
Szerintem a user agent tök mindegy az URL tartalmának lekérésekor ebben az esetben.
De ha hibába fut valamiért az állítgatás, akkor lehet parád az ingyenes szerókon."Ezzel meg pont az a bajom, hogy mindenképp kinyomja a curl_exec() a tartalmat."
Nem értem, most miért nem volt jó az a függvény, amit éppen Te másoltál be az előbb, és amihez még hozzáfűztem plusz két sort.
Itt volt benne erre a megoldás:// Should cURL return or print out the data? (true = return, false = print)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); -
Lacces
őstag
válasz
Lacces #10564 üzenetére
A másik bajom, hogy a hostnál az a baj: 'http://www.google.com/' ezeket a címeket képes lekérdezni, de ami van az előzőnél is, hogy 'http://87.117.193.10:8000/' shoutcast infókat akarok lekérni, akkor semmi. Mintha a UserAgent nem működne a hostoknál, localhoston okés.
-
Lacces
őstag
válasz
Sk8erPeter #10562 üzenetére
Köszi a jó tanácsokat.
A curl érdekes, ahogy azt a sort hozzáadtam, már akkor kiírta, hogy nincs curl telepítve... de csak akkor. Azután babán működik, localhoston.
Hoston nem (ami Pazsit is javasolt), mert kiaakadt attól az egy sortól.
$ch = curl_init("http://87.117.193.10:8000/");
curl_setopt($ch, CURLOPT_HEADER, 0);
$html = curl_exec($ch);
curl_close($ch);
echo $html;
Ezzel meg pont az a bajom, hogy mindenképp kinyomja a curl_exec() a tartalmat. De mind1. Hiába van ott az echo $html; - az csak egy '1'-est rak ki.A host meg nem nyeli le a következőt:
curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");Pedig ez localon működik és kell is.
No így jártam
DeltaPower Igen, az iniset, amit nem csípáznak a szerverek.
-
DeltaPower
addikt
válasz
Sk8erPeter #10562 üzenetére
Az ini_set is gyanús, sok ingyenes tárhelyen tiltják.
-
Sk8erPeter
nagyúr
válasz
Lacces #10556 üzenetére
Ha egy fájlban csak és kizárólag PHP-kód van, akkor sose zárd le ezzel a résszel: ?>. Lásd ezt.
"The closing tag of a PHP block at the end of a file is optional, and in some cases omitting it is helpful when using include or require, so unwanted whitespace will not occur at the end of files, and you will still be able to add headers to the response later. It is also handy if you use output buffering, and would not like to see added unwanted whitespace at the end of the parts generated by the included files."
Ez persze az érdemi kérdésen nem változtat, csak jótanács.ini_set('user_agent', 'Mozilla');
Nincs olyan valid user agent, ami csak úgy simán azzal egyenlő, hogy "Mozilla"!Az érdemi részre meg már látom, PazsitZ leírta a választ, allow_url_fopen nincs engedélyezve a szerveren, amivel próbálkozol, anélkül meg nem megy.
-
Sk8erPeter
nagyúr
válasz
Lacces #10560 üzenetére
Azért nem működik, mert be kell tenned még ezt:
// This will make cURL follow the redirects (@see http://stackoverflow.com/questions/6028050/curl-returntransfer-is-empty-curl-getinfo-error-1)
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);Tehát a teljes függvény:
/**
* Download a website or any other file using cURL
*
* @see http://www.jonasjohn.de/snippets/php/curl-example.htm
* @see http://stackoverflow.com/questions/6028050/curl-returntransfer-is-empty-curl-getinfo-error-1
*
* @param string $Url
* @return string
*/
function curl_download($Url){
// is cURL installed yet?
if (!function_exists('curl_init')){
die('Sorry cURL is not installed!');
}
// OK cool - then let's create a new cURL resource handle
$ch = curl_init();
// Now set some options (most are optional)
// Set URL to download
curl_setopt($ch, CURLOPT_URL, $Url);
// This will make cURL follow the redirects (@see http://stackoverflow.com/questions/6028050/curl-returntransfer-is-empty-curl-getinfo-error-1)
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// Set a referer
curl_setopt($ch, CURLOPT_REFERER, "http://www.example.org/yay.htm");
// User agent
curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
// Include header in result? (0 = yes, 1 = no)
curl_setopt($ch, CURLOPT_HEADER, 0);
// Should cURL return or print out the data? (true = return, false = print)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Timeout in seconds
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
// Download the given URL, and return output
$output = curl_exec($ch);
// Close the cURL resource, and free system resources
curl_close($ch);
return $output;
}Teszt:
$curl_download = curl_download('http://www.example.org/');
echo $curl_download; -
Lacces
őstag
válasz
PazsitZ #10559 üzenetére
Nálam például ez sem működik:
<?php
function curl_download($Url){
// is cURL installed yet?
if (!function_exists('curl_init')){
die('Sorry cURL is not installed!');
}
// OK cool - then let's create a new cURL resource handle
$ch = curl_init();
// Now set some options (most are optional)
// Set URL to download
curl_setopt($ch, CURLOPT_URL, $Url);
// Set a referer
curl_setopt($ch, CURLOPT_REFERER, "http://www.example.org/yay.htm");
// User agent
curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
// Include header in result? (0 = yes, 1 = no)
curl_setopt($ch, CURLOPT_HEADER, 0);
// Should cURL return or print out the data? (true = return, false = print)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Timeout in seconds
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
// Download the given URL, and return output
$output = curl_exec($ch);
// Close the cURL resource, and free system resources
curl_close($ch);
return $output;
}
error_reporting(2);
print curl_download('http://www.example.org/');
?>Firefox nem jelenít meg, Chrome pedig csak egy laza server_error-t dob...
-
Lacces
őstag
válasz
PazsitZ #10557 üzenetére
Igen, az lehet. Így utána olvasva a témában.
Amúgy van másik eljárás is, amivel a fenti kódomnál amellyel egy oldal tartalmát betudom húzni? (feldolgozni).
Ezt a curlt próbáltam, na de inálam a legegyszerűbb példák sem működnek. Még ha másolom is a forráskódot. Nálam meghal... -
Lacces
őstag
Előzmény([jquery fórum]) itt a php fájl, ami elvileg generál:
Az a baj ezzel a php fájllal, hogy laptopon az ubuntura feltett alap apach2, php stb-vel megy, működik! Azt az eredményt produkálja, ami a jqeury-s linken van.
Viszont ahogy feltölttem, az atw-re vagy ide Akkor semmit nem ír ki. Semmi sem jelenik meg az oldalon.
Mittől lehet, hogy semmit sem kapok vissza ettől a php fájltól?Másik kérdés, hogy a laptopon, ez miért jó? (Ubuntu 12.04)
<?php
//$trackName='';
//$stationName='';
$dataArray = null;
$shoutcast_url = 'http://87.117.193.10:8000/';
error_reporting(0);
ini_set('user_agent', 'Mozilla');
header('Content-type: text/html; charset=utf-8');
$html = file_get_contents($shoutcast_url);
$dom = new domDocument;
$dom->loadHTML($html);
$tables = $dom->getElementsByTagName('table');
$rows = $tables->item(3)->getElementsByTagName('tr');
foreach($rows as $row)
{
$cols = $row->getElementsByTagName('td');
if($cols->item(0)->nodeValue == 'Current Song: ')
{
//$trackName = $cols->item(1)->nodeValue;
$dataArray['track'] = $cols->item(1)->nodeValue;
}
if($cols->item(0)->nodeValue == 'Stream Title: ')
{
//$stationName = $cols->item(1)->nodeValue;
$dataArray['station'] = $cols->item(1)->nodeValue;
}
//echo $cols->item(0)->nodeValue;
//echo $cols->item(1)->nodeValue."<br>";
}
echo json_encode($dataArray);
//echo json_encode($trackName);
//echo json_encode($stationName);
?> -
Soak
veterán
válasz
Tele von Zsinór #10554 üzenetére
-
Soak
veterán
Ugye jól értem, hogy itt nekem nem kell escapelni vagy az értékekkel bármi mást csinálni?
$sql = $db->prepare('SELECT * FROM messages WHERE receiver_id = :id AND seen = 0 ');
$sql->execute(array(':id' => $id));
$result = $sql->fetchALL();
return $result; -
Soak
veterán
válasz
Tele von Zsinór #10551 üzenetére
Azóta már végig gondoltam, hogy sok értelme nincsen .
. Tudom mi a második paraméter, olvastam a php.net-et. Szerintem ha a 32 random byte-al egy user accountot feltörnek, ott jó esélyel user error volt (netcafeban bekapcsolta a funkciót vagy csak simán fertőzött a gépe).
Köszönöm mindkettőtöknek.
-
Tele von Zsinór
őstag
Igen, ez így egy elég erős randomot ad, de a crypt felesleges, attól nem lesz nehezebben kitalálható. Kérsz az openssl-től 32 random byte-ot, és ez már elég jó.
Két dologra figyelj oda: egyrészt az openssl nem mindenhol van bekapcsolva, másrészt ha a második paraméterben átadott változóban false-t kapsz vissza, akkor kriptográfiailag nem erős algoritmussal lett generálva a véletlen érték - bár ezzel nem igazán tudsz mit kezdeni, jó tudni. A php.net szerint ez elég ritka.
-
Soak
veterán
válasz
Tele von Zsinór #10548 üzenetére
Valami ilyesmit?
$rnd_nmb_1 = openssl_random_pseudo_bytes(20, $cstrong);
$rnd_nmb_2 = openssl_random_pseudo_bytes(20, $cstrong2);
$saltB = "$2a$07$";
$saltB .= bin2hex($rnd_nmb_1);
$string = bin2hex($rnd_nmb_2);
echo 'Blowfish: ' . crypt($string, $saltB) . "\n";Vagy magát a hashelendő szöveget nincs értelme randomizálni?
-
Tele von Zsinór
őstag
Igen, ennyi a lényeg. Usernevet nem kell tárolni, a token pontosan azonosít egy felhasználót. És igen, ha megszerzi a tokened, azzal be tud lépni, ez egy komoly biztonsági kockázata ennek a funkciónak. Javítani lehet a helyzeten, ha egy tokent adott ip-re (vagy ip tartományra) korlátozol.
sztanozs: egyszerű, könnyen érthető példát akartam. Az mt_rand nem erős kripto értelemben. Arra inkább az openssl_random_pseudo_bytes kell neked, de még ez sem az igazi - valójában php-ben kriptográfiailag biztos véletlen érték generálása nem éppen triviális feladat. Érdemes megnézni a CryptLib Random részét, ez számos forrást ismer, és ezeket kombinálva kellemes nagyságú entrópiát tud létrehozni.
-
Soak
veterán
válasz
Tele von Zsinór #10545 üzenetére
Tehát ha jól értem akkor egy random stringet (token) generálok neki amit MySQL adatbázisban eltárolok, plusz beleírom a cookiejába. Majd amikor jön, és nincs session_id-ja ,de megvan a token akkor megnézem, hogy van-e az adatbázisban token? Gondolom tárolom a usernevet is, nem (mármint a cookieban)?
De ha jól értem akkor ha valaki megnézi a cookie adataimat (vagy ellopja) akkor a tokenemmel be tud lépni automatikusan a sitera, nem? Igaz ,hogy a jelszavamat nem fogja tudni, de login jó kezdés. -
sztanozs
veterán
válasz
Tele von Zsinór #10545 üzenetére
A "salt".time() nem túl jó, inkább valami kriptografikailag megfelelő random kell: [link]
-
Tele von Zsinór
őstag
Amikor a felhasználó normálisan bejelentkezik, és így is akar maradni, generálsz neki egy remember me tokent - ez legyen nehezen kitalálható és egyedi (például md5("salt" . time()). Ezt kirakod cookieba és tárolod adatbázisban.
Amikor a user aktív session nélkül érkezik, de van ilyen tokenje, megpróbálod adatbázisbeli felhasználóhoz passzolni - ha sikerül, sessiont feltöltöd a bejelentkezéshez szükséges adatokkal, egyéb esetben törlöd a tokent, hogy időt és sávszélt spórolj.
Jelszócsere esetén a felhasználó token mezőjét nullra állítod.
-
Soak
veterán
Hogy szoktátok megoldani egy oldalon az "emlékezz rám" funkciót? Elég régóta foglalkoztat és maximális biztonságot szeretnék. Az alap, hogy a jelszót nem tárolhatom el, még hashelve sem, mert annak sincs sokkal több értelme. Miként tudom azonosítani az embereket akkor? A böngésző jelszó tároló funkcióját kell aktiválni, ha beikszelem az emlékezz rám gombot? (nem hinném) . Régóta keresek a témában, de még nem találtam rá az igazi megoldásra, ahol valaki feketén fehéren elmagyarázza a dolog menetét. (nem feltétlenül a kódra gondolok, hanem az alapelvekre) .
-
Sk8erPeter
nagyúr
válasz
Lacces #10540 üzenetére
Háde félreértettél, nem a Te hibád az, ha a nagy guru fejlesztő saját keretrendszerrel állt elő, amit nehéz használni.
Hát, segítenék szívesen, de ha nem mondasz konkrétabb példát, akkor nem tudom kitalálni, mi a helyzet.
Pedig az előbb épp hozzá akartam tenni, hogy sokat vakerászom itt a topicban is - mások nagy bánatára.
-
Lacces
őstag
válasz
Sk8erPeter #10539 üzenetére
Jól van már
Ne köss már belém.
De érted, mit akartam közölni a keretrendszerrel.
Konkrétumot behegeszteni ide, elég hosszú. A vezír meg szabadságon van, és hiába, hogy a többiek tőlem régebb óta vannak ott... Egyik sem tudott mit mondani rá, inkább tőlem várták a megoldást... Amikor az 5 év tapasztalattal rendelkező a 0.5 év tapasztalattal rendelkezőtől várja a megoldást...
Simán megérdemelnék a PHP nagyúr címet
valami kis plecsni is járhatna neked
-
Sk8erPeter
nagyúr
válasz
Lacces #10538 üzenetére
"ő találta ki a keretrendszert"
Ezt úgy bírom, amikor valaki felfedezi a spanyolviaszt."Az egyszerű polimorfizmus nem működik benne... sem konstruktorral, igaz nem is jön létre objektum, hanem osztályok közötti öröklődés van csak... és hiába próbálom a gyermekben felülírni az ősosztályból származó adattagot, nem megy."
Konkrétum nélkül nehéz erre mit mondani, nem látjuk, mit csinálsz rosszul vagy értelmezel félre.Ja, hát igen, múlik az idő, és sokat vakerászom.
-
Lacces
őstag
válasz
Sk8erPeter #10519 üzenetére
Én magam sem tudom, de köszönöm, majd hétfőn megkérdezem a vezető fejlesztőt... ő találta ki a keretrendszert.
Az egyszerű polimorfizmus nem működik benne... sem konstruktorral, igaz nem is jön létre objektum, hanem osztályok közötti öröklődés van csak... és hiába próbálom a gyermekben felülírni az ősosztályból származó adattagot, nem megy.
De azért köszönöm!
Látszik, hogy már rég jártam itt
PH!Kedvencből Nagyúr lettél
-
DeltaPower
addikt
válasz
Sk8erPeter #10533 üzenetére
Ja bocs, ezred
-
TonTomika
aktív tag
Nem kell egy bonyolult dologra gondolni.
Egy egyszerű űrlap, amit kitöltenek, majd elküldi emailben, de bele kell iktatni egy egyedi rendelési számot.
Lehetnek benne betűk is, csak ezt így most egyszerűbbnek láttam, hogy az időpontból csinálok egy számsort. Sajnos a php tudásom nem olyan nagy, nem kellett még random értékekkel dolgoznom, de hátha találok rá valami tutorialt.
-
Sk8erPeter
nagyúr
válasz
DeltaPower #10532 üzenetére
12 ezred.
-
Soak
veterán
válasz
Sk8erPeter #10530 üzenetére
Igen, most így használom
-
Sk8erPeter
nagyúr
Szerintem a 6 számjegy kicsit kevés.
(#10520) Soak : "A VirtualHost-hoz nem nyúltam abszolut."
Most hogy van beállítva?
pl. localhost/phpmyadmin, vagy hogyan használod?
Azt még mindig nem írtad, próbáltad-e már másik verzióval.
Ha nem, tedd meg.
Esetleg rakd fel a php.ini-det is valahova, vagy a my.cnf-et, esetleg az Apache megfelelő konfigfájljait. -
Soak
veterán
válasz
DeltaPower #10527 üzenetére
Nekem csak így magában ez jött ki jó sok alkalommal:
0.012153148651123s
0.00029802322387695s -
Soak
veterán
válasz
TonTomika #10526 üzenetére
De, mindenképp fent áll. De ha számokat használsz keverési alapanyagnak mindig fent fog állni mivel a számok végesek.
Nem ismerem a környezetet, de én mindenképp valahogy úgy csinálnám pl, 12(évszám)07(hónapszám)27(napszám)0001(mindennap nullázodó számláló). Így legalább jelentése is lesz és ismétlődni sem fog.
-
DeltaPower
addikt
-
Soak
veterán
válasz
DeltaPower #10524 üzenetére
Az összes adatbázis jelengleg a gépemen ez az egy
.
Megcsinálnám a tesztet amint írtál, csak nem tudom hogyan csináltad
-
DeltaPower
addikt
Alapbeállításban egy fájlos, kivéve ha a konfigban az innodb_files_per_table hozzá lett adva telepítés után.
Az előző kérdésem az összes adatbázisra együtt vonatkozott, ami a helyi mysql-ben van. Nálam összesen több mint 5 giga adatbázis van, és még ha nem is valamelyik nagyot, hanem egy pár táblás, majdnem üres kisebb adatbázist használok, az is eléggé lassú tud lenni. Persze ebben benne van a lassú és töredezett vinyó is.
Az egy fájlos tárolás azért lényeges, mert ilyenkor az összes innodb adatbázis egyetlen fájlban tárolódik, ami szerintem teljesítmény szempontjából nem a legjobb megoldás egy bizonyos méret felett. (sajna egy fájlosról több fájlosra áttérni elég nehézkes egy létező adatbázis esetén).Csináltam most egy gyors tesztet, teljesen egyszerű php file, csak simán felkapcsolódok egy tök üres adatbázisra. A szerveren most 21 adatbázis van, össz tárhelyfoglalás 5,98 GB.
A mysql 250-es satás, 7200-as WD vinyón, 220 gigás partíció, 500 mega szabad hely. Az InnoDB ibdata1 fájlja 220(!) fragmentben. (8G ram, x2 250, a rendszer ssd-n van, nem ezen)Ezek az idők jöttek ki:
0.0013120174407959s // saját DB layer include
0.99860501289368s // kapcsolódás saját DB layeren keresztül
0.00019001960754395s // kapcsolat lezárás DB layeren keresztül
1.0029170513153s // kapcsolódás mysql_connect()-el
7.9870223999023E-5s // kapcsolat lezárás1 másodperc körüli idő egy sima kapcsolódásra, üres adatbázishoz.
-
TonTomika
aktív tag
Sziasztok!
Van egy email alapú megrendelő formom, ehhez kéne egy véletlen szerű rendelési számot generálnom, adatbázis nincsen a form mögött.
A prog.hu-n találtam a következőket, de ez nekem eléggé overkill megoldásnak tűnik, valamint nem is tudom, hogy hogyan kezdjek neki:
Ha pl. felhasználod a dátumot, az időt és a rendelés (egyenként növekvő ID-ját, akkor sose lesz egyforma.
Pl. nekem "véletlen kellett"
összeraktam az időt, a dátumot és az ID-t, egy számmá:3. rendelés pl:
082731 20070111 003
ez kiadott egy szép nagy számot.
felvettem egy stringet:
$kulcs="1qw2ertz3uio4pas5df6gh7jkl8yx9vb0nm";
és ez mint "számrendszer jegyek" funkcionáltak.
A "számot" elsoztottam a a hosszal, a maradéknak megfelelő jegyet kivettem. Az eredmény egészrészével tovább dolgoztam.Így a véletlen kódból bármikor ellenőrizhettam az adatokat, hiszen visszakódolható volt.
Persze számsorozatnál szűkebb a lehetőség, de a "generált" dátum kulcs jegyeit össze is keverheted valamilyen szabállyal.
Az ötlet nagyon tetszik, viszont ezzel a kulccsal való "kódolás" elég bonyolultnak tűnik nekem.
Azt viszont jónak találom, hogy a megrendelés pontos időpontjainak számjegyeit véletlenszerűen összekeverem, szerintem ennyi elég. Vagy nem árt bonyolítani rajta?
A számsor karaktereinek összekeverését melyik functionnel, vagy milyen metódussal tudom elvégezni?
Előre is köszi a válaszokat!
-
Soak
veterán
válasz
DeltaPower #10515 üzenetére
Az adatbázis 8 tábla és kb 50sor (szinte üres) . A winchester nincs a helyzet magaslatán, de nem tördezetett (legalábbis a töredezettségmentesítő szerint) . Nem tudom ,hogy egy fájlos tárolás van-e beállítva. Melyik paraméter határozza meg?
-
Soak
veterán
válasz
Sk8erPeter #10514 üzenetére
WAMP : 2.2
Apache : 2.2.21
MySQL : 5.5.20-logEz már az ujabb verzió, elötte is csinálta. A távoli szerveren ugyan ez a verzio és az elötte lévő is müködött jól.
A VirtualHost-hoz nem nyúltam abszolut.
-
Sk8erPeter
nagyúr
válasz
Lacces #10518 üzenetére
Ja, de most végül is mi a kérdés?
Pont meg volt nyitva a NetBeans, úgyhogy bepötyögtem neked egy rövid példát a kódjaid alapján, abból hátha megérted, próbáld ki, kiírat minden szirszart:
<?php
class Admin {
public $valami = 0;
public function ez() {
return __METHOD__;
}
}
class Child extends Admin {
public function __construct() {
$this->valami = 1;
}
public function ez() {
return __METHOD__;
}
public function az() {
$parentMethodReturnValue = parent::ez();
return 'child: "'. __METHOD__.'", parent: "'.$parentMethodReturnValue.'"';
}
}
function my_var_export($var, $text = '...', $output_type = TRUE) {
if (gettype($var) === 'string') {
$var = htmlentities($var);
}
return '<p>' . $text . ($output_type ? ' (' . gettype($var) . ')' : '') . ':</p><pre>' . var_export($var, TRUE) . '</pre>';
}
$admin = new Admin();
$child = new Child();
echo my_var_export($admin, '$child');
echo my_var_export($admin->valami, '$child->valami');
echo my_var_export($child, '$child');
echo my_var_export($child->valami, '$child->valami');
echo my_var_export($child->ez(), '$child->ez()');
echo my_var_export($child->az(), '$child->az()');=================
KIMENET:
$child (object):
Admin::__set_state(array(
'valami' => 0,
))
$child->valami (integer):
0
$child (object):
Child::__set_state(array(
'valami' => 1,
))
$child->valami (integer):
1
$child->ez() (string):
'Child::ez'
$child->az() (string):
'child: "Child::az", parent: "Admin::ez"' -
Lacces
őstag
válasz
Sk8erPeter #10517 üzenetére
hmm... igaz a kosntruktor... hmm, akkor nálam valami más lesz a hiba...
class Child extends Admin{
public function __construct() {
$this->valami = 1;
}
}Így is kellene, működnie, igaz? Hogy nincs ott a $valami változó, hanem csak az Admin osztályban.
Az ősben lévő függvény felülírás, az csak annyi, hogy simán megírom:
class Admin{
public function ez (){
// todo
}
}
class Child extends Admin{
public function ez (){
// todo
}
}Az ős osztályban lévő függvényt, pedig így tudom meghívni? (egy függvény végén a visszatérérsi értéknél pl.:
class Child extends Admin{
public funtion az (){
return parent::ez();
}
} -
Lacces
őstag
Hali!
PHP öröklödés. Ez a szituáció röviden:
class Admin{
public $valami = 0;
}
class Child extends Admin{
public $valami = 1; // ????
}Azt szeretném elérni, hogy a Child osztály ugye a háttérben megörökli az Admin-tól a $valami mezőt(adattag). Ezt hogyan lehet a Child-ban beállítani 1-re?
Tudom lehetne, írni rá a függvényt, hogy setValami()... de most inkább az érdekelne, hogy amikor létrejön a Child objektum, akkor már egyből a $valami = 1 legyen, ne kelljen fvt-t hívni stb.
A Child osztály elején, megadott manuálisan, hogy a $valami = 1, mint ahogy a példában is van.
Ezt így meg lehet valahogy oldani? -
Sk8erPeter
nagyúr
Lehet, hogy korábban már volt szó róla, de már nem tudom követni, szóval milyen szerver?
Milyen szerverbeállításaid vannak?
Ha Apache, akkor az adott VirtualHost beállítása hogyan néz ki?
Újabb verzióval próbáltad már?
Nem tudom, miket kérdezzek még.(#10499) randras : hát jó.
-
Soak
veterán
Jelengleg ilyen routerem van : [link] és nagyon szar a saját hálozata wifi-n. Két gép között max 1mb/s-t tud, nagyon sokaknál olvastam, hogy rossz... Gondoltam erre, de azt hittem, hogy 1mb/s azért elég?! Úgy látszik nem.
szerk : De igazából hülyeséget beszélek, mert a localhostnak nem sok köze van a routeremhez.
-
Soak
veterán
Szerintem félreértetted, vagy lehet, hogy én fogalmaztam rosszul, de a szerveren jó , a saját gépemen (localhost) lassú. Nem jövök rá miért, mert a MySQL parancsokat villámgyorsan végrehajtja, inkább maga az oldal betöltése lassú. Tehát mondjuk kiválasztok egy adatbázist, minden eltünik, a böngésző ablak fehér, majd 6sec mulva egyszerre beugrik minden.
Szerk: Természetesen a szerveren neten kereszetül jó.
Új hozzászólás Aktív témák
Hirdetés
- Milyen autót vegyek?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- LEGO klub
- Autós topik
- Milyen okostelefont vegyek?
- Azonnali fáradt gőzös kérdések órája
- Milyen videókártyát?
- Google Pixel topik
- Kevesebb dolgozó kell az Amazonnak, AI veszi át a rutinfeladatokat
- Milyen billentyűzetet vegyek?
- További aktív témák...
- Fuji X-S20 2.5 év gari + 18-120 f4 + 33 f1.4 + 25 f1.8
- Inspiron 5406 2-in-1 14" FHD IPS érintő i5-1135G7 16GB 512GB NVMe magyar vbill ujjolv aktív toll gar
- Eladó ASUS TUF F15 Gaming laptop i7-11800H RTX 3050 Ti 32GB 1.5TB SSD
- (50db) 250GB SATA Bazár (Samsung, Kingston, Crucial, Sandisk stb.)
- Lenovo LOQ 15APH8 15.6" FHD IPS Ryzen 7 7840HS RTX 4060 16GB 512GB NVMe magyar vbill gar
- LG 45GS95QE - 45" Ívelt OLED / 2K WQHD / 240Hz 0.03ms / NVIDIA G-Sync / FreeSync Premium / HDMI 2.1
- 1-12 részletre.Új noblechairs EPIC műbőr FEKETE - FEKETE. 2 év garancia!
- ÁRGARANCIA!Épített KomPhone i3 10105F 8/16/32GB RAM RX 6500 XT 4GB GAMER PC termékbeszámítással
- AKCIÓ! Dell Alienware M17 R3 Gamer notebook - i7 10750H 16GB DDR4 1TB SSD RTX 2070 8GB WIN10
- Telefon felvásárlás!! iPhone 11/iPhone 11 Pro/iPhone 11 Pro Max
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest