- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Gurulunk, WAZE?!
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- eBay-es kütyük kis pénzért
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- erkxt: A Roidmi becsődölt – és senki nem szól egy szót sem?
- Dr.Zoo blogja, avagy az élet nagy dolgai...
- droidic: YouTube videók és playlistek letöltése GUI-alkalmazással
Új hozzászólás Aktív témák
-
don.racz
csendes tag
Sziasztok!
Egy kis segítségre lenne szükségem, aki jártas PHP-ban + ha Smarty-t is ismeri, akkor jó eséllyel megoldódna a problémám. Egy hozzáértőnek szerintem 10 perc lenne megoldani a dolgot, de nekem sehogy sem sikerül
Akinek van felesleges 10 perce az kérem írjon privátban nekem egy skype címet és felveszem hogy eltudjam mondani, meg bemutatni mi a bibi...! (input text field-ben lévő adatot kell leellenőrizni MySQL adatbázisban szereplő button gomb lenyomásával onclick event-re. ha majd megnézed a rendszert meglátod miért van így )Nagyon szépen köszönöm előre is a segítő szándékotokat!
-
Peter Kiss
őstag
válasz
Speeedfire #13396 üzenetére
Névterezve van minden? Mert a catch-et is úgy kell megírni: \Exception
try {
$data->queryAll();
} catch (\Exception $e) {
echo 'Hiba lépett fel!'
} -
sztanozs
veterán
válasz
Speeedfire #13396 üzenetére
Feltételezem, mivel a yii lekezeli már a kivételt, így semmivel nem tudod elkapni (kivéve a belehackelsz a framework-be).
-
Speeedfire
félisten
Mivel lehet elkapni a PDO:fetchAll()-t?
Írtam rá egy try catch blokkot, de nem kapja el.try {
$data->queryAll(); //a queryAll a yii pdo fetchAll függvénye
} catch (Exception $e) {
echo 'Hiba lépett fel!';
}PDOStatement::fetchAll() [<a href='pdostatement.fetchall'>pdostatement.fetchall</a>]: column 46 data was too large for buffer and was truncated to fit it
-
spammer
veterán
válasz
Sk8erPeter #13394 üzenetére
Közben rájöttem, hogy jó lesz nekem a fájlnév szerinti rendezés is, végül is azok is lehetnek "dátumok", vagy lehetnek akármilyen számok is, mindegy végül is (az működik)
De bedobtam ide egy tiszta teszt fájlt, itt a kódja: php rész , txt példa
Tudom, hogy biztos, hogy nem jó a php fájl így, de próbáltam többféleképpen is, a usortot raktam más helyre, a $itemlist[] = $item -et próbáltam $itemlist[] = $items-nek is írni (mert feljebb ugye az van), meg variáltam mindenfélét, de sanszos, hogy béna vagyok hozzá
if(!function_exists("datum_rendez")) eredetileg nem volt benne, de azért kellett elé írnom, mert rinyált, hogy previously declared, holott a nem tudom, mégis hol, mikor egyetlen egyszer szerepel benne, de mindegy, gugliztam, ezt találtam, ezzel nem rinyált
Ha azonnal szembetűnik a hiba, akkor jöhet, hogy mit csesztem el, de egyébként tényleg ne tököljetek vele, annyira nem életbevágó
-
spammer
veterán
válasz
DeltaPower #13391 üzenetére
Sajnos nem oldotta meg, valószínűleg még túrni kellene valamit, de mindegy, nem szeretném sem a ti időtöket rabolni, sem a sajátomat, egyelőre visszaálltam fájlnév szerinti rendezésre, majd ha lesz sok felesleges időm, akkor elszórakozok vele
Természetesen hálás köszönet a kódért, elraktam későbbre
(Lehet, hogy majd kipróbálom egy teljesen "tiszta" teszt oldallal a jelenlegi helyett).
-
spammer
veterán
válasz
DeltaPower #13389 üzenetére
Köszi, de sajnos valamiért nem jó. Lehet, hogy én bénázok, de nem jól rendezi. Próbáltam csak 2 db txt fájllal is, de most éppen:
20131012
20131013Nagyobb van alul.
Na még kísérletezgetek, megpróbálok rájönni, aztán majd meglátjuk, mi lesz
-
DeltaPower
addikt
válasz
spammer #13388 üzenetére
Ilyesmi lesz:
$itemlist[] = $item;
usort($itemlist, 'datum_rendez');
function datum_rendez($elso, $masodik)
{
// ellenőrzések (tömb-e, kulcs létezik-e, stb)
if(
(!is_array($elso) || !is_array($masodik)) ||
(!array_key_exists('date', $elso) || !array_key_exists('date', $masodik))
) return 0;
// ez a rész attól függően változik, hogy milyen formában van a dátum
$elsodatum=strtotime($elso['date']);
$masodikdatum=strtotime($masodik['date']);
// sort fgv lényegi rész
if($elsodatum == $masodikdatum) return 0;
else return $elsodatum > $masodikdatum ? 1 : -1;
}
Fejből írtam, lehet benne hiba. -
spammer
veterán
válasz
Sk8erPeter #13386 üzenetére
Van egy könyvtár, benne több txt fájl, melyek tartalma ilyesmi:
20131010|
Teszt cím|
Lorem ipsum bla bla bla|Tehát az első sor a dátum, második sor mondjuk a cím, harmadik sorban van a szöveg.
PHP beolvassa a könyvtárból az összes txt fájlt a fentebb leírt módon és a sorokat elnevezi ($date,$title,$text)Kiírja a egymás alá txt fájlok tartalmát, tehát például 2 db txt fájl esetén:
20131008 Teszt Cím Lorem Ipsum blablabla
20131010 Teszt Cím Lorem Ipsum blablablaJelenleg a fájlnevek alapján rendezi sorba (az alapján írja ki egymás alá). Ehelyett szeretném azt, hogy a fájlba beírt dátum szerint rendezze sorba: a példánál maradva (20131010, 20131008) ami ugye az $date lesz jelen esetben.
(#13387) DeltaPower: igen, elméletben sejtem, csak a gyakorlati része nem megy
Na megpróbálom a usorttal összebűvészkedni
-
spammer
veterán
válasz
Sk8erPeter #13384 üzenetére
Köszi.
Más: picit változtatni szeretnék a meglévő listázón:
Egy könyvtárban van több txt fájl, amiket beolvas és kiírja a tartalmukat. A vonatkozó rész:
$contents = file_get_contents($filename);
$items = list($date,$title,$text)=explode("|"."\r\n", $contents);
$out[] = sprintf( html kód balblabla $date blabla $title blabla $text);Ezzel pedig fájlnevek szerint listázza (jelenleg épp a legutolsó hármat mutatja):
if (! empty ($out)) {
$out_reverse = array_reverse($out, true);
$out_slice = array_slice($out_reverse, 0, 3);
}
if ( ! empty ( $out_slice ) )
{
echo implode ( "\r\n", $out_slice );
}Na most azt szeretném, hogy a txt fájlba beírt egyik sor (pl,: dátum, vagyis a $date) szerint rendezze, és ne a fájlnevek szerint.
Gondolom a sortolni kellene $date alapján, de nem tudom, hogy a jelenlegi kódot hogyan kellene ehhez módosítani.
-
Sk8erPeter
nagyúr
válasz
spammer #13383 üzenetére
Jaja, jól teszed, az úgy a legjobb.
Most látom, már én is megzavarodtam, és szintén RewriteEngine-t írtam RewriteRule helyett
Mindjárt szerkesztetem egy modival az előzőt, hogy ne ez maradjon benne.
www.example.com/articles/110/ez-egy-nagyon-erdekes-cikk
erre meg valami ilyesmi illeszkedik:
RewriteRule ^(\w+)/(\d+)/(.+)$ index.php?page=$1&id=$2 [QSA,L]
(itt a 3. részt, tehát az "ez-egy-nagyon-erdekes-cikk" stringet nem vettem figyelembe, mert a struktúrád szerint az most nem is kell)
-
spammer
veterán
válasz
Sk8erPeter #13382 üzenetére
Köszi, marad inkább "arcticles"-re vagy valamire átnevezve, és akkor tökölnöm sem kell vele és beszédes is marad az url
A cím meg a végére került ("slug" funkcióval).
-
Sk8erPeter
nagyúr
válasz
spammer #13381 üzenetére
Úgy, hogy olyan regexpet használsz a RewriteRule-nál, ami a számokra illeszkedik, a "view" szócskát meg "beledrótozod".
Pl. ilyesmi:
RewriteRule ^(\d+)$ index.php?page=view&id=$1 [QSA,L]Ez illeszkedik arra, amit írtál. A \d minden numerikus karakterre illeszkedik. A +-szal pedig azt várod el, hogy egy vagy több ilyen minta legyen a stringben (tehát szerepelhet benne simán 9 vagy 6432 is). A ^ a string kezdetét jelöli, a $ pedig a legvégét, azért jó jelen esetben így korlátozni, mert pl. nem illeszkedik arra a mintára, hogy "a321b" vagy "a321" vagy "321b".
De egyébként érdemesebb beszédes neveket használni az URL-nél, pl. ilyesmi:
www.example.com/articles/110/ez-egy-nagyon-erdekes-cikkRegExp tesztelésére tudom ajánlani többek közt ezeket:
http://regexpal.com/
http://gskinner.com/RegExr/
utóbbi Flash-alapú, de nagyon beszédes segédlet van hozzá. Mindkettő ajánlott.[ Módosította: BomiBoogie ]
-
ztajti
csendes tag
válasz
spammer #13379 üzenetére
valóban elírtam, a paraméter sor elejére rewriteRule kell
Köszi DeltaPower, hogy észrevetted.
Ez azért lehetséges, mert rossz lekérést küldesz a feldolgozó szkriptnek, illetve, ha nincs .html végződés próbálj egy "/" jelet a link végére beszúrni, valamint az index.php header állományát így kialakítani:
<head>
<base href="http://www.valami.com/" />
...{SAJÁT HEAD RÉSZED} ...
</head>sorral kiegészíteni. Illetve csak a base href kell neked.
-
spammer
veterán
válasz
DeltaPower #13377 üzenetére
Átírtam erre, most már betölti az oldalt, de az új linkeket nem érti így sem
pl. valami.com/about.html (.html nélkül sem)
Object not found!
The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.
Sorry ha bénázok
-
spammer
veterán
válasz
ztajti #13375 üzenetére
Köszi, de valamiért sajnos nem jó. Server error (Error 500) semmit nem hoz be vele, hiába írom be akár címsorba is a címet.
Próbáltam így is:
RewriteEngine ^([a-zA-Z0-9-*]+).html$ index.php?page=$1 [QSA]
valami.com?page=about , így ebből kellene valami.com/about.html -nek lennie, nem? Mert sajnos így is error.
Windowson csinálom, local server (EasyPHP alatt), ha ez számít, bár nem hiszem.
-
DeltaPower
addikt
válasz
Sk8erPeter #13376 üzenetére
Én is ezt tartom a legértelmesebb megoldásnak, mindent az indexre (illetve majdnem mindent, kép-js-stíluslap-stb szűrhető), aztán validálni, stringként feldolgozni.
ztajti: a hosszú kódsor elé RewriteRule kell, nem RewriteEngine, illetve a vége inkább [QSA,L] mint simán [QSA]
-
Sk8erPeter
nagyúr
válasz
spammer #13373 üzenetére
Igazából mi a nem szimpatikus rajta?
Hogy nem olyan egyszerű, mint a lepkefing?
Amúgy sokszor CMS-eknél/frameworköknél azt csinálják, hogy minden URL-t ráfuttatnak az index.php-re, fix query stringként (pl. index.php?q=adsasd/123/asd), aztán az adatbázisban az URL aliasok táblájában keresik meg a kapott query stringet, és ez van leképezve az alkalmazás működésének megfelelő "valós" címekre.
De az általad linkelt módszer is teljesen jó. -
ztajti
csendes tag
válasz
spammer #13373 üzenetére
Hy!
A Te esetedben ez legyen a .htaccess file tartalma:
DirectoryIndex index.php
RewriteEngine on
RewriteBase /
RewriteEngine ^([a-zA-Z0-9-*]+)/([a-zA-Z0-9-*]+).html$ index.php?page=$1&id=$2 [QSA]A rewriteEngine soirt annyiszor ismételed a megfelelő paraméterekkel, amíg le nem fedi a teljes oldalt.
A linkkeket pedigvalami.com/index.php?page=ertek&id=ertek
valami.com/index.php?page=news&id=104411sorról erre cseréld le:
valami.com/ertek/ertek.html
valami.com/news/104411.html
[/M]Remélem ez alapján már meg tudod csinálni.
By.
-
spammer
veterán
Ha már van egy oldal, amin a linkelések $_GET id, & stb. (php switch) dolgokkal vannak megoldva, akkor mi a legegyszerűbb módja, hogy normális, tiszta (SEO friendly) linkeket csináljak belőlük?
Például:
valami.com?page=news&id=42
valami.com/news/42Találtam ilyen htaccess fájlba firkálós megoldást [link], de nem mondanám annyira szimpatikus megoldásnak
Van egyszerűbb megoldás vagy maradjak a htaccess variálásnál?
-
sztanozs
veterán
válasz
Lacces #13371 üzenetére
A level++ lefele azért nem változik, mert miután átadta az értékét, utána növekszik egyel; így az egyel lejjebb levő szint is ugyanazt az értéket kapja meg. (Persze, ha jól feltételezem a level++ működését ebben az esetben - ha nem, akkor ugyanúgy működik, mint a ++level; amit azért kicsit kétlek).
++ működése általában
1)
a = 0;
b = a++; // b = 0; a = 1
c = a; // c = 12)
a = 0;
b = ++a; // b = 1; a = 1
c = a; // c = 1Counter - számláló - ahogy lerajzoltam rájöttem, hogy nem is igazi számláló, hiszen több elem kaphat ugyanolyan értéket. A probléma abban van, hogy a ++ megváltoztatja a változó értékét, és az azonos ágon levő leágazások nem ugyanazt az értéket kapják, hanem mind eggyel nagyobbat.
Branch - ág (ha fa struktúrában képzeljük el a felépített listát, akkor egy ág az, amiről bármi leágazik, és levél az, amiből már nem jön ki semmi) - a fenti ben már aszsem leírtam, hogy gondoltam... -
Lacces
őstag
válasz
sztanozs #13368 üzenetére
"hanem csak counterként fog viselkedni, és ráadásul csak a branchek fognak új számot kapni nem az egyess elemek..."
Mi az, hogy counterként és branchként? (Nekem ez kínai)
Az ábrát köszi, de olyan fura, hogy a level++ lefele nem változik és nem értem miért...Ha van online forrás az is elég. Eddig ezen a héten programozás off állapotban van.
Vagy azért nem volt ott semmi, mert a counter-zés csak ciklusban növeli az értéket, és mivel függvény hívás paraméterként rekurzívan ment "lefele" ezért nem növelte az értéket?
-
sztanozs
veterán
válasz
Vision #13366 üzenetére
Itt az eredmény (fejből, így hibázhat) a három változatra:
szintek l++ ++l l+1
+--a 1 1 1
| +--aa 1 2 2
| | +--aaa 1 3 3
| |
| +--ab 2 3 2
|
+--b 2 2 1
| +--ba 2 3 2
| | +--baa 2 4 3
| | +--bab 2 4 3
| | +--bac 2 4 3
| |
| +--bb 3 4 2
| | +--bba 3 5 3
| |
| +--bc 4 5 2
|
+--c 3 3 1
+--ca 3 4 2
+--cb 3 4 2 -
sztanozs
veterán
válasz
Peter Kiss #13363 üzenetére
Jade
Csupán csak két hszt kellett volna visszaolvasnom, hogy hogyan generálódik a struktúramondjuk ott el van b*va a kód, mert a rekurzív hívásnál nem jó a $level++, hanem $level+1 kell helyette. Azért nem találta a szintet, mert hülyeség volt a változóban
$feladat['sub'] = isset($feladat['sub']) ? $feladat['sub'] : GenerateArray($arr, $feladat['id'],$level++);
-
Lacces
őstag
válasz
Peter Kiss #13363 üzenetére
Nem, a szintben az egy szintben lévőeknek a "sorszáma", az egy szinten lévőeket számolta az enyém... nem pedig a mélységet számolta.
-
sztanozs
veterán
válasz
Lacces #13360 üzenetére
Bevezetsz még egy változót, pl $depth. Amúgy az UL helye szerintem a for cikluson kívül volna:
function GenerateNavHTML($nav, $depth = 0)
{
$html = '<ul>';
foreach($nav as $f)
{
$html .= '<li>';
$html .= '<a href="' . $f['feladat_kod'] . '">' . $f['rovid_nev'] . '</a>';
$html .= GenerateNavHTML($f['sub'], $depth + 1);
$html .= '</li>';
}
$html .= '</ul>';
return $html;
}Itt ugyan a $depth változó nincs felhasználva, de azt csinálhatsz vele amit akarsz.
-
Lacces
őstag
válasz
Lacces #13359 üzenetére
Esetleg ha ez nyújt plusz infót a HTML-s kigenerálás:
Pedig szépen kint is látszik az <ul><li>-vel a hierarchia, de "mégsem látom a fától az erdőt"...function GenerateNavHTML($nav)
{
$html = '';
foreach($nav as $f)
{
$html .= '<ul><li>';
$html .= '<a href="' . $f['feladat_kod'] . '">' . $f['rovid_nev'] . '</a>';
$html .= GenerateNavHTML($f['sub']);
$html .= '</li></ul>';
}
return $html;
} -
Lacces
őstag
Hali,
Már belevagyok kavarodva, semmi más nem ez, mint egy szülő_id alapján minden egyes feladatra rekurzívan bejárja az adott tömböt.
A bejárás sikeres, minden hol jó a szülő - gyerek kapcsolat!Visziont van egy kis bökkenő, a mélységet nem tudom megszámolni. (Fás implementációt néztem meg, az alapján van felépítve, de mégsem jövők rá, hogy hol szúrom el)...
function GenerateArray($arr, $parent = 0, $level=1)
{
$feladatkodok = array();
foreach($arr as $feladat)
{
//print_r($feladat);
if($feladat['parent_id'] == 0)
{
$feladat['szint'] = 0;
}
else{
$feladat['szint'] = $level;
}
if($feladat['parent_id'] == $parent)
{
$feladat['sub'] = isset($feladat['sub']) ? $feladat['sub'] : GenerateArray($arr, $feladat['id'],$level++);
$feladatkodok[] = $feladat;
}
}
return $feladatkodok;
} -
Peethy
őstag
Sziasztok!
Amatőr kérdésem lenne, de sajnos elég szűkös az időm, szóval inkább kérdezek
Van egy webtárhelyem, és egy hozzá tartozó domain (legyen pelda.hu), amire feltettem a Wordpress-t. A kérdésem az lenne, hogy hogyan tudom elérni, hogy a pelda.hu és a www.pelda.hu oldalra a wordpress-es oldal jöjjön ki? Mert így csak az adminfelületet látom, és nem tudom, hogy mire kellene átirányítani. Előre is köszönöm!
-
TVMaci
tag
Sziasztok!
Egy phpbb subsilver alapú témához szeretnék egy modot hozzáadni, de a tudásom ehhez több mint kevés.
Kérem írjon rám valaki aki tudna segíteni, fizetnék is a segítségért. -
spammer
veterán
válasz
vgyuri #13350 üzenetére
Közben megtaláltam a hmailservert, de ezzel sem megy. A mailserver jó, mert levelező kliensben küldtem a localhostos címre levelet és megérkezett, de a mocsok php nem küldi el
Pedig minden úgy van, ahogy a leírásban, php.ini -be is be vannak írva a dolgok. És nem.
Ez a test.php, most már 'Failure: Email was not sent!' -et ír ki.
$to = 'test@localhost.localdomain';
$subject = 'Fake sendmail test';
$message = 'If we can read this, it means that our fake Sendmail setup works!';
$headers = 'From: test@localhost.localdomain' . "\r\n" .
'Reply-To: test@localhost.localdomain' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
if(mail($to, $subject, $message, $headers)) {
echo 'Email sent successfully!';
} else {
die('Failure: Email was not sent!');
} -
spammer
veterán
PHP mail-t szeretnék küldeni de localhostról (tesztelés céljából). Ez [link] vagy [link] alapján belőttem a sendmailt, de sajnos Windows 8 alól nem működik, ahogy ezt a készítő is írta a honlapján: [link]
"i've had reports that TLS/SSL is not working on windows 8. unfortunately i don't have access to a windows 8 system to diagnose the issue just yet."
Guglizás után kiderítettem, hogy TLS/SSL probléma van a háttérben, azt olvastam, próbáljam meg a sendmail.ini -ben átírni smtp_ssl=none -ra, de akkor sem kapom meg az emailt. A PHP működik, ki is írja, hogy elküldte, de soha nem érkezik meg a levél. Valahol eltűnik az éterben.
---
Tehát, tud valaki tanácsod adni, hogy Windows 8 (és WAMP vagy EasyPHP) alatt hogyan tudnám megoldani, hogy működjön a php mail funkció?
Van egy form, aminek az adatait a php mailezi el, szerverre feltöltve működik is, csak macerás nekem az éles site "mellett" próbálgatni és kényelmetlen is, ezért lenne jó, ha localhostról tudnám végezni az egészet.
-
spammer
veterán
válasz
Sk8erPeter #13347 üzenetére
Igen, közben rájöttem, hogy az idézőjelet valószínűleg rossz helyre írtam. Mindegy is, már túl vagyunk ezen a részen.
Közben úgy néz ki, megoldottam a dolgot, de lehet, hogy még lesz nyűgöm, és ha jQuery, akkor átfáradok a másik topikba. Köszi a segítséget!
-
Sk8erPeter
nagyúr
válasz
spammer #13345 üzenetére
"Azzal működött, nem az volt a probléma, hanem hogy simán beírva a $dest vagy $dest2 nem ment."
Pedig de, az probléma, amit írtam.
Nézd meg még egyszer ezt a stringet:
'origins=04429&destinations=$dest&mode=driving&units=imperial&sensor=false'
mint látható, sima aposztrófot használsz, így a $dest nem fog behelyettesítődni, még jó, hogy rossz eredményt kapsz, mert így küldi el a szervernek: destinations=$dest, ahogy van (szóval a szerver a $dest-et kapja értékül).
Amúgy Te magad mondtad, hogy nem működött úgy.<form id="destCalc" action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
itt ez az echo-zás tökéletesen felesleges.
Ezt nyugodtan cseréld le így:
<form id="destCalc" action="" method="post">
az üres action pont azt csinálja, hogy önmagára küldi el a formot.
Mondjuk gondolom azt vágod, hogy ennek megvan az a hátránya, hogy a böngésző cs×szeget F5 nyomkodásakor, hogy biztos el akarod-e küldeni még egyszer a POST-adatokat.Amit viszont most nem értek, hogy miért POST-metódussal küldöd el az adatokat, amikor korábban GET-et használtál. Így nem is merülne fel az a probléma, amit az előbb említettem.
"oldalfrissítés nélkül betöltse a php kódot (hogy lássam az eredményt)"
Ezt most nem egészen értettem. Mit is szeretnél?Ha jQuery+AJAX témáról van szó, akkor javaslom a jQuery topicot. A PHP-része persze jöhet ide, mindenesetre hint: json_encode()-dal küldd vissza a kliensnek az adatokat, úgy lesz a legkönnyebb kezelni.
-
spammer
veterán
válasz
spammer #13345 üzenetére
Haladás:
$('#destCalc').submit(function(){
var action = $(this).attr("action")
$.ajax({
url: action,
type:'POST',
data: $(this).serialize(),
success: function(data){
$('#message').html(data);
}
})
return false
})Ezzel már beleírja a #message div-be, csak az a baj, hogy ha nem adok meg a divnek fix magasságot, akkor nem látszik a szöveg, mert a tartalomhoz nem igazodik a magassága, hanem marad olyan, mint volt.
-
spammer
veterán
válasz
Sk8erPeter #13343 üzenetére
Azzal működött, nem az volt a probléma, hanem hogy simán beírva a $dest vagy $dest2 nem ment.
Viszont most megint elakadtam, és már kezd kihullani a hajam, annyit próbálkoztam. Van ez a fenti téma, szépen kiírja a távolságot stb., de én azt szeretném, hogy a submit gomb lenyomására ne frissítse az oldalt.
Tehát van a form, 1 db input és egy submit.
<form id="destCalc" action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<input type="text" name="dest" id="dest">
<input type="submit" value="Mehet">
</form>Alatta pedig a fentebb már ismertetett Google térkép API-s php kód, aminek az eredménye ugye akkor látszik csak, miután a submit gombra nyomtunk.
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
itt pedig a kód.
végén pedig echo az eredményekkel.
}
?>Azt szeretném, hogy oldalfrissítés nélkül betöltse a php kódot (hogy lássam az eredményt). Már próbáltam egy rakás jquery+ajax kódot, de mindegyik túl volt bonyolítva (számomra), meg több fájlból állt regisztrációs formhoz meg ilyesmi... Ehhez a részhez nem igazán értek, így örülnék egy minél egyszerűbb lightweight megoldásnak
szerk: megtaláltam ezt is [link], de nem tudtam belőni, béna vagyok hozzá
-
Sk8erPeter
nagyúr
válasz
sebastien19 #13338 üzenetére
JavaScripttel lehet ellenőrizni, hogy milyen gomb lett lenyomva a billentyűzeten vagy az egéren, erre korábban írtam egy szemléltető kódot, amit itt ki tudsz próbálni:
http://jsfiddle.net/Sk8erPeter/EAjYe/A baj viszont az, hogy elvileg az event object módosítható, meghamisítható, így talán csak a másodpercenkénti irreálisan magas kattintásszámot tudnád kiszűrni kliens- és szerveroldalon egyaránt. Na, hogy ez mennyi, az már jó kérdés.
-
spammer
veterán
válasz
fordfairlane #13341 üzenetére
Köszi, így tényleg szebb
-
fordfairlane
veterán
válasz
spammer #13340 üzenetére
Akkor már inkább így:
$url = 'http://maps.googleapis.com/maps/api/distancematrix/json';
$params = array(
'origins' => '04429',
'destinations' => $_GET['dest'],
'mode' => 'driving',
'units' => 'imperial',
'sensor' => 'false'
);
$sResponse = curl_request($url, http_build_query($params)); -
spammer
veterán
válasz
fordfairlane #13337 üzenetére
$dest = $_GET["dest"];
$dest2 = urlencode($dest);Nem jó így sem. Pedig megkapja az értéket, mert echoval kiírja a $dest és a $dest2 -t, de nem számol semmit. Hiába írom be a destination után a $dest2-t.
-
sebastien19
csendes tag
Üdv!
Egy adott oldalon szeretnék egy olyan funkciót, játékot, aminek egy része, hogy kattintgatni kell. Mivel a kattintgatás gyorsasága befolyásolja az elért pontszámot, az érdekelne, hogy milyen eszközök vannak arra, hogy azt figyeljem használ-e valamilyen segédeszközt. Pl. nyilván, ha túl gyorsan jönnek a kattintások, amit ember nem tud reprodukálni, akkor valszeg robotot használ. De pl. ha ezeket hotkey-ekkel hívja elő, arra rá lehet jönni, valahogy érzékelhető, hogy mit csinál az oldalon, vagy csak az, hogy hol van a kurzor, és mikor kattint? Meg lehet különböztetni a valós kattintást a makró általitól? A billentyűkombinációk láthatóak valahogy?
-
spammer
veterán
Van ez kalkulátor, ami távolságot számol Google Maps API alapján. [link]
Működik is, amíg be vannak írva neki "start-cél" címek. Na de én a célállomás címét változóval szeretném megadni, attól függően, hogy az input mezőbe mit ír be a user. Az input mezőbe beírt cuccot elküldi a form, $_GET-tel megkapjuk, de az url-be beírva már nem jó:
A vonatkozó php rész ez lenne:
$dest = $_GET["dest"];
$sResponse=curl_request('http://maps.googleapis.com/maps/api/distancematrix/json',
'origins=04429&destinations=$dest&mode=driving&units=imperial&sensor=false');Az eredmény 0, azaz valamiért nem kapja meg a címet. Hogyan lehetne ezt a változót helyesen megadni az URL-ben?
-
CSorBA
őstag
válasz
Peter Kiss #13334 üzenetére
Akkor marad az első
Köszönöm szépen
-
CSorBA
őstag
válasz
Peter Kiss #13332 üzenetére
Szóval akkor nyugodtan írjam bele így?
header('HTTP/1.1 404 Not Found');
-
CSorBA
őstag
Ha van custom error pagem, azaz ha nem található egy aloldal, akkor saját 404-re irányítom a usert.
De szeretném tudatni a keresőbotokkal, hogy ne indexelje azt az oldalt (ergo tudjon róla, hogy megszűnt), akkor az alábbi header jó lesz hozzá, igaz?header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found');
-
#68216320
törölt tag
válasz
Sk8erPeter #13328 üzenetére
Köszönöm. Teljesen korrekt.
-
Sk8erPeter
nagyúr
válasz
Sk8erPeter #13328 üzenetére
még annyi, hogy ha nem akarod kiíratni a fejléceket, akkor kommenteld ki ezt a sort:
curl_setopt($handle, CURLOPT_HEADER, true);
ezután így használhatod könnyedén:$json_decoded_data = json_decode($result);
echo $json_decoded_data->pool_name; -
Sk8erPeter
nagyúr
válasz
#68216320 #13322 üzenetére
Ilyenkor érdemes megnézni a visszatérési értékeket, és ha gond volt, akkor megnézni a hibát, pl. a Te kódodnál valahogy így:
$result = curl_exec($handle);
if($result === false){
echo 'Curl error: ' . curl_error($handle) . '. Curl error no.: '. curl_errno($handle);
}
else {
..................
}a hibaüzenet pedig ezt fogja írni:
"SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed"
(hibakód: 60)Ezt a hibát pedig ez fogja megoldani:
http://stackoverflow.com/questions/6400300/php-curl-https-causing-exception-ssl-certificate-problem-verify-that-the-ca-cer/10566962#10566962curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
Viszont figyelj a biztonsági problémára, amire a linkelt hsz.-ben felhívják a figyelmet.
-
cucka
addikt
-
Soak
veterán
válasz
vgyuri #13323 üzenetére
Mar nincs security risk, viszont default sincs.
Lehetne valami ilyesmi .
$validColors = valahonnan egy tomb.
$color = isset($_GET['szin']) && in_array(....) ? $_GET['szin'] : 'red';
echo $color;
De a get[szin] is mehet egy valtozoba hogy ne legyen feleslegesen 3szor eg ternarisban.
-
#68216320
törölt tag
válasz
vgyuri #13323 üzenetére
Köszönöm, hogy lepróbáltad.
Akkor most nem is tudom, hogy örüljek v. ne. Nem tudom nálam mi lehet a gond.
phpinfo() szerint:
cURL support enabled
cURL Information libcurl/7.16.0 OpenSSL/0.9.8g zlib/1.2.3
Mégsem kapok eredményt.
Windows 7 és Appserv a tesztelő gép. gondolom ehhez nem kell semmi spec tűzfal dolog. Az lehet probléma, hogy a routeren a bejövő 80-as port egy másik gépre van forward-olva? -
válasz
#68216320 #13321 üzenetére
Nálam rendben lefut a kódod, semmit nem írtam hozzá:
HTTP/1.1 200 OK
Date: Wed, 01 May 2013 07:37:37 GMT
Server: Apache/2.2.0 (Fedora)
Content-Location: api.php
Vary: negotiate,Accept-Encoding
TCN: choice
X-Powered-By: PHP/5.3.3-7+squeeze15
Content-Length: 194
Content-Type: text/html
{"pool_name":"FTC Simple Pool - DontMine.Me","hashrate":"803510","users_mining":"266","total_users":"713","workers":"831","shares_this_round":47353,"last_block":"28129","difficulty":40.84082096}#13310 Soak : ez a megoldás jobban néz ki?
<?php if ( isset($_GET['szin']) && in_array($_GET['szin'], array('#FF0000', '#00FF00', '#0000FF') ) ) { echo '<body bgcolor="'.$_GET['szin'].'">'; } ?> -
#68216320
törölt tag
válasz
#68216320 #13321 üzenetére
Közben úgy nézem a cURL megoldás azt sem jeleníti meg, amit a file_get_contents(), így valószínű a hiba a kódban és a részemről cURL ismeretének hiányából adódik. Keresgélek infókat inkább róla.
Persze, ha valaki tudna linkelni (php.net picit érthetetlen még) vagy pár szóban esetleg kódsorban segítene, nagyon megköszönném. Természetesen nem azt kérem, hogy a feladatot más oldja meg csak könnyebb lenne egy működő kódból kiindulnom, hogy megismerjem a működését. -
#68216320
törölt tag
PHP mester urak és esetleg hölgyek.
Van egy weboldal ami API linket ad pár paraméteréhez. Böngészőben működik is, de file_get_contents()-el 403-as forbidden hibát ad.
Ez lenne az oldal: https://fc.dontmine.me/api
Próbáltam curl-al is, de nem jött be, persze lehet, hogy elrontottam valamit, mivel még sohasem használtam. Más oldalon működnek hasonló API-k és az SSL is engedélyezett a php.ini-ben.
Esetleg mi hiányzik ahhoz, hogy működjön?Ja, a curl kód, amit a neten láttam:
$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, 'https://fc.dontmine.me/api');
curl_setopt($handle, CURLOPT_HEADER, true);
curl_setopt($handle, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1');
curl_setopt($handle, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($handle);
print($result);
curl_close($handle); -
válasz
Peter Kiss #13318 üzenetére
Hát persze, mert ez a PHP programozás lényege az asszociatív tömbök alkalmazása. Hagyjuk már...
-
válasz
Peter Kiss #13316 üzenetére
Ez már csak ízlés kérdése. Én nem szeretem az asszociatív tömböket.
-
Peter Kiss
őstag
válasz
Vision #13315 üzenetére
A switch olyan rugalmas, mint az öntött vas. Egy tömbbe vagy egy kicsivel inteligensebb cuccba kell pakolni; ha megvan az elküldött key ebben a tárolóban, akkor a hozzá tartozó value kell, ha nincs, kell egy default.
1-esre semmiképp sem kellene átírni, mert nem mond semmit magáról; szövegesen értelmesebb, pl.: red.
-
válasz
vgyuri #13308 üzenetére
Ez most nagyon csúnya volt. Ugye a már említett XSS a fő probléma, de egyébként sem egy elegáns megvalósítás. Alapszabály szerintem, hogy minél kevesebb felhasználói input kerüljön direkt kiírásra. Itt is tökéletesen kiiktatható, hiszen elég, ha a value="#FF000"-et átírod value="1"-re, stb. Majd a kiíratásnál én betennék egy is_numeric vizsgálatot, illetve switch-el elágaztatva adnám át a kiírandó értéket.
-
cucka
addikt
válasz
Lacces #13305 üzenetére
Fát kell építeni és nem bonyolult.
1. Beolvasod az összes menüpont adatait egy tömbbe. Az adatbázisban eltárolod minden elemhez, hogy a struktúra hanyadik szintjén van, így aszerint rendezve tudod lekérdezni. Ezzel biztosítod, hogy egyszer végiglépkedve a tömbön fel tudd építeni a fát.
2. A tömbön végigmész és felépíted a fát. Egy elemet tárolhatsz egy tömb elemeként vagy objektumként is, mindegy, én OOP-t javaslok.
3. Szélességi kereséssel végigiterálsz a fán, kiírod a menüt. Ha OOP-sen építetted fel a fát, akkor a fa elemei "ki tudják írni magukat", szóval egész elegánsan megoldható. -
Sapphi
aktív tag
Sziasztok!
Olyan kérdéssel fordulok hozzátok, hogy készítek egy oldalt és megvan a kezdő oldal ahol vannak bejegyzések. Ezeket a bejegyzéseket MySQL-ből olvassa ki a php, de szeretném azt megoldani, hogy ezekbe a hírekbe bele lehessen lépni, és ott akár bővebb leírás lenne és lehessen kommentálni is.
Sajnos egyenlőre még nem sikerült rájönnöm, hogy ezt, hogy oldhatnám meg és ebben szeretném a segítségeteket kéri.
Köszönöm előre is!
-
válasz
#36268800 #13304 üzenetére
Egy fájlban is meg lehet oldani:
<html>
<?php if ( isset($_GET['szin']) ) { echo '<body bgcolor="'.$_GET['szin'].'">'; } ?>
</body>
<form name="szinvalaszto" method="get">
<input type="radio" name="szin" value="#FF000">Piros<br>
<input type="radio" name="szin" value="#00FF00">Zöld<br>
<input type="radio" name="szin" value="#0000FF">Kék<br>
<input type="submit" value="OK">
</form>
</html> -
sztanozs
veterán
-
Lacces
őstag
Még 1 db kérdés.
Menüszerkesztőt építek magamtól.
Adatbázisban, minden menüpont kap egy szülő-id-t, hogy melyik id-ból van. Melyiknek a gyereke...Na de ezt hogy érdemes rekurzívan megcsinálni? (egy függvény építse fel rekurzívan)
(Én fa építesen kívül mást nem találok ki magamtól... szerintem ez picit bonyi).Még egyelőre turom a Google-t (de még nem találtam), szal bocsi, ha nem jelentkezek majd egy idő után.
-
#36268800
törölt tag
Hogyan lehet azt megcsinálni, hogy
az index.html-ben elkészített űrlapon kitöltünk egy rádiógombos szavazást (melyik szín a kedvenced? lehetőségek: zöld, kék, piros);
ezt a feldolgoz.php úgy értelmezze, hogy amennyiben az érték "a", akkor a háttérszín zöld, ha "b", akkor a háttérszín kék, ha "c", akkor pedig a háttérszín piros?
Tehát:
van két fájlom,
egy index.html nevű, ami tartalmazza az űrlapot és az űrlap egyik részeként a szavazást és
egy feldolgoz.php nevű, amely a "POST" metódus segítségével kinyeri az index.html-ből a változók értékét, s ha a szavazáson megadott három szín közül az egyik ki van választva, akkor a "feldolgoz.php" (visszaigazoló oldal) háttérszíne az adott színre megváltozik.Le tudná valaki a két oldal kódját külön írni? Vagy nem is muszáj megoldani, csak javítsátok ki a gondolatmenetemet!
Én úgy gondolkoztam, hogy a háttérszín értékét (ami hexadecimális szám - #ffffff, vagy string - 'black') el kellene tárolni egy változóban és egy switch elágazással case 'a', case 'b' és case 'c' esetekben ezt az értéket meg kellene változtatni. Kérdés az, hogy hogyan lehetséges ez? Ha pedig nem jól gondolkoztam, akkor legyetek szívesek megsegíteni ügyesebb ötlettel!
-
cucka
addikt
Új hozzászólás Aktív témák
- Bomba ár! HP ProBook 450 G5 - i5-8GEN I 8GB I 256GB SSD I 15,6" FHD I HDMI I Cam I W10 I Garancia!
- Gigabyte BRIX GB-BXi3H-4010 mini PC eladó
- LG 27GR95QE - 27" OLED / QHD 2K / 240Hz & 0.03ms / NVIDIA G-Sync / FreeSync Premium / HDMI 2.1
- Telefon felvásárlás!! iPhone X/iPhone Xs/iPhone XR/iPhone Xs Max
- Bomba ár! HP ZBook Studio G5 - i9-9980H I 32GB I 1TSSD I Nvidia I 15,6" FHD I Cam I W11 I Gar
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest