Hirdetés
- gban: Ingyen kellene, de tegnapra
- sziku69: Fűzzük össze a szavakat :)
- mefistofeles: Az újkori csalók...
- gerner1
- DeFranco: Tanuljunk angolul játékosan! - Duolingo
- Lenry: Melléképületblog - 4. rész - Kocsibeálló
- Luck Dragon: Asszociációs játék. :)
- vrob: Az utolsó DOS játékok 1996 - 1997-ben, egy korszak lezárul
- sziku69: Szólánc.
- eBay-es kütyük kis pénzért
Új hozzászólás Aktív témák
-
válasz
Speeedfire #9198 üzenetére
Nincs két $model változód véletlenül?
-
válasz
Speeedfire #9196 üzenetére
Simán kiíratod jó? Hogyan hívod meg?
-
válasz
Speeedfire #9194 üzenetére
Akkor meg nem értem mit szeretnél, fuss neki még1x.
-
válasz
Speeedfire #9192 üzenetére
Nem nagyon értelek. Nem csinálsz semmit. Az új kontrollered konstruktorába akarod átadni az eredményeket?
Ezzel: $model = $this->kereso azt csinálod, hogy al $model változód értékét egynelővé teszed a $this->kereso értékével.
Többiek: ez $_változó pontosan mit takar. Mit jelent a változó elején ez _?
-
Speeedfire
félisten
Adott egy controlleren belül 2 action.
Egyikkel keresek, a másikkal pedig meg akarom jeleníteni a keresési eredményeket.
Amikor keresek a keresési eredményeket átadom a controlleren belül egy private értéknek, majd redirectelek a másik controllerre, ahol meghívom ezt a private értéket. Illetve csak szeretném, mert null értéket ad vissza. Mit csinálok rosszul? Gondolom, ahogy redirectelek a másikra akkor már az objektum nem él.class controller {
private $kereso;
public function actionKereses() {
////kód helye
$this->kereso=$keresesieredmeny;
}
public function actionKereseseredmenye() {
$model = $this->kereso;
//view fájlrok renderelése
}
}Kb ennyi lenne a lényege az egésznek.
-
Speeedfire
félisten
válasz
Sk8erPeter #9190 üzenetére
Maradunk akkor már a query cache-nál inkább. Mondanám, hogy tudatosan akartam így csinálni, de....
Mellesleg a fene se tudja, hogy a yii miket kessel még pluszba, illetve, hogy a végleges query, hogy áll össze neki...ebbe még annyira nem mentem bele, de azt tudom, hogy elég erősen alapoz a kessre. -
Sk8erPeter
nagyúr
válasz
Speeedfire #9189 üzenetére
A linkelt példában csak CURDATE() van, ami ilyen:
2012-04-08Ha aznap meg van mondjuk 1000 ugyanilyen lekérés, ami ezt a dátumot tartalmazná, akkor miért is ne cache-ből kotorja elő. A CURDATE() nem sokszor változik egy nap...
Igen, nálad bőven lehetnek variációk, meg gondolom nem töltik ki olyan durván sokszor azt a formot, szóval én nagyjából itt leszarnám a query cache-t, és épp ezért alkalmaznám a korábban mutatott módszert.
-
Speeedfire
félisten
válasz
Sk8erPeter #9188 üzenetére
Hát, sokkal okosabb nem lettem.
Hogy a pékbe cacheli ezt, hisz a $date mindig változik. Illetve nálam nem kötelező kitölteni ezt a 2 mezőt sem, szóval 100 mezőnél elég sok variáció lehet. -
Sk8erPeter
nagyúr
válasz
Speeedfire #9187 üzenetére
Query cache, nézd meg az első tippet:
[Nettuts+: Top 20+ MySQL Best Practices] -
Speeedfire
félisten
válasz
Sk8erPeter #9186 üzenetére
Query cache szerintem nem nagyon van itt. Mert azért itt az intervallumnál elég széles lehet a skála, szóval...lehet tényleg elegánsabb, amit te írtál.
Az a nullaegésznullanullanulla...meg. -
Sk8erPeter
nagyúr
válasz
Speeedfire #9185 üzenetére
Számomra egyből átlátható a query-s változat, főleg ez az INTERVAL 60 YEAR és hasonló megoldások igazából az ember pofájába vágják, hogy igazából itt mi is történik.
Ilyesmire én inkább ezt preferálom, még ha a query cache szempontjából valaki máglyán is akarna látni emiatt.Mindenesetre az tény, hogy a PHP-vel sztringként összeállítós megoldás ránézésre ocsmányabb.
Meg nekem kevésbé átlátható.
De az tény, hogy a tiéd nyert, mert 0.0001 másodperccel gyorsabban futott le.
-
Speeedfire
félisten
válasz
Sk8erPeter #9182 üzenetére
Olyan sokáig tartott?
De azt nem nézted, hogy a másikkal mennyi ideig tart? Most már kíváncsi lennék rá.
Na, általad írt teszt: 0.0006
Sztringként, ahogy én gondoltam: 0.0005Hát, elhanyagolható...a php-val meg csak 3 dolgot kell csinálni. A fene tudja melyik lehet a jobb.
-
Sk8erPeter
nagyúr
Akkor legyen még:
[VMware Player] -
Sk8erPeter
nagyúr
válasz
Speeedfire #9180 üzenetére
where bday >= '1982-08-17' and bday<='1950-02-14'
Csak azt magyarázd el nekem, hogyan fog valaha is teljesülni az, hogy egy dátum 1982-nél későbbi, de 1950-nél korábbi!Ja hogy a kliens pontos ideje kell (tehát a látogató szerinti idő), azt előbb nem írtad, így érthető.
Én a helyedben ezt a számolgatást inkább az adatbázisra bíznám, ha már úgyis onnan kellenek az adatok. Bár ez megint hitkérdés, mert a query cache szempontjából lehet, hogy jobb, ha inkább PHP-ra bízod a számolást.
Na de abból már eleve ki lehet indulni, hogy a MySQL-ben nagyon egyszerűen lehet egyszerű intervallumokat számolni, lásd pl. ezt:
SELECT DATE_SUB( NOW(), INTERVAL 60 YEAR );
Eredménye épp most:
1952-04-08 19:41:06Most leteszteltem az intervallumokra egy teszttáblával és néhány tesztadattal, úgy, hogy az ezelőtt 30-60 évvel születettekre vagyok kíváncsi, ez lesz az intervallum, a teszttáblával tök jól működött:
Táblastruktúra:
CREATE TABLE IF NOT EXISTS `test_dates` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`my_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci AUTO_INCREMENT=10 ;
INSERT INTO `test_dates` (`id`, `my_date`) VALUES
(1, '2012-04-08 16:52:36'),
(2, '2012-02-06 10:00:00'),
(3, '2012-01-09 11:36:00'),
(4, '2011-01-09 08:00:49'),
(5, '1981-07-07 22:00:00'),
(8, '1972-03-14 23:33:00'),
(9, '1978-04-04 16:00:00');A query az intervallumokkal:
SET @now = NOW( );
SET @interval_start = 30;
SET @interval_end = @interval_start + 30;
SET @date_first = DATE_SUB( @now , INTERVAL @interval_end YEAR );
SET @date_second = DATE_SUB( @now , INTERVAL @interval_start YEAR );
SELECT * FROM `test_dates`
WHERE
`my_date` >= @date_first
AND
`my_date` < @date_second
ORDER BY `my_date` ASC;Nálam "a lekérdezés 0.0221 másodpercig tartott".
-
Lacces
őstag
Csak azért írok ide, mert tom vannak itt linuxosok és webfejlesztők.
Linux alatt, hogyan lehet megnézni, hogy egy oldal Internet Explorer 8/9 kompatibilis? Van valami trükk? Vagy csak simán wine-ra felrakni és csá.
-
Speeedfire
félisten
válasz
Sk8erPeter #9178 üzenetére
Őőőő, igen lehet ajax-al is.
Hát, mert ha valaki esetleg messzebbről nézi az oldalt, akkor is a local time-ja legyen a mérvadó, vagy ha a szerver mondjuk tibetben van.Hát, van egy ilyen field, hogy kor pl 30-60 év között. Adatb.-ben meg így keresek:
where bday >= '1982-08-17' and bday<='1950-02-14' -
Sk8erPeter
nagyúr
válasz
Speeedfire #9177 üzenetére
Hogy mi? Miért feltételezed, hogy a mai napon született, mondjuk 35 éve?
Ez ugye ezt adja vissza: "1977-04-08"...
Ennek mi értelme? Te nem csak évre vonatkozó életkort akarsz számolni? Megint kicsit homályos nekem a kérdésed. -
Sk8erPeter
nagyúr
válasz
Speeedfire #9176 üzenetére
Ha AJAX-szal küldenéd el, akkor is meg tudnád nézni a helyességét.
Ha nagyon muszáj így csinálni, hidden input fieldekkel, akkor igen, én mindenképp kettébontanám, felesleges egybesűríteni.
De szerintem nem muszáj.Nekem eleve az nem világos, hogy ezt miért akarod kliensoldalon elintézni, ha a kliensoldalon lényegében semmi szerepe nincs - tehát miért nem szerveroldalon kéred le az aktuális napot, időt, date()-tel... A checkbox megléte vagy hiánya úgyis egyértelművé teszi a helyzetet, így felesleges kliensoldalon beállítani, plusz ugye az megint csak tök felesleges plusz validálás.
-
Speeedfire
félisten
Ennél van, szebb jobb megoldás?
$date = date("Y");
$newdate = 35;
echo $date-$newdate."-".date("m-d");Megadom, hogy valaki x idős és akkor a mai naphoz képest visszaadom, a "születési" évet.
-
Speeedfire
félisten
válasz
Sk8erPeter #9175 üzenetére
Konkrétan egy most elérhető checkbox van.
Ha ez be van pipálva akkor fel van dolgozva a mező, amit írtam.
1 17:39
Az adatbázisban pedig vannak adatok, pl hetfo mezőben 17:00-19:00, az előző adatból az első megmondja, hogy melyik nap van most, a második pedig az időt. Szóval így akarok keresni az adatbázisban. Az adatokat nem ajax-al küldöm el, szóval előtte megtudom nézni az adat helyességét. -
Sk8erPeter
nagyúr
válasz
Speeedfire #9169 üzenetére
Nem ártana tudni, mit akarsz kezdeni az adatokkal, egyáltalán hogy küldöd el szerveroldalra, és hogyan fogod feldolgozni, hogy fogod eltárolni...
Itt egyébként miért a getDay értékét küldöd el? (Gondolom tudod, hogy az 0-val kezdődik, ami a vasárnapot jelzi, a hétfő az 1-es, stb...)
Egyébként a céltól függ, hogy mit és mennyire érdemes szétbontani.
Mondjuk itt valami dátumot akarsz beállítani, ha jól látom, hogy meddig elérhető a hirdetés. Ezt nem valami Datepickerrel intézed el? Ha nem, akkor csináld azzal, csak hogy megint megkaphassam a fejemhez, hogy hype-olok.(Egyébként csak azért ajánlott, mert iszonyat egyszerű a kezelése.)
-
Lacces
őstag
válasz
Speeedfire #9172 üzenetére
Kösz, nem is rossz ez a Yii, csak bele kell majd jönni alaposabban. Na meg sokat kell keresni neten, ez veszi el a legtöbb időmet. Pl.: Hiába a hivatalos fejlesztők teszik közé, hogyan kell update-elni egy fájlt, hát úgy nem működik
Erre még nem jöttem rá. Meg az ActionIndex-es példák sem működnek nálam tökéletesen, a modelt ott nem tudom átadni (tutorial-os leírásban ott van, de az kevés)
-
Lacces
őstag
@Speeedfire
Yii-nél ugye létrehozom a modelt, adatbázis alapján. Hogyha időközben én a táblát változtatom pl.: új oszlopot viszek fel, akkor a modelt, hogyan tudom én frissíteni ismét? (automatán, vagy kézzel kell?)
-
Lacces
őstag
Az adatbázis dump fájl az mi lenne? (az adatbázis sql exportált fájl?)
-
Speeedfire
félisten
válasz
Sk8erPeter #9150 üzenetére
Na lol, épp most be pont egy ilyen dolog...
Egy nap-ot és egy időt akarok elposztolni.function padLeft(nr, n, str){
return Array(n-String(nr).length+1).join(str||"0")+nr;
}
var d = new Date();
var day = padLeft(d.getDate(),2);
var year = d.getFullYear();
var month = padLeft(d.getMonth(),2);
var hour = padLeft(d.getHours(),2);
var min = padLeft(d.getMinutes(),2);
var days = d.getDay();
//var date = year+"-"+month+"-"+day+" "+hour+":"+min;
var date = days+" "+hour+":"+min;
$("#Hirdetes_elerheto").val(date);A vége ilyesmi ennek: 6 18:45
Akkor itt is érdemes lenne inkább 2 külön hidden text input? -
Jim-Y
veterán
Átírtam a kódot, most már jó, erre írtam át:
<?php
include("mysql_connect.php");
$user = mysql_real_escape_string($_POST['user']);
$pass = mysql_real_escape_string($_POST['pass']);
$sql = "SELECT * FROM mydatabase.login WHERE mysql_username='".$user."' AND mysql_password='".md5($pass)."' LIMIT 1";
$res = mysql_query($sql);
$rows = mysql_num_rows($res);
if($rows == 1) {
echo "success";
} else {
echo "failed";
}
?> -
Jim-Y
veterán
válasz
Sk8erPeter #9165 üzenetére
$pass_query = mysql_query("SELECT mysql_password FROM mydatabase.authentication WHERE mysql_username='$user'");
szerintem inkább valami jogosultság probléma lehet, kár, hogy ezzel az egésszel MySql ma találkozom először.. gondolom valahogy az új usereket be kéne vinni a rendszerbe, majd jogokat adni, vagy hát nem tudom.
Jelenleg van egy php fileom ahol be van égetve egy user/jelszo amivel csatlakozom az adatbázishoz, meg van egy táblám ahol username/jelszo párosok vannak, ha a user beírja a nevét/jelszavát, akkor megnézem a táblában, ha stimmel akkor átengedem.. És most ez úgy működik, hogy csakis akkor enged át valakit ha a jelszava az, hogy "password"
-
Jim-Y
veterán
Hát ez hihetetlen... ha az adatbázisomban egy usernek nem "password" a megadott jelszava akkor nem autentikál..de, hogy miért arra még nem jöttem rá... :/
-
Sk8erPeter
nagyúr
Nem hiszem, hogy az volt a gond, hogy kihagytad a $response = array() sort, hiszen a PHP ennél egyszerűbb (persze ez nem mindig előny), ha akárhol azt mondod, hogy $response['loszar'], akkor létrejön a $response tömb, a 'loszar' kulccsal.
Szerintem az a gond, hogy az echo-zásnál a json_encode()-ot következetesen kihagyod.Második kérdésre:
Igen, ott. -
Jim-Y
veterán
válasz
Sk8erPeter #9161 üzenetére
$response = array();
ezt a sort kihagytam:/ lehet az volt a gond, a console logot, az inspect element (F12) ablakkal tudom ellenőrizni?
ok, megvan a log
thx
-
Sk8erPeter
nagyúr
válasz
Sk8erPeter #9158 üzenetére
Amúgy attól függ, mit küldesz PHP felől.
Példa:
test.php<?php
$response = array();
$response['user_exists'] = TRUE;
$response['pass_ok'] = TRUE;
$response['auth_ok'] = TRUE;
$response['auth_ok_2'] = 'true';
echo json_encode($response);erre a response pedig (a data objektumban) ez lesz a fentebbi módszerrel:
{"user_exists":true,"pass_ok":true,"auth_ok":true,"auth_ok_2":"true"}
Ebből jól látható, hogy a
(data.auth_ok == true)
igaz lesz, a
(data.auth_ok == 'true') hamis,
aztán a _2-nél pedig fordítva:
(data.auth_ok_2 == true)
hamis
(data.auth_ok_2 == 'true')
igaz.Jim-Y: azt javaslom egyébként, hogy használd a console.log()-ot, ez mondjuk IE-nél nem működik, ha nincs megnyitva a fejlesztőkonzol (értelemszerűen régebbiekben, ahol ez még nincs is, még annyira sem működik), de Chrome-nál nagyon szépen kiíratja az értékeket (meg Firebugban is jó), egyszerű példa:
$.post('ajax/test.html', function(data) {
console.log('data after POSTing:');
console.log(data);
$('.result').html(data);
}); -
Jim-Y
veterán
válasz
Sk8erPeter #9158 üzenetére
Ezeket én is kipróbáltam, volt, hogy a php-ban "true", tehát string értékeket tároltam, és olyan is volt, hogy boolean-ként adtam tovább, de úgy sem ment, most szuper minden, így oldottam meg végül:
javascript:
$(document).ready(function(){
$("#form_container").hide();
$("#content :button").click(function(){
$('#result_container').hide();
$.post('http://localhost/wimyn/server.php/', { phpaction: form.action.value}, function(data){
$('#result_container').html(data).fadeIn(1000);
});
});
// events
$("#auth_container").bind("keyup",function(){
if ($("#username").val() !== "" && $("#password").val() !== "") {
$("#auth_container :button").show();
}
});
// input "hide"
$("#username,#password").bind("click",function(){
$(this).val("");
});
// handle input
$("#password").bind("keydown",function(e){
var code = (e.keyCode || e.which);
if(code == 13) {
$("#login").trigger("click");
}
});
// login
$("#login").click(function(){
$.post('http://localhost/wimyn/login.php/', { user: auth.username.value, pass: auth.password.value }, function(data){
if(data == "success"){
$("#form_container").fadeIn(1000);
} else if(data == "incorrect_pass"){
$("#password").val("Invalid password!");
} else if(data == "no_such_user"){
$("#username").val("Invalid username!");
$("#password").val("");
} else {
alert("Hiba az autentikáció során.");
}
});
});
});php:
<?php
include("mysql_connect.php");
$user = mysql_real_escape_string($_POST['user']);
$pass = mysql_real_escape_string($_POST['pass']);
$cc = "";
$pass_query = mysql_query("SELECT password FROM test.login WHERE username='$user'");
$pass_query_rows = mysql_num_rows($pass_query);
if($pass_query_rows >= 1) {
$response['user_exist']="true";
if(md5($pass)==$pass_query){
$cc = "success";
} else {
$cc = "incorrect_pass";
}
} else {
$cc = "no_such_user";
}
//echo mysql_result($pass_query,0);
echo $cc; -
Sk8erPeter
nagyúr
Nincs mit, de végül hogy oldottad meg?
Megoldhatjuk szépen is.A data.auth_ok ellenőrzésére vonatkozó ág most hirtelen nem esik le, hogy miért nem volt igaz, pedig az alapján jónak tűnt. Mondjuk akkor értettem volna, ha így néz ki:
data = {"user_exist":"true","pass_ok":"true","auth_ok":true}
Tehát nem stringként van benne, hanem simán true értékkel, mert akkor a data.auth_ok == "true" hamisra értékelődik ki, a data.auth_ok == true igaz. -
Jim-Y
veterán
válasz
Sk8erPeter #9155 üzenetére
Már majdnem jó, de még mindig nem az igazi, itt:
$("#login").click(function(){
$.post('http://localhost/wimyn/login.php/', { user: auth.username.value, pass: auth.password.value }, function(data){
if(data.auth_ok == "true"){
alert("lefut");
}
alert(data);
});
});nem megy bele az alert("lefut") részbe, pedig az alert(data) outputja ez:
{"user_exist":"true","pass_ok":"true","auth_ok":"true"}
az a baj, ha a data.auth_ok-ot kiiratom, akkor undefined valamiért, de ha simán a data-t, akkor "true"..
-
Sk8erPeter
nagyúr
Pont ezt magyaráztam, hogy ha ez a vége a PHP-fájlodban:
echo json_encode($response);
akkor úgy tudod elérni a változókat jQuery-ben, ahogy az előbb mutattam... Ennél egyszerűbb példát erre nehéz lett volna mutatni.
Először mutattam a PHP-kódot, majd utána a jQuery-ben való b@szkurálást. -
Jim-Y
veterán
válasz
Sk8erPeter #9153 üzenetére
jah igen, oda most nem kell ez a sor, csak ha az SQL eredményét akarnám visszadni, de én csak flageket fogok, akkor az nem kell
Na akkor kipróbálom
szerk: na most akkor nem értem, kódoljam json-be, vagy ha így egy tömböt adok vissza, akkor a javascript kódban el tudom érni az adattagokat?
világos: akkor már csak 1 kérdés, ha akkor így csinálom:
$response['user_exists'] = TRUE;
$response['pass_ok'] = TRUE;
$response['auth_ok'] = TRUE;
echo json_encode($response);akkor a js kódban szimplán mehet ez? response.pass_ok==.. ?ehh, ez a sok szerkesztés, a legelső válaszod szerkesztéséről lemaradtam
-
Sk8erPeter
nagyúr
$response.user_exist=true;
$response.pass_ok=true;
$response.auth_ok=true;
Ilyen nincs PHP-ben, ilyen van:
$response['user_exists'] = TRUE;
$response['pass_ok'] = TRUE;
$response['auth_ok'] = TRUE;$ = mysql_result($, 0); // ide nem tudom mi kéne:/
Én sem, mert nem írtad, ide minek kéne jönnie.Szerk.: most látom, hogy közben utólag szerkesztetted a hsz.-edet.
"A jquery-ben utána ha pl response.user_exist=true és response.pass_ok=false jött vissza"
Akkor ezek szerint mégis jQuery-vel szeretnéd összehozni...Én meg az előbb ennek megfelelően írtam meg a példát. Azon mi nem volt érthető?
A fentebbinek a vége is akkor
json_encode($response);
épp ahogy előbb is írtam....(#9152) Speeedfire : akkor jó.
-
Speeedfire
félisten
válasz
Sk8erPeter #9150 üzenetére
Jó, hát csak egy ötlet volt.
Nem szoktam ilyet csinálni.
-
Jim-Y
veterán
válasz
Sk8erPeter #9148 üzenetére
Nem, mivel a json-ön már túl vagyok, így a következő lépcsőre ugrottam, vagyis adatbázis
Jelenleg itt tartok, a kommunikáció egy egyszerű példával már összejött, most épp azon ügyködöm, hogy egy alap login-t hozzak össze. Ezért a kérdésem, ugyanis a response-t szeretném visszaadni, de úgy, hogy a másik oldalon le tudjam ellenőrizni, hogy hol bukott el az autentikáció. Tehát, nem tudom, hogy ezt így meg lehet-e csinálni, de a vgén a response-t adom vissza, de előtte ilyeneket állítanék be:
$response.user_exist = true;
$response.auth=true;
.
.
.
stb.Itt a kód:
<?php
include("mysql_connect.php");
$user = mysql_real_escape_string($_POST['user']);
$pass = mysql_real_escape_string($_POST['pass']);
if($user==NULL)
echo "Invalid username!";
else if($pass==NULL){
echo "Password required!";
} else {
$pass_query = mysql_query("SELECT password FROM test.login WHERE username='$user'");
$pass_query_rows = mysql_num_rows($user_query);
if($user_query_rows >= 1) {
$response.user_exist=true;
if($pass_query == $pass){
$response.pass_ok=true;
$response.auth_ok=true;
} else {
$response.pass_ok=false;
$response.auth_ok=false;
}
} else {
$response.user_exist=false;
$response.auth_ok=false;
}
$ = mysql_result($, 0); // ide nem tudom mi kéne:/
echo $response;
}
?>A jquery-ben utána ha pl response.user_exist=true és response.pass_ok=false jött vissza, akkor úgy manipulálom az input fieldet, hogy pl a password mezőbe pirossal beírom, hogy az adott usernévhez nem megfelelő jelszót írtak...
Speedfire: neked is köszi
-
Sk8erPeter
nagyúr
válasz
Speeedfire #9146 üzenetére
"Esetleg ha valami speckó karaktert raksz a sztingek közé akkor explode-al szét lehet szedni a sztringet."
Ezt inkább ne. Kerülendő, rossz programozási szokás, nem is "biztonságos" - ha ehhez valaki hozzászokik, elfelejtheti, hogy az a bizonyos belepakolt érték szintén tartalmazhat olyan karaktersorozatot, ami épp az elválasztó karaktersorozat, kizárni nem lehet.
Főleg, ha van alternatíva (pl. amit írtam fentebb).
-
Sk8erPeter
nagyúr
Gondolom JSON-ről beszélsz.
Ez esetben:
test.php:
<?php
$response['x'] = 'valami';
$response['y'] = 'valamimas';
echo json_encode($response);(Ismét szándékosan maradt le a záró PHP-tag (?>).)
Így JSON-ben ennek a feldolgozása pl. jQuery segítségével ennyi:
$.post("test.php", function(response) {
alert("response.x: " + response.x);
alert("response.y: " + response.y);
}); -
Lacces
őstag
válasz
Speeedfire #9143 üzenetére
kösz, megnézem, hátha az könnyebb.
-
Speeedfire
félisten
Hát, de így ez nem egy tömb?
Legalábbis ha a $response egy tömb akkor már lehet neki x és y része.
Bár lehet, hogy én értem ezt félre.A $response értéke az lenne, hogy valamivalamimasmegvalami?
Esetleg ha valami speckó karaktert raksz a sztingek közé akkor explode-al szét lehet szedni a sztringet.
pl
$response = "valami || valamimás || mégvalami";
//másik oldalon meg
$response = explode(" || ", $response);
//ugyan ez pl js alatt
var response = response.split(" || ");
//majd
$response[0], $response[1], $response[2] stb -
Jim-Y
veterán
hali
Egy kis segítség kéne. Vissza szeretnék adni egy értéket, de szeretném ha annak 2 adattagja lenne.
Tehát a végén ezt akarom írni:
echo $response
de szeretném, ha a másik oldalon így tudnám kezelni
response.x = valami;
response.y = valamimas;
response.z= ...;3 elég
Előre is köszi
-
Sk8erPeter
nagyúr
válasz
Entrecampos #9141 üzenetére
"Majd egyszer mérjetek egy lefutási időt..."
Sokkal hitelesebb lett volna a mondókád, ha valami konkrétumot is tartalmaz, nem csak levegőbe beszélést: például a saját tapasztalataidat futási időkről, esetleg konkrét mérési eredményeidet."Persze, itt nem 3 elem bejárására gondoltam... Illetve 3 aktív felhasználónál. "
Ja, mert mi eddigi életünkben 3 elemnél többet tartalmazó tömböt nem jártunk be, és elképzelésünk sincsen arról, hogy milyen is lehet, ha egy oldalon 3-nál több felhasználó is tevékenykedik egyszerre...
Nem azért, de ekkora arccal, a többiek lebecsülésével (a másik tudásának vagy tapasztalatainak ismerete nélkül) betolni egy indokolatlanul nagyképű dumát nem túl szimpatikus kezdés a fórumon - ahogy elnézem, ebben a topicban eddig ez a kettő volt az összes termésed.
Hidd el, hogy nagyon jó szakmai vitákat lehet folytatni itt a fórumon arcoskodás nélkül is - ha jó szakmai érvet hozol fel, elfogadjuk, de lehet, hogy vitatjuk - amivel még nincs is semmi baj, mert egy ilyen vita termékeny is lehet, mindegyik résztvevő fél tanulhat belőle a másiktól. De amiket eddig villantottál, annak alapot nem adtál, csak értelmetlenül lefitymáltad más kódját.Visszatérve a kérdésre:
nagyon nem árt, ha az ember a kód rugalmasságát, átláthatóságát, módosíthatóságát, bizonyos részek egységes kezelését is az első szempontok közé helyezi.
Például ha éppen az a cél, hogy mondjuk valamilyen formmezőket azonos módon tudj validálni, feldolgozni, azonos tömbbe tartozzanak, akkor ez a tömbös megoldás nagyon előnyös lehet, ha valaki jól írja meg, a hozzá tartozó kód gyorsan átlátható, könnyen kezelhető lehet.
Vegyük azt, hogy mondjuk épp egy select lista klónozgatásáról van szó, előre nem lehet tudni, mennyi keletkezik, de azért ugyanezen a formon mondjuk van még 10 text field, 5 textarea, néhány radio box, checkbox, stb.
Te meg azt mondod, hogy fúj de csúnya ez a tömbös megoldás, te úgy fogod megoldani, hogy a select listáknál mondjuk a name attribútum mögé raksz egy alsóvonás+inkrementált számot (tehát mondjuk ilyen lesz: name="list_1", name="list_2", stb.) Gondolj bele, milyen csúnya lesz ennek a szerveroldali kezelése - és mennyivel szebben kezelhető lenne egy tömbös megoldás, ahol egybetartozó elemeken rohangászhatnál végig.
Vagy:
a $_POST-on belül mondjuk van 100 formmező, ebből kb. 30 mondjuk a fentihez hasonlóan összetartozó, de szerinted legyenek csak széjjeldobálva, majd valami érdekes módszerrel megpróbáljuk bejárni - pl. a $_POST tömbön végigmegyünk, majd minden egyes elemre valami ellenőrzést megpróbálunk pl. a name attribútum első pár karaktere alapján ellenőrizni (vagy nem tudom, hogy gondoltad). Nem lenne szebb úgy, ha a 30 teljesen egybetartozó, hasonló módon kezelendő mező egybetartozna, és egy tömbön belüli tömb lenne? Így azonos name-en belül több field szerepelne.
Kétlem, hogy ez a fajta a tömbbe rendezés releváns teljesítményromlást okozna.Remélem innentől már némi konkrétumokat is tartalmazó hsz.-eket fogsz tudni kreálni, úgy érdemben is tudnánk vitatkozni.
-
Speeedfire
félisten
válasz
Entrecampos #9141 üzenetére
Bocs, de nem publikus.
A lényege, hogy sok checkbox van, select és intervallum mező, amiket valahogy fel kell dolgozni a php-val. Illetve nagyon sok nem is így van elmentve az adatbázisban.
Gondolok itt olyanra, hogy ha ki van választva egy checkbox akkor az adatbázisban több lehetőség is lehet.
A selectnél egyértelmű, hogy csak azok a lehetőségek vannak rá, amik az adatbázisban is fellelhetők.
Így csak ezt találtam járható útnak.
Nem tudom, hogy most mennyivel lenne gyorsabb az is_array helyett ha azt mondnám neki, hogy if(kb 50 elem felsorolása).
Localhost alatt gyors, nem tudom mekkora terhelése lesz a rendszernek így...de...
Lacces: Szerintem nem, ha már nagyon váltani akarsz akkor inkább már a synfony szerintem. -
Lacces
őstag
Amúgy nem lehet, hogy a Zend frameworkot könnyebb megtanulni mint ezt a Yii-t?
-
Entrecampos
csendes tag
válasz
Sk8erPeter #9139 üzenetére
Persze, itt nem 3 elem bejárására gondoltam... Illetve 3 aktív felhasználónál. Nekem muszály volt az optimális megoldások választása, tracker végett (php maga a tracker), ami egy időben több 10 ezer kapcsolatot kezel és egy időben 500-3000 egyidejű lapletöltés van.
Teljesen mindegy, nem szóltam, elnézést. Majd egyszer mérjetek egy lefutási időt...
@Speeedfire:
Persze, hogy nem. Bemásolod azt a formot, ha megkérlek (csak ha publikus).
-
Speeedfire
félisten
válasz
Entrecampos #9138 üzenetére
Összesen kb 100 keresési feltétel van, erre most mindre írjam meg az if-elseif-else ágat? Vagy a switch-case szerkezetet? Hát...köszi, de nem.
-
Sk8erPeter
nagyúr
válasz
Entrecampos #9138 üzenetére
"nagyon túl bonyolítsátok a dolgokat"
Nekem meg nem bánTSa és nem is hasogaSSa a fülemet...
Jó kezdés volt.A tömbös elrendezés valóban véletlenül maradt benne, és azért, mert ezt ollóztam egy korábban általam készített, formelem-klónozós scripthez tartozó markupból:
http://jsfiddle.net/Sk8erPeter/RqYYj/
Ha klónozod az elemeket, jobban jársz, ha nem írod felül az előző elemet, hanem lehetővé teszed, hogy a klónozott elemek is láthatók legyenek szerveroldalon...Valószínűleg nem azért klónozod, mert a korábbi formelemek értékét el szeretnéd veszíteni.
Ha pedig ezáltal egy tömb keletkezik szerveroldalon, azt egy tömbbel be kell járni. Ez aztán rendkívül bonyolult.
Egyébként ez a szögletes zárójeles megoldás annyit módosít a korábban írt példámon, hogy szerveroldalon nem ezt látod a $_POST-ban:
array (
'form_elem_select' => '- semmi -',
)
hanem ezt:
array (
'form_elem_select' =>
array (
0 => '- semmi -',
),
)Az, hogy ez plusz terheléseket róna a szerverre, az egyszerűen baromság. Ha a ciklus egyetlen lépés után megáll, mert mindössze egyetlen elem található benne, akkor ez nem jelent semmiféle plusz terhelést (az, hogy mondjuk egy, a ciklus léptetéséhez felhasznált változó indexét megnöveli eggyel, talán ne vegyük a releváns "terhelés" és időtöbblet kategóriájába). Cserébe felkészülsz arra az esetre is, ha valóban több elem létezik a tömbben.
A szögletes zárójelekkel tudod jelezni jelen esetben a PHP felé, hogy itt egy tömb következik, kezelje is annak megfelelően.A tömbös megoldással nincs semmi baj. Nem muszáj alkalmazni, de nyugodtan lehet. Anélkül és vele is jól működő megoldásokat lehet összehozni.
Ha az én mondókám nem is volt számodra meggyőző, akkor példának hadd hozzam fel, hogy a Drupal előszeretettel alkalmazza a Form API-jában a mezők tömbalapú generálását. Biztos azért csinálták így, mert nem értenek hozzá...Szerk.: Egyébként kilencmillió soros if-elseif-elseif-elseif-elseif...-else megoldások helyett létezik switch-case is. Meg céltól függ, milyen ellenőrzésre van szükséged, egyáltalán mit szeretnél csinálni a kapott adatokkal.
-
Entrecampos
csendes tag
@Sk8erPeter, @Speeedfire:
Ne haragudjatok, hogy csak így beleszólok, de nagyon túl bonyolítsátok a dolgokat. Ha már a formot, post vagy get metódusban külditek, és pusztán csak az inputok értékét szeretnétek feldolgozni, mért teszitek külön tömbbe mikor már alapból tömb? Akkor célszerű, ha checkboxokat dolgoztok fel.
$_POST-oljuk:
<select class="asdasd" name="valaszt">
<option>- semmi -</option>
<option value="blabla_1">Blabla 1</option>
<option value="blabla_2">Blabla 2</option>
<option value="blabla_3">Blabla 3</option>
<option value="blabla_4">Blabla 4</option>
</select>Szerveroldal:
if($_POST["valaszt"] == "blabla_1"){
echo "blabla_1";
}elseif($_POST["valaszt"] == "blabla_2"){echo "blabla_2";
}
// etc... etc...
else{echo "valami";
}Szóval ennyi, nem kell ezt túl bonyolítani plusz ciklusokkal játszani/fölösleges terheléseket róni a szerverre (persze nagy adatmennyiségnél).
-
Lacces
őstag
válasz
Sk8erPeter #9135 üzenetére
Nem gyűlölöm, csak elszoktam tőle, erősen már
. A mai napig lusta vagyok az apache2 szerver újraindítását megtanulni terminálból...
netről lesem.
Nautilussal meg az a bajom, hogy nem tud mélységi keresést végrehajtani, csak az adott mappákban, almappákban nem... legalább is nálam.
-
Speeedfire
félisten
válasz
Sk8erPeter #9135 üzenetére
A mező kitöltése nem kötelező, opcionális.
Viszont azt valóban megtudom nézni, hogy csak akkor keressen ha mind a kettő ki van töltve.
Esetleg még pluszban kliensoldani figyelmeztetés, ha csak az egyik van kitöltve.
A többi meg nem érdekel.
Na jó igen, de ez már csak kisebb prioritású dolog.if(!empty($value1) && !empty($value2)) {
$this->_criteria->addCondition($hirdetes.'>= :val1 and '.$hirdetes.' <= :val2');
$this->_criteria->params[':val1'] = $value1;
$this->_criteria->params[':val2'] = $value2;
} -
Sk8erPeter
nagyúr
válasz
Speeedfire #9134 üzenetére
Ha nem töltötte ki a másik mezőt, akkor akár megoldhatnád a kérdést default értékekkel, az első mező értékének függvényében.
Vagy egyszerűen kötelezővé teszed a második mező kitöltését is, meg is vizsgálod, megvan-e mindkettő, és csak ennek megléte esetén dolgozod fel a formot, és kész.===
(#9128) Lacces : közben eszembe jutott, hogy gyűlölöd a terminált.
De létezik az Ubuntu default fájlkezelőjében is (Nautilus) kereső, ha nyomatsz egy Ctrl+F-et..... Meg nem is egy kétpaneles fájlkezelő van GNOME-hoz és KDE-hez egyaránt - de KDE-st is használatsz GNOME-on is, pl. akár Krusader (még talán ez viszonylag hasonlít a Windows-os Total Commanderhez, de sajnos eddigi tapasztalataim alapján egyik sem közelíti meg azt).
-
Speeedfire
félisten
válasz
Sk8erPeter #9133 üzenetére
Több biztos nem lehet, viszont valóban lehet olyan, hogy nem tölti ki mind a kettőt.
Ugye ez ilyen intervallumos dolog lenne, mint pl amikor venni akarsz valamit, hogy:
1000 - 5000 ft közötti dolgot érdekelnének.
Erre még írok valamit szerintem. -
Sk8erPeter
nagyúr
válasz
Speeedfire #9132 üzenetére
ja, a $tomb az itt pont nem tömb lesz, hanem a tömbindex/kulcs.
$value1 = $value[0]; $value2 = $value[1];
Ez így ellenőrzés nélkül nem biztos, hogy túl jó ötlet, vagy garantált, hogy a $_POST['post'] aktuális elemén belül mindig lesz 0. és 1. index? (és nem lesz kevesebb vagy éppen több kulcs?) -
Speeedfire
félisten
válasz
Speeedfire #9131 üzenetére
Na, jól van....nem jót vizsgáltam.
A $value értékét kellett volna...
if(is_array($value)) { -
Speeedfire
félisten
Az miért lehet, hogy elpostolok valamit, ahol tömb ott több dolgot szeretnék vele kezdeni, de nem megy bele a feltételbe, pedig mutatja is a post, hogy az egy tömb.
foreach ($_POST['post'] as $tomb=>$value) {
if(is_array($tomb)) {
$value1 = $value[0]; $value2 = $value[1];
$this->_criteria->addCondition($tomb.'>= :val1 and '.$tomb.' <= :val2');
$this->_criteria->params[':val1'] = $value1;
$this->_criteria->params[':val2'] = $value2;
} else {
if(!empty($value)) $this->_criteria->addColumnCondition(array($tomb =>$value));
}
}Tehát fent, nem lép bele az is_array() résznél. Ez valami ficsőr? Vagy csak én vagyok béna?
-
Sk8erPeter
nagyúr
-
Speeedfire
félisten
válasz
Sk8erPeter #9127 üzenetére
Hmm...valóban most nézem, ez a yii gyerek. 2 input mezőt készít. Egy hidden-t 0 értékkel és egy láthatót 1-es értékkel.
Ez a continue jó ötlet.
-
Lacces
őstag
válasz
Sk8erPeter #9127 üzenetére
ubuntu 12.04 bétát használok, nekem nem találta meg, még a modulból is nekem kellett kihalászni... - ez nem az én napom
Lehet neked van igazad, nem tom, én még sosem láttam láncolt listára next() metódust-t írni.
De sosem izgatott túlságosan a téma, mindenhol a láncokon lévő végig sétálást láttam én is azt tanultam be -
Sk8erPeter
nagyúr
válasz
Speeedfire #9115 üzenetére
A selectnél még oké, a checkbox kevésbé világos, mert az szerintem alapból nem szokott átmenni szerveroldalra, ha nincs semmi kipipálva.
Pl. select:
<select class="asdasd" name="form_elem_select[]">
<option>- semmi -</option>
<option value="blabla_1">Blabla 1</option>
<option value="blabla_2">Blabla 2</option>
<option value="blabla_3">Blabla 3</option>
<option value="blabla_4">Blabla 4</option>
</select>Ha így néz ki, akkor itt az első, a - semmi - lesz a kiválasztott option (mivel sehol nincs explicite a selected="selected"), a szerveroldalon pedig ezt kapod a $_POST-ban:
array (
'form_elem_select' => '- semmi -',
)Épp ezért inkább érdemes egy default üres értéket adni neki:
<select class="asdasd" name="form_elem_select[]">
<option value="">- semmi -</option>
<option value="blabla_1">Blabla 1</option>
<option value="blabla_2">Blabla 2</option>
<option value="blabla_3">Blabla 3</option>
<option value="blabla_4">Blabla 4</option>
</select>Így ez lesz a $_POST-ban:
array (
'form_elem_select' => '',
)Erre így könnyű ráereszteni egy empty() ellenőrzést, és akkor pampoghatsz, hogy válasszon ki valamit a júzer, ha kell.
A checkbox általában nem jelenik meg szerveroldalon, ha nem választasz ki semmit, úgyhogy azt nem vágom...
Az empty(), amire kérdeztél, teljesen jó, igen.
A foreach-et és más ciklusokat is tovább lehet léptetni "kierőszakoltan" continue-val: [link].
===
(#9117) Lacces : ez függ attól, van-e jóféle iterátor a bejárandó elemhez.
Meg a láncolt listánál szokták így is, hogy egyszerű legyen, mint egy marék lepkefing: while( loszar->next() ){...} .(#9122) Lacces :
"Másik épp nézem át, de a javascript / jquery az hol tárolódik?"
Őőőőő, nincs kereső a gépeden?
Letöltöttem a Yii-t, és nagyjából 10 másodperc alatt megvolt keresővel... -
Lacces
őstag
válasz
Speeedfire #9123 üzenetére
Hm, ez tényleg fura,
Mert például ha a Home-ra kattintok (menüpont) akkor a Home jön be, de nem a Product jön be, hanem a default-os a site/index
-
Lacces
őstag
válasz
Speeedfire #9121 üzenetére
Lehet, hogy ez a Shop modul akkor máshogy működik, mint a többi
Nem működik nálam:
'defaultController' => 'shop/products',
'defaultController' => 'shop/products/',Csak az indexes változat:
'defaultController' => 'shop/products/index'Másik épp nézem át, de a javascript / jquery az hol tárolódik? (modul / framework)
-
Speeedfire
félisten
A lényege, hogy van a test controller és abban egy test action. Ott volt megadva neki, hogy a test action az alapértelmezett.
Ja, a moduloknak kicsit másabb az útvonala.
De itt akár egyből meg is adhatod neki az action-t, illetve ha az index kell neked akkor nem fontos oda írni, mert alapból az index a default action.'defaultController' => 'shop/products/index', //helyett
'defaultController' => 'shop/products', -
Lacces
őstag
válasz
Speeedfire #9114 üzenetére
Az első variációt és a linket nem értem
Nálam így nézz ki, config fájlban:
// Default Controller config:
'defaultController' => 'products',moduls/shop/controllers/ProductsController
class ProductsController extends Controller
{
...
public $defaultAction = 'products';
public function actionIndex()
{
....http://localhost/YiiShop/index.php -nál jön ez a hiba:
Unable to resolve the request "products".
Megoldva:
config fájlban így kell:
// Default Controller config:
'defaultController' => 'shop/products/index', -
Lacces
őstag
válasz
Speeedfire #9118 üzenetére
Köszi! Bár azért már a linuxot is inkább kattintásokkal szeretem használni
nagyon elvok szokva a parancsoktól
-
Lacces
őstag
válasz
Speeedfire #9115 üzenetére
A problémát nem tudom. Esetleg nem típus egyezőséget kell vizsgálni?
=== használni == helyet?Illetve olyan kérdésem lenne még hogy ha ezeken egy foreach-el megyek végig akkor lehet e valahogy továbbléptetni a foreach-et, vagy csak csináljak bele egy if-else ágat?
Nos szerintem ez pont így jó, ahogy leírtad
Erre pont a láncolt lista bejárás jut eszembe, pontosabban, amikor a láncolt listából bizonyos elemeket kell törölni. Az általános algoritmus erre, meg a stackoverflow-on írtam fel, és jobbat nem javasoltakwhile ( amíg van elem) { // foreach is jó
if( megvan amit kerestem)
delete // újraláncolás, az előtte és utána lévőt kötöm össze
else
tovább lépek
}Kábé így nézz ki elméletben, és kell az if-else ág bele, csak sima if-el nem működik jól
Sima while ciklussal sem lépett tovább... (igaz valami speciálisat kért a tanár) és felírtam fórumban és ott mondták, hogy kell az else is bele, hogy tovább lépjen a while ciklus -
Lacces
őstag
válasz
Sk8erPeter #9113 üzenetére
Igen, a kérdésem után már én is leltem ilyesmikre, létre is jött, hajnali 1 körül
Az volt a gáz, hogy amit írt hivatalosba az shop/install (webbrowserbe) az nem volt jó... találtam mást, és akkor működött!
Meg a hivataloson is néztem a fórum bejegyzéseket néhányam a protected/modul-t írták...Alapból úgy indultam ki, hogy a shop/install az jó, de nem
más volt jó. Egy másik url volt jó, valahol a google találat 10. oldalán láttam rá
Meg a példád alapján úgy tűnik ismét meg kell tanulnom az alap linux parancsokat, segítőkész lehet néha
-
Speeedfire
félisten
Adott egy form, van rajta checkbox és select.
Miért van az, hogy ha nincsenek kitöltve akkor is elpostolja ezeket a form?
Checkbox-nál 0 értékkel, selectnél meg üres mező.Ezeket hogy lehetne kivédeni? Egyszerűen csak a feldolgozásnál megnézem, hogy empty() vagy yxz == 0?
Illetve olyan kérdésem lenne még hogy ha ezeken egy foreach-el megyek végig akkor lehet e valahogy továbbléptetni a foreach-et, vagy csak csináljak bele egy if-else ágat? -
Speeedfire
félisten
Nézd csak. [link]
class TestController extends CController
{
public $defaultAction = 'test';
public function actionTest()
{
}
}De, ahogy írja akár meglehet adni az urlmanager-ben is.
'components' => array(
'urlManager' => array(
'rules' => array(
'test' => 'test/test',
),
),
),Itt pl ha mármelyiket választod akkor a test controller test action-je lesz a default.
A modulok, úgy működnek, hogy létre kell hozni a protected alá egy modules mappát. Ide kell berakni a modulokat. Pl modules/user itt a user mappa alatt van a user extension. Lényegében akármilyen név alatt létre lehet hozni, mert a rendszer megfogja találni, de célszerű azért oda rakni, ahova a doksi írja.
De Sk8erPeter nagyon jól le is írta ezt neked. Ha bármi van kérdezz csak.
Sk8erPeter: Nem ég a beled? -
Sk8erPeter
nagyúr
"hol van a modul könyvtár?"
Gondolom létre kell hozni.... és igen, gyors Guglizás után - nem használtam még ezt a frameworköt - pl. itt mutatja a "Yii User Management Module" telepítésének módját: [link].
van ez a rész:
"Extract the Yii User Management Module under the modules/ directory of your new Web Application. Replace the _0.4 with the latest Version available.$ cd testdrive/protected
$ mkdir modules
$ cd modules
$ wget http://www.yiiframework.com/extension/yii-user-management/files/User_Management_Module_0.4.tar.bz2
$ tar xvf User_Management_Module_0.4.tar.bz2
""mkdir modules", magyarul ő is létrehozza a modules könyvtárat, aztán odanavigál, majd kibontja a modul tartalmát, amin belül először a modul nevét tartalmazó könyvtár van, ami jelen esetben - most letöltöttem - a "user" nevű.
"és hogy shop mappát rakjam oda, vagy a shop mappa tartalmát?"
Értelemszerűen ennél a modulnál is shop könyvtárat kellene beleraknod a modules könyvtárba. Ez ebben a formában elég logikus, gondolj bele, mi lenne, ha mondjuk 100 modult telepítenél, akkor 100 modul tartalma lenne ömlesztve? Az úgy irtó gány lenne.
Tehát ha most telepítenéd a fenti modult, meg azt a webshoposat, akkor elméletileg így kéne kinéznie a könyvtárszerkezetednek:yiikönyvtárad
|- ....
|- modules
|- shop
|- user
|- ...Épp azáltal lesz moduláris a felépítés, hogy jól elkülöníthető egységeket kapcsolsz hozzá a meglévő rendszeredhez (vagy épp választasz le róla).
Egész értelmesen sikerült megfogalmaznom egy liter bor és 5 sör után.
-
Lacces
őstag
A másik nagy bajom, az erősen félrevezetés a doksikban, vagy legalább is nem egyszerű olyannak aki most használ php frameworkot.
Gondoltam kipróbálom ezt, és telepítem:
yiishop
Hát nem jött össze, eléggé hogy is mondjam... már orosz rulettezek vele, de nem működik. már -1 egér
Azt írja, a modul könyvtárba csomagoljom ki. 2 kérdésem van, lenne a szerző felé, hol van a modul könyvtár? és hogy shop mappát rakjam oda, vagy a shop mappa tartalmát?Valaki tud benne segíteni?
-
Lacces
őstag
válasz
Speeedfire #9108 üzenetére
Példakódot majd tudnál adni? Én komolyan itt a tutorial-os blogot néztem, és nem látom ezt a rulet, vagy a Controller osztályban bárhol is, config fájlt is átnéztem...
-
modder
aktív tag
válasz
Speeedfire #9108 üzenetére
Na itt egy érdekes "probléma", aki elég bátor az megválaszolhatja, hogy ez-e az elvárható működés vagy sem
-
Lacces
őstag
válasz
Speeedfire #9074 üzenetére
Na majd megnézem én ezt este odahaza, kíváncsi vagyok rá..., hogy hol van, mert nem tudtam az Istennek sem átadni egy másiknak..
-
modder
aktív tag
felteszed az új kódot?
Én még mindig próbálom megfejteni, hogy mi volt a probléma a te megoldásoddal.$this->fb = new Facebook(array("appId" => APP_ID, "secret" => APP_SECRET, "cookie" => true));
$fb = $this->fb;
if($user_id = $fb->getUser()) {
// get user data
} else {
// redirect
}Abba az if ágba nem lép bele annak ellenére, hogy már engedélyezte a user az alkalmazást, így a getUser()-nek vissza kéne adnia egy id-t. Az előző formodon újra a facebook gombra kattintva már nem kellett volna redirectelnie fészbuk login oldalra, de ahogy láttam tegnap éjjel, mégis megtette...
-
válasz
Sk8erPeter #9103 üzenetére
Ja igen. Azt kidobtam a kukába, az érdekesség hogy anélkül sem ment, módosítva (azt nem írtam, de reggel kidobtam a kukába). Valamit marhára elírhattam vagy nem tudom.
-
válasz
Sk8erPeter #9101 üzenetére
Fogalmam sincs. Egészet kidobtam, újra csináltam és működött. De tényleg
Új hozzászólás Aktív témák
- Bambu Lab X1C + PEI Plate + 0.2mm hotend + csomó tartozék
- Lenovo ThinkPad T14 Gen2i 14" FHD IPS i5-1145G7 16GB 256GB NVMe gar
- MSI Thin GF63 12VF 15.6" FHD IPS i7-12650H RTX 4060 16GB 512GB NVMe magyar vbill gar
- RTX 2060 6GB DDR6/ garancia/ ingyen foxpost
- KINGSTON Fury Beast Black DDR4 64 GB (2x32 GB) eladó, GARANCIA! // KF436C18BBK2/64
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RTX 5060 Ti 16GB GAMER PC termékbeszámítással
- Amazon Kindle 10th Generation ébresztős tok
- Nexus 6P 32GB, Kártyafüggetlen, 1 Év Garanciával
- Bomba ár! HP Elitebook 850 G6 - i5-8GEN I 8GB I 256GB SSD I 15,6" FULLHD I Cam I W11 I Gari!
- LG 40WP95XP-W - 40" NANO IPS - 5120x2160 5K - 72Hz 5ms - TB 4.0 - HDR - AMD FreeSync
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest