- sziku69: Fűzzük össze a szavakat :)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- Magga: PLEX: multimédia az egész lakásban
- eBay-es kütyük kis pénzért
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- laskr99: Processzor és videokártya szilícium mag fotók újrakezdés
- Hieronymus: A németországi vasúthálózat
- Viber: ingyen telefonálás a mobilodon
Új hozzászólás Aktív témák
-
Lakers
tag
válasz
Speeedfire #5399 üzenetére
Kösz a választ!
Esetleg itt is neked feltenném a kérdést, hbogy tudsz-e jó php-s host oldalt? (ahol esetleg több weboldalt is fenntarthatok ingyen, és ne magyar, ahol esetleg élőben is lehet szerkeszteni...) A régi nagyokat nem lelem neten... és a Google találotoknál a biztonsági szoftverek szólnak hogy nem ajánlott kategória.
És kívánom, hogy a te kérdésedre mihamarabb feleljenek
-
Speeedfire
félisten
-
Lakers
tag
Hali!
Kezdő kérdése: A GET a POST metódusok között mi a különbség? Mindkettő arra szolgál elvileg, hogy az űrlapoknál a bevitt mezőkbe értéket összegyűjtse és a szerverre elküldje további feldolgozásra, igaz?
-
Speeedfire
félisten
Üdv!
Kis segítség kellene. Az aktív menüpont megállapításában.
A menüpontokat adatbázisból kérem le, viszont nem tudom, hogy oldhatnám meg az aktív dolgot.
Kicsit nagy fába vágtam azt a bizonyost szerintem....
Forrás:
//menüsor kiiratása
$Menusor = mysql_query('select * from szapar_navigacio
where hely = 0
ORDER BY `szapar_navigacio`.`sorrend` ASC');
//aktív menü
$MenuAktivKeres = str_replace('/!!!szapar.hu','',$_SERVER['REQUEST_URI']);
$MenuAktiv = mysql_query('select url from szapar_alias
where eng like '%.$MenuAktivKeres.%' and url like '%tipus%'');
//kapcsolat ellenőrzése
if (!$MenuAktiv) {
die('Hiba: ' . mysql_error());
}
//aktív menü keresése
if (mysql_num_rows($MenuAktiv) == 0) {
$MenuAktivPont = '';
}
else {
$MenuAktivPont = mysql_result($MenuAktiv,0,0);
}
//kapcsolat ellenőrzése
if (!$Menusor) {
die('Hiba: ' . mysql_error());
}
//menüsor listázása
while ($row = mysql_fetch_array($Menusor)) {
echo '<li><a title="'.$row['nev'].'" href="'.$row['link'].'">'.$row['nev'].'</a></li>';
}Hogyan tudnám megoldani szerintetek? A cél az lenne ha nincs a tipus az url mezőben akkor a főoldal lenne az aktív ellenkező esetben ahol megvan adva a tipus ott a hozzá tartozó fenti menü.
Aki le szeretné szólni, az inkább ne tegye ... tudom, nem vagyok valami nagy .... -
biker
nagyúr
megint hülye hibába botlottam.
egy iso8859-2 kódolású lapról adnék át GET-el linkben ékezetes betűket tartalmazó változót, amit be kellene tolni mysql-be, a fogadó lap meg utf8
eltöri a karaktert az első ékezetnél, és pl a Péter ből P-t illeszt be csak, pedig átmegy az ékezethibás string, printelve látom.Mi a megoldás?tárgytalan, utf8_encode
-
Speeedfire
félisten
válasz
cellpeti #5390 üzenetére
Rakj fel egy egyszerű php könyvtár listázót, amúgy az atw helyett inkább az okhost.eu-t ajánlanám, magyar és 3gb helyet ad. Meg persze gyorsabb is valamivel mint az atw, meg nincs reklám.
Itt van 1-2 listázó, igaz nem mai darabok, de az atw-nek bővel jók, mivel szegényke még mindig a php4-el döcög. Személyes kedvenc: [link]
-
biker
nagyúr
válasz
Sixkiller6 #5384 üzenetére
leírtam, mi a hiba.
hiába írod be a fileba a text encodingot, ha a file win-1250-ben íródott -
Ateszzero
őstag
Jól van. Megnyugodtam. Tudtam én hogy jó helyre írok.
Akkor csak blöffölt a srác, az általad felsoroltak közül csak a fix IP cím van meg.
A srác nem dolgozik semmiféle ilyen szolgáltatónál, és nem is volt annyira durva dolog hogy akárki csak úgy kiadja a bizalmas infókat. Ráadásul nem ért ennyire az ilyen dolgokhoz, azt is megtudtam.Köszönöm a gyors segítséget !
További jó fórumozást mindenkinek -
cellpeti
nagyúr
Sziasztok!
Nem biztos,hogy jó helyen teszem fel a kérdést,de azért hátha...
Van tárhelyem az atw.hu-n. Tök üres. Olyat szeretnék,hogy csak sima könyvtárakat hozok létre, és azt szeretném, ha mutatna ezeket mikor ramegyek a címre. De nem mutat semmit. Ebben tudna valaki segíteni? -
zka67
őstag
A második oldalon a form végre még beszúrod annyiszor a következő kódot, ahány adatot át akarsz vinni:
<input id="data1" type="hidden" name="data1" value="'.$_POST['data1'].'" />
értelemszerűen a data1 helyére a mező nevét írod be.
Szerk: az id-t el is hagyhatod, ha nem hivatkozol rá.
-
dekac
tag
Sziasztok!
Szeretném kérdezni, hogy adott egy form...
Az első lapról postolok a másodikra adatot.
Hogyan tudnám azt megvalósítani, hogy az első oldalon felvitt adat a 3. oldalon is megjelenjen?Olvasgattam a globális változók után nem jutottam sokra.
Akár link is jó, én semmi értelmeset nem találtam.Előre is köszi!
-
Sixkiller6
őstag
ha adatbazis utf8 es html is, akkor az adatbázisadatok jól jelennek meg az oldalon, de a html kód tele van kérdőjelekkel illetve négyzetekkel (böngészőtől függően)
nyilván a html-lel van a gond, csak nem értem h mi. elvileg sima txt fájl (mármint nyilván php, de sima nyers szöveg)
szóval ezt most nem értem, h mit csinálok rosszul, pedig pár év php azért benne van az ujjaimban. igaz jópár éve nem nyúltam kódhoz. -
biker
nagyúr
válasz
Sixkiller6 #5381 üzenetére
a file maga nem utf-ben lett mentve, ha utf8 esetén a db jó, a html rossz.
konvertáld át -
L3zl13
nagyúr
válasz
Sixkiller6 #5381 üzenetére
Nem értem. Ha mind a HTML-ben, mind az adatbázisban UTF-8-ra állítod a kódolást, akkor hol lesznek problémák az ékezettel?
Mert ha jól értettem ezt javasolták.
-
Sixkiller6
őstag
válasz
Sixkiller6 #5369 üzenetére
vki? #5369
-
L3zl13
nagyúr
válasz
Ateszzero #5375 üzenetére
Ahogy mások is mondták az IP cím megszerzése trükkel lehetséges, vagy ha az oldal üzemeltetőjével olyan kapcsolatban van, hogy hozzáfér az adatokhoz. +Esetleg ha feltörte az oldalt, de azt meg csak nem hirdetné ilyen módon.
Az IP címből megtudni a nevet/címet: Hacsak nem fix IP, és nincs ahhoz a fix IP-hez bejegyzett domain név, akkor azzal az internetszolgáltatóval kell olyan kapcsolatban lennie, hogy megszerezhesse az infót, aki az IP-t szolgáltatja. Tehát még az sem elég, ha ő egy internetszolgáltatónál dolgozik, mert ezek titkos adatok, amit nem adnak ki csak úgy.
És persze, ha valami durva dologról van szó, akkor jogi úton bármihez hozzájuthat. De ez esetben a másik fél gondolom meg is érdemli, hogy kiadják az adatait.
-
Ateszzero
őstag
Én is erre gondoltam.
Ugyan nem dinamikus az IP címem, fix, de ahhoz szerintem nagyon zseninek kéne lenni hogy bárki egy hozzászóló emberkének le tudja kérni az IP-jét.
Esetleg ha rákattintok egy ilyen IP lekérő oldalra és azt elküldi neki e-mail-be vagy valamibe.
Azt hogy egyből nevet is társítson mellé és lakcímet, azt szerintem lehetetlen elérni akármilyen nagy hacker az illető. A szolgáltatóval meg nincs olyan kapcsolatba. -
D@ni88
addikt
valakinek van olyan kódja hogy legördülők közül lehet választani, évet, hónapot, és napot? persze úgy hogy év hónap nap helyesen, mégse legyen már február 31 napos
-
Ateszzero
őstag
Sziasztok.
Volna egy kérdésem, de nem találom a megfelelő topikot ahol megkérdezzem , így ha nem haragudtok, felteszem itt, ahogy olvasgatom a topikot lesznek itt is hozzáértő emberek vagy aki elirányít a megfelelő topikba.
Az lenne a kérdésem hogy egy 5mp.eu oldalon az egyik hozzászóló emberke fenyegetőzik hogy ő le tudja kérni a másik hozzászóló ip címét és ki tudja deríteni ki is ő valójában és ki lapul a nicknév alatt.
Ezt meg csinálni? Ha meglehet hogyan? Nem baj ha nem áruljátok el hogyan, de jó lenne ha legalább azt leírnátok lehetséges-e.
Itt egy ilyen oldal.[link]
A szóban forgó oldalt inkább nem linkelem, lennt a hozzászólók ip címeire gondolok .
Sok múlik ezen, kérlek titeket segítsetek.Engem fenyegetett meg valaki.
Előre is köszönöm mindenkinek. -
Tele von Zsinór
őstag
Ezzel egyben megkapod a rendeléseket a hozzájuk tartozó nevekkel:
SELECT r.*, f.Vnev, f.Knev FROM rendeles r INNER JOIN felhasznalok f ON r.userid = f.id;
A kódodban a hiba az, hogy a mysql_query visszatérési értékét írod ki, de az csak egy erőforrás-mutató (de hülyén hangzik magyarul, resource pointer), erre még meg kell hívnod egy mysql_fetch_arrayt, hogy megkapd az első sort egy tömbben.
-
D@ni88
addikt
<?php
{
$lek = "select * from rendeles";
$res = mysql_query($lek);
$kiir = "<form>";
$kiir .= "\n\t<table class=\"Etlap\">";
$kiir .= "\n\t\t<tr>";
$kiir .= "\n\t\t\t<th>id</th><th>pnev</th><th>rendeles_ideje</th><th>statusz </th><th>elkeszules_ideje </th><th>db</th><th>userid</th><th>nev</th>";
$kiir .= "\n\t\t</tr>";
while ($sor = mysql_fetch_array($res))
{
$kiir .=
"\n\t\t\t<td class=\"id\">".$sor["id"]."</td>".
"<td class=\"pnev\">".$sor["pnev"]." </td>".
"<td class=\"rendeles_ideje\">".$sor["rendeles_ideje"]."</td>".
"<td class=\"elkeszules_ideje\">".$sor["elkeszules_ideje"]." </td>".
"<td class=\"statusz\">".$sor["statusz"]." </td>".
"<td class=\"db\">".$sor["db"]." </td>".
"<td class=\"userid\">".$sor["userid"]." </td>";
$ize=$sor["userid"];
$lek2=mysql_query("select Vnev from felhasznalok where id=".$ize."");
$kiir .= $lek2;
$kiir.= "<td class=\"nev\">".$lek2." </td>";
$kiir .= "\n\t\t</tr>";
}
$kiir .= "\n\t</table>";
$kiir .="</form>";
echo $kiir;
}id pnev rendeles_ideje statusz elkeszules_ideje db userid nev
1 Adriatica pizza 2010-09-15 20:54:44 0000-00-00 00:00:00 0 1 5 Resource id #13
2 Capricco pizza 2010-09-15 20:54:44 0000-00-00 00:00:00 0 1 5 Resource id #14
3 Csirke pizza 2010-09-15 20:54:44 0000-00-00 00:00:00 0 4 5 Resource id #15
4 Adriatica pizza 2010-09-15 20:55:12 0000-00-00 00:00:00 0 1 5 Resource id #16
5 Capricco pizza 2010-09-15 20:55:12 0000-00-00 00:00:00 0 1 5 Resource id #17
6 Csirke pizza 2010-09-15 20:55:12 0000-00-00 00:00:00 0 4 5 Resource id #18
7 Csülkös pizza 2010-09-22 11:00:41 0000-00-00 00:00:00 0 1 6 Resource id #19
8 Adriatica pizza 2010-09-22 13:03:47 0000-00-00 00:00:00 0 1 6 Resource id #20
9 Miczo pizza 2010-09-22 13:20:12 0000-00-00 00:00:00 0 1 6 Resource id #21rendelés tábla useridjéből keresném vissza a felhasznalok táblából a Vezetéknevet, majd a keresztnevet, az felhasználok tábla id-je szerint. De shogy nem jön össze
valakinek van valami 5lete? -
cucka
addikt
válasz
TonTomika #5367 üzenetére
Például használhatod az explode() függvényt arra, hogy a sort a *-ok mentén szétbontsa, eredményül egy tömböt ad. Próbáld ki ezt a kódot, innen látni fogod, hogy milyen eredményt ad, ezzel lehet tovább dolgozni.
while ($line=fgets($file)){
$line_arr=explode('*', $line);
print '<pre>'.print_r($line, true).'</pre><br />';
} -
TonTomika
aktív tag
Sziasztok!
Nekem egy gyors kérdésem lenne, adott egy .txt fájl, benne szakdolis kérdőívhez kérdések-válaszok mindegyik külön sorba. Ahol új kérdés kezdődik oda tettem szintén új sorba egy csillagot.
Sikerült kiíratni a sorokat sortöréssel,
<?php
$file = fopen("test.txt", "r") or exit("Unable to open file!");
//Output a line of the file until the end is reached
while(!feof($file))
{
echo fgets($file). "<br />";
}
fclose($file);
?>...de hogy tudnám megadni neki, hogy a *-nál álljon meg, mert a következő kérdésnél onnan folytatná.
Néztem neten egy csomó mindent, de konkrétan egyáltalán nem értek a php-hoz így valószínű hogy átsiklottam a megoldás felett. (Kaptam egy félig-meddig jó kérdőíves űrlapot, csak át kell dolgoznom hogy jó legyen nekem is.)
Előre is köszi!
-
cucka
addikt
válasz
ArchElf #5364 üzenetére
Van az or meg az and, amelyek logikai operátorok, de ugyanezek használhatók vezérlési szerkezetként is.
Te a logikai operátorokról beszélsz, azokkal semmi baj. Mellesleg az általad írt kiértékelést lusta kiértékelésnek szokás hívni. A PHP a logikai operátoroknál mindig lusta kiértékelést használ, a mohó kiértékelés a legtöbb esetben megoldható bináris és/vagy operátorokkal.
Amiről én beszélek, az az if-el ekvivalens vezérlési szerkezetek. A következő két kód ekvivalens.
Első:
fgv1() and fgv2();
fgv1() or fgv2();Második:
if (fgv1()) fgv2();
if (!fgv1()) fgv2();Sőt, ezekből többet is össze lehet fűzni. A példa kódokban sokszor használt mysql_query(..) or die(); szerkezet pontosan ilyen vezérlési szerkezet.
-
ArchElf
addikt
(amúgy az or mellett az and is használható ehhez analóg módon, szerencsére nem túl elterjedt)
Miért szerencsére? Én úgy tudom, hogy mindkettő feltételes kiértékelést is végez; így az
a and b and c and d
csak az (a)-ig jut, ha az (a) hamis, míg a
!a or !b or !c or !d
is csak (a)-ig jut, ha (!a) igaz, mert mindkét esetben már egyértelmű a kifejezés...amúgy tényleg, mi ezzel a baj:
if (isset($_SESSION['belepett']) and ($_SESSION['belepett']))AE
-
cucka
addikt
Az include_once() beilleszt és feldolgoz fájlokat a program futása közben.
Apró pontosítás: nem a futás közben dolgozza fel, hanem előtte. A php-ban van preprocessor, ami összeszerkeszti a kódot (az include-olt fileokat egyszerűen bemásolja a megfelelő helyre), majd alap szintaktikai vizsgálatot is végez.amugy szerintem jobb az or die alkalmazása....kevesebb a kód de csak ugy mondtam
Szerintem ez a rövidített megoldás nem túl szép (amúgy az or mellett az and is használható ehhez analóg módon, szerencsére nem túl elterjedt). Másrészt normális szoftvernél a hibákat egy hibakezelő kapja el, tehát a kódban egyetlen die() sincs. -
nuendo
tag
válasz
Speeedfire #5359 üzenetére
de persze az a lényeg hogy érted a kódot
-
nuendo
tag
válasz
Speeedfire #5359 üzenetére
amugy szerintem jobb az or die alkalmazása....kevesebb a kód
de csak ugy mondtam
-
nuendo
tag
válasz
Speeedfire #5357 üzenetére
Az include_once() beilleszt és feldolgoz fájlokat a program futása közben. Ez hasonló az include() működéséhez, azzal a fontos különbséggel, hogy ha a már egyszer beillesztésre került kódot a PHP nem próbálja meg ismét betölteni.
nem is gondoltam hogy azzal lesz a gond -
Speeedfire
félisten
válasz
ArchElf #5358 üzenetére
Csak a legfontosabb dolgok:
<?php
//adatbázis kiválasztása
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "szapar";
//csatlakozás az adatbázishoz
mysql_connect($dbhost,$dbuser,$dbpass);
$con = mysql_connect($dbhost,$dbuser,$dbpass);
// megmondjuk, hogy milyen legyen a karakter kódolás
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
//kiválasztjuk a táblát
mysql_select_db($dbname);
$sel = mysql_select_db($dbname);
//ha nem sikerült csatlakozni kilépünk
if (!$con) {
die('Could not connect: ' . mysql_error());
}
?> -
ArchElf
addikt
válasz
Speeedfire #5357 üzenetére
De mi van a db.php-ban?
AE
-
nuendo
tag
válasz
Speeedfire #5353 üzenetére
if (!isset($_SESSION['belepett']) or ($_SESSION['belepett']!== true))
elég az isset hogy ha azt vizsgálod hogy nem létezik!$sql = "SELECT * FROM linkek_users ";
szerintem igy jobb hogy....
$sql = mysql_query "SELECT * FROM linkek_users " or die ("Hibás lekérdezés!");igy legalább megvizsgálod a lekérdezést is hogy jó-e
-
Speeedfire
félisten
Üdv!
Komoly biztonsági dologra hívták fel a figyelmemet. Ugyanis mindegy mit írok be a jelszó és felhasználó mezőkbe, beenged a rendszer, ami érdekes, hogy anno nem volt ilyen gondom. A cookiekra gondolok, hogy azok miatt lehet most ez.
A login.php tartalma.Valami ötlet?
-
nuendo
tag
válasz
Sixkiller6 #5350 üzenetére
igy van..állíts mindent UTF8-ra...mindenhol!
-
rt06
veterán
válasz
Sixkiller6 #5350 üzenetére
a legszebb termeszetesen az lenne, ha utf8-ra alakitanad a site-ot
ha ez nem megoldhato, akkor probald meg az alabbi sorokat atadni mysql_query-vel a szervernek kapcsolodas utan (ez nem biztos, hogy igy mukodni fog, sosem probaltam igy konvertalni):
SET CHARACTER SET 'ido-8859-2';
SET NAMES 'ido-8859-2';van meg egy lehetoseged, bar ez eleg korulmenyes, mert minden egyes adatbazisbol kapott ertekre vegre kell hajtani, ez pedig a mb_convert_encoding fuggveny hasznalata (utf8encode/decode nem jo, az latin1-be/-bol konvertal, az őű betuk hullamosak, illetve kalaposak lesznek)
-
Sixkiller6
őstag
jó reggelt,
kérdésem lenne (mint topic-nyitó
), évek óta nem nyúltam php-hez, most viszont egy kisebb családi céges igényt kéne kielégítenem. Következő a probléma:
php-s weblap, mysql a háttérben
a db-ből érkező adatok ékezetes betűi nem jelennek meg, pontosabban mindenféle krikszkrakzsszal. a html rész charset-je iso-8859-2, a mysql db utf8
phpmyadminon keresztül az adatbázisban lévő adatok jól néznek ki.bármi tipp? ha a böngésző karakterkódolását átállítom, akkor viszont a weblap ékezeteiből lesz mosolygós csilingelős kínai, de jók az adatbázis-adatok.
mit szúrok el?
ui: ja, egy másik régi projektemet gyorsan feltettem, az teljesen jól megy.
-
rt06
veterán
válasz
PazsitZ #5341 üzenetére
marmint ha azt a kodot egy nyito, illetve zaro php tag-gel beirod a formazoba, neked nem dob hibat?
es igen, egymasba agyazott switch-case alatt arra gondolok, es azert nem illik, mert switch case-be nem lenne szabad akkora kodreszeket irni, mint amekkorakat szoktam, abban csak egy fgv hivas, vagy ertekadas szabadna, hogy szerepeljen...elvileg (pmd is szokott hisztizni miatta)
-
Speeedfire
félisten
válasz
Sk8erPeter #5337 üzenetére
Értem, dolgozni lehet vele, módosítani is, de azt nem éppen díjazza a php, illetve nem szakszerű.
A switch-case-nél meg lehet adni másik adatot is?
pl ha 2 feltételem van, néha 3-4 is?
Mondjuk ha csak ajánlott akkor annyira nem is lényeges számomra, nagyon megszoktam a már az if-elseif-else ágakat.Látom egy egész lavinát indítottam el.
-
zka67
őstag
válasz
PazsitZ #5344 üzenetére
Szerintem zárjuk le ezt a vitát, lassan kénytelen leszek belátni, hogy igazatok van, vannak más módszerek is.
A példa nem volt a legjobb, arra szerettem volna kilyukadni, hogy nagyon sok programozó nem figyel oda, hogy mekkora gépigénye lesz a programjának. Hogy hogyan jutottam el ide a get-től, ne kérdezzétek
-
PazsitZ
addikt
Hozzászólva a $_GET, $_POST, $_COOKIE, $_REQUEST tömbökhöz. Valóban csak fenntartásokkal érdemes piszkálgatni ezeket a tömböket.
Azt alapból nem látom jó módszernek, a bemeneti adatokat rögtön escapeljük pl.
Ami megy az adatbázisba azt kell escapelni, ami pedig az outputra azt -speciális eseteket leszámítva- specialchar-al ellátni.Itt miért jobb, hogy átrakod a $_GET tömbbe?
A memória panaszodnak pont ellentmondasz jelen példával, mivel a változók "duplikálásával" pontosan a memóriát eszed.
De példa az általad írt sorra:if (isset($_REQUEST["page"])) $page = $_REQUEST["page"];
else $page = 0vagy
if (isset($_REQUEST["page"])) $page = (isset($_POST["page"])) ? $_POST["page"] : $_GET["page"];
else $page = 0Utóbbi esetben igaz megnyújtottam egy kemény if-el a futásidőt
(bár feltételezem előbb-később te is vizsgálnád létezik-e egyáltalán GET-ben page változód)
(bátorkodtam feltételezni, hogy nem raksz le page nevű cookiet) -
zka67
őstag
válasz
Sk8erPeter #5339 üzenetére
Én kérek elnézést, félreértettelek. Nem célom a kötekedés, nem is annak szántam.
Én továbbra sem értek veled egyet, hiszen a $_GET és $_POST tömbök megváltoztatása semmilyen hatással nincs a külvilág számára. Ugyanolyan változók mint a többi. Ha valamiért nem lehetne megváltoztatni őket, akkor a PHP fordítónak illene szólnia érte.
Mondok egy egyszerű példát:
[1] - [2] - [3] - ... - [20], ezek az oldalszámok, amikre kattintva ?page=n értéket küld get-el.
Ugyanezen a lapon hozzáadhatsz újat vagy módosíthatod a lista elemeit, ekkor post-al küldöd el a page értéket, hogy ugyanazon a lapon maradj. Azért, hogy a kód egyszerű legyen, miért ne használhatnám az alábbit?if (isset($_POST['page'])) $_GET['page'] = $_POST['page'];
Tudom, meg lehetne oldani egy plusz változóval és két if-fel és semmi különbséget nem vennék észre a sebességben, csak ezért tart lassan ott manapság a programozás, hogy egy egyszerű szorzótábla kiírásához is 128 magos 50 THz-es processzor kell 64 PB rammal, mert a programozók nem törődnek ilyen apróságokkal, "vegyen bele a tulaj ramot"-al elintézik a dolgot.
Jó, lehet ez nem a legjobb példa rá, de ez van, tudod miről beszélek.
-
SaNyEe
aktív tag
Hi!
Volna egy kisebb gondom.
Tetszőleges mélységű menü-t készítek, s ehhez tartozik egy tömb, ami objektumokat tárol.
A megjelenítés során egy rekurzív függvény írja ki a menüpontokat, egész addig hívja újra önmagát amíg a foreach-ből kapott elem tömb. Amennyiben nem az, akkor az li tageket kirakja és közéteszi az objektumból a kívánt információt.Szerkezetileg a tömb így néz ki:
$tomb[id] = objektum (ez a szülő)
$tomb[id] = másik objektum (szintén szülőelem)
$tomb[szulo_id][id] = egy szülőobjektum leszármazottjaAmikor statikusan kézzel létrehoztam egy ehhez hasonló példatömböt akkor minden szépen működött.
Amikor megírtam a tömb feltöltő algoritmusát akkor már nem jártam ekkora sikerrel. Hibaüzenet semmi, azonban az első olyan elemnél ami nem szülő szintű objektumot tárol egyszerűen megszűnik a feltöltés, s ugrunk a kiiratáshoz.
Az id-k és a szülőid-k nem tudják átfedni egymást, mindig egyediek, nem értem mi a probléma.
Teszteléskor csináltam olyat, h a gyermekekből kivettem a szülő_id-t és sorszámmal helyettesítettem akkor ment, akkor is ment, ha a szulo_id-t és az id-t kicseréltem, ekkor viszont nem tudom bejárni a kapott fát úgy ahogy a megjelenítésben szükséges lenneMegoldási javaslat?
-
rt06
veterán
sajnos az alabbi kodon elhasal
$string = "prefix_{$array["index"]}_suffix";
hibauzenet: Parse error, unexpected T_STRING(index)!
eclpise-hez lehet meg ilyet beallitani, de az meg nem kezeli normalisan az egymasba agyazott switch-case szerkezetet (tudom, ne agyazzam egymasba, nem illik)
-
Sk8erPeter
nagyúr
Bírom, hogy mindig az ilyen rendkívül fontos dolgokba kötsz bele...
(de ha a belekötésre reagálok is, az már nem érdekel) Miért nem érdemben szólsz hozzá?
Most speciel arra gondoltam, hogy ha mondjuk egy foreach-csel végigmászkál, és bizonyos dolgokat ellenőriz a $_POST tömbön (csak példa, ne keress ebben is hibát, ha kérhetem), akkor végül is tök felesleges másik változónak átadni, de a lényeg az volt, hogy az ilyen bemeneti értékeket lehetőleg ne módosítsa...erről is sikerült elterelned a figyelmet. Csak nem nagyon értem, mi a célod a kötekedéssel. -
zka67
őstag
válasz
Sk8erPeter #5337 üzenetére
Mért kéne végigrohangászni foreach-csel? Egyszerűen
$input = $_POST;
és kész.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #5336 üzenetére
Az nem baj, ha dolgozol vele, felhasználod az értékeit (nem muszáj átadni másik változónak, sőt, sokszor felesleges - pl. végigrohangászhatsz egy foreach ciklussal a $_POST értékeken, átadni az értékeket másik változónak meg csak felesleges időveszteség (már amennyiben ez egyáltalán érzékelhető ideig tart)) csak az a furcsa, ha módosítod. Én nem tenném, persze mindenki azt csinál ezekkel a változókkal, amit csak akar.
Most megtaláltam cucka egy régi hsz.-ét, amire emlékeztem, ahol ő is pontosan ugyanerről ír, csak jóval több hozzáértéssel, mint ahogy én vakerászok: [link]A switch nagyon egyszerű, és megkímél a sok-sok if-elseif-else ág írogatásától, pl. a Te kódod esetén jelenleg így néz ki:
if-elseif-else megoldással:
if ($_POST['tipus'] == 'navigacio') {
// ...
}
elseif ($_POST['tipus'] == 'tartalom') {
// ...
}
elseif ($_POST['tipus'] == 'felhasznalo') {
// ...
}
// ...
else{ //ha egyik sem a fentiek közül
// ...
}ugyanez switch-case megoldással:
switch($_POST['tipus']){
case 'navigacio':
//...
break;
case 'tartalom':
//...
break;
case 'felhasznalo':
//...
break;
//...
default: //ha a fentiek közül egyikkel sem egyezik meg (ez az if-elseif-else ágból az utolsó, az else ág)
//...
break;
}(amúgy most nézem, nálad nincs az if-elseif után egy végső else, ami arra vonatkozik, ami egyik korábbi feltételre sem igaz, persze nem kötelező, de nem árt)
Szerintem legalábbis utóbbi átláthatóbb, jobban egységbe foglalja a feltételvizsgálatot.
Ezek tényleg csak tanácsok, nem kötekedés.
------
(#5324) nuendo: tényleg egész szépen elrendezi a kódot ez a PHP Formatter.
-
Speeedfire
félisten
válasz
Sk8erPeter #5333 üzenetére
nem veszem zokon, minden ötlet/tanács jól jöhet
amilyen leírásokat eddig olvastam ott nem adták át másik változónak, mindig a get, post adatokkal dolgoztak
néha átadom egy ideiglenes változónak az értéket, de ezt általában csak akkor amikor sok változóm van már
a switchet eddig sem értettem, ezért azt soha nem is használtam még
nekem átlátható a kód szerencsére, ha régebbi munkámra mondtad volna akkor megértettem volna mert ott én sem látom már át néha, de a mostaniakat már igen és könnyen meg is találom, hogy mi mit csinál -
Sk8erPeter
nagyúr
Az a "bajom", hogy ez a "nyomorult" változótípus olyan változótípus, aminek a $_POST, $_SERVER, $_REQUEST, stb. változókhoz hasonlóan nem illik értéket adni, mivel ez a szkript bemeneti adata, és ha hozzányúlkálsz, akkor adott esetben előfordulhat, hogy saját magaddal szúrsz ki. Akkor már érdemes ezeket a bemeneti adatokat átadni egy másik változónak, és azt már tetszőlegesen módosíthatod. Persze megteheted, hogy ezeket a bemenetként kapott adatokat is módosítod, de azt úgy nevezik, hogy gányolás.
Ez hasonló ahhoz, mintha mondjuk C-ben az argc, argv változókat módosítanád. Az is gányolás. -
zka67
őstag
válasz
Sk8erPeter #5332 üzenetére
Mi bajod van vele? Hiszen az is csak egy nyomorult változó...
-
Sk8erPeter
nagyúr
válasz
Speeedfire #5313 üzenetére
a rengeteg elseif helyett megoldhattad volna switch-csel, így nagyon átláthatatlan
szerk.: amúgy bocs a kötekedésért, csak rég voltam a topicban, kicsit visszaolvastam, és szemet szúrt ez meg az előző -
Sk8erPeter
nagyúr
válasz
Speeedfire #5251 üzenetére
Ez aztán jó ronda megoldás...
($_GET változónak értéket adni? Hmm...
)
-
Speeedfire
félisten
válasz
fordfairlane #5330 üzenetére
hiszek neked
-
fordfairlane
veterán
válasz
Speeedfire #5329 üzenetére
Escape van, már a legelején, ez csak egy kódrészlet volt.
Hát az totál rossz, ebben a formában nem escapel semmit. Ha már mindenáron a $_POST tömböt előre kiescapelni akarod:
$_POST = array_map('mysql_real_escape_string',$_POST);
-
Speeedfire
félisten
válasz
fordfairlane #5328 üzenetére
Escape van, már a legelején, ez csak egy kódrészlet volt.
A funkcció tényleg jó lehet mert igazából ugyan azok vannak csak más értékekkel.
A harmadik részt nem teljesen értem, mire gondolsz.
-
fordfairlane
veterán
válasz
Speeedfire #5325 üzenetére
$sqlJelszo = mysql_query("select jelszo from szapar_felhasznalo where fnev='".$_POST['fnev']."' jelszo='".$_POST['jelszo']."' ");
if (!$sqlJelszo) {
die('Hiba: ' . mysql_error());
}Nagyon csúnya ez így. Először is használj saját függvényt, amelyik lefuttatja a query-t, és kiírja az sql hibát.
function sql_query($q) {
$res = mysql_query($q);
if (mysql_errno()) {
die('Hiba: ' . mysql_error());
}
return $res;
}Másrészt pedig nem használsz escapelést a szöveges tartalomnál, ami súlyos hiba.
$query = 'select jelszo from szapar_felhasznalo';
$query .= ' where fnev="'.mysql_real_escape_string($_POST['fnev']).'"';
$query .= ' AND jelszo="'.mysql_real_escape_string$_POST['jelszo']).'"';
$jelszo_res = sql_query($query);Harmadrészt, és ez csak egy javaslat: Már most szedd szét az action mappinget magától az actionöktől. Tehát az if-elseif-else ág csak függvényeket hívogasson, mást ne csináljon, és külön függvényekbe rakd az egyes funkciók implementációját, különben makaróniként fog tekeregni nemsokára a kód a rengeteg globális változójával, amik egymást írják felül.
Szerk: Ja igen, kimaradt az " AND ", tényleg. Javítom én is
-
wis
tag
válasz
Speeedfire #5325 üzenetére
WHERE 'valami' AND 'valami'
Szóval: "select jelszo from szapar_felhasznalo where fnev='".$_POST['fnev']."' AND jelszo='".$_POST['jelszo']."' "
-
Speeedfire
félisten
válasz
Tele von Zsinór #5322 üzenetére
így már majdnem tökéletes is, viszont a felhasználónál hibát jelez az sql, akár h nézem nem látom a hibát
elseif ($_POST['tipus'] == 'felhasznalo') {
$tipus = 'szapar_felhasznalo';
$ertek = "fnev='".$_POST['fnev']."', email='".$_POST['email']."', jog='".$_POST['jog']."'";
$sqlJelszo = mysql_query("select jelszo from szapar_felhasznalo where fnev='".$_POST['fnev']."' jelszo='".$_POST['jelszo']."' ");
if (!$sqlJelszo) {
die('Hiba: ' . mysql_error());
}
if (mysql_num_rows($sqlJelszo) == 0) {
$ertek .= ", jelszo='".$_POST['jelszo']."' ";
}
}Az alap elv az h ha nem frissítem a jelszót, akkor azt békén hagyja, ellenkező esetben feltölti. Viszont hibát ír ki, csak nem tudom h feltöltéskor vagy lekérdezéskor. Azt lehagytam, hogy a jelszót miatt panaszkodik.
Hiba: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'jelszo='hash-kod" at line 1
nuendo: köszi, ahogy lesz egy kis időm leglesem -
nuendo
tag
válasz
Speeedfire #5321 üzenetére
-
Tele von Zsinór
őstag
válasz
Speeedfire #5321 üzenetére
Tegyél idézőjelet minden érték köré, lásd `mezőnév` = "érték", azt látom, legalább a mysql_real_escape_string() hívás megvan. Számok köré is, ha a felhasználótól kapod.
-
Speeedfire
félisten
válasz
Tele von Zsinór #5319 üzenetére
Fentebb linkeltem a forrást.
nuendo: megköszönném -
nuendo
tag
válasz
Speeedfire #5318 üzenetére
van egy jó kis oldal ilyen forráskódelemző....csak sajna nem tom a címét..este othon leszek és már tudni fogom, de létezik ilyen!!
-
Tele von Zsinór
őstag
válasz
Speeedfire #5318 üzenetére
Első blikkre rögtön gyanús, hogy nincsenek idézőjelek a string értékeid körül. Mutasd a queryt, ami a hibát okozza.
-
Speeedfire
félisten
Itt van egy hiba jelenség például:
Postolt adatok:
A hiba:
Hiba: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '!, tipus=tartalom, datum=2010-08-27 19:21:00, fid=1, rovid=
Kezdő post<' at line 1Van valami olyan editor amiben ki is írja a php szintaktikai hibákat?
-
biker
nagyúr
válasz
Speeedfire #5313 üzenetére
pedig hasonlóan csinálnám én is
-
nuendo
tag
válasz
Speeedfire #5313 üzenetére
a lényeg először is hogy felejts el azt a html táblázatot, mert ha dinamikusan akarsz bele iratni dolgokat..akor majd a php print vagy echo-ba ird ki!
-
biker
nagyúr
válasz
Speeedfire #5311 üzenetére
ha nem mondod el mi kell, hogy segítsek?
-
biker
nagyúr
válasz
Speeedfire #5309 üzenetére
amennyre értem, mit akarsz, lehet hát.
-
Speeedfire
félisten
Dinamikusan lehet egy tábla adatait frissíteni?
pl van egy sablon php fájlom, ahova postolom az adatokat, 2 állandó van az id és a tábla neve, a többi mindig változik
Ezt meglehet valahogy oldani? Mondjuk a $_POST-ot feldarabolom és azt illesztem be?
Csinált már ilyet valaki? -
biker
nagyúr
<table border="1" cellpadding="1" cellspacing="0">
<tr><td align="center" valign="top"></td><td align="left" valign="center"></td><td align="center" valign="bottom"></td><td align="right" valign="center"></td></tr>
<tr><td colspan="2" align="left" valign="top"></td><td bgcolor="blue"></td><td align="center" valign="center" bgcolor="blue"><font color="white">123</font></td></tr>
<tr><td rowspan="2" bgcolor="red"></td><td></td><td colspan="2" align="right" valign="bottom"></td></tr>
<tr><td align="center" valign="center" bgcolor="yellow">456</td><td bgcolor="yellow"></td><td bgcolor="yellow"></td></tr>
</table>nem próbáltam, de sztem jó
-
Speeedfire
félisten
válasz
Speeedfire #5304 üzenetére
stornó
-
whited
addikt
hello
valaki megtudná csinálni nekem ezt a táblázatot editplusba úgy 8perc alatt ?
[link] -
Speeedfire
félisten
Kicsiny katalógus oldalam tovább fejlődött így a követelmény is nagyobb lett.
Beépítettem az input mező alá egy karakter számlálót, ami a leütött karaktereket kiírja egy mezőbe. A tartalom adatbázisba illesztéséhez 500 karakterre van szükség.
A mező még csak 466-on van de már így is el fogadja, gondoltam a js rosszul számolt, de nem a notepad-ba bemásoltam és megfelelő.
Szóval akkor csak a php oldalon lehet a hiba.$megszamol = strlen($_POST['szoveg']);
elseif ( $megszamol < 500 ) {
echo '<div id="hiba"><p>Írj még egy kicsit hozzá, kicsit kevés!</p></div>';
}Feltöltés után azt írja ki az
echo $megszamol hogy 466 karakterValami tipp?
Új hozzászólás Aktív témák
- Intel Core i7 6700K / GTX 1660TI / 16GB DDR4 RAM / 500 GB SSD konfig eladó
- Samsung Galaxy S23 128GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy A53 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Megkímélt állapotú Xbox Series X 1TB eladó. Kitisztítva és újrapasztázva!
- Gamer PC - i5 13400F, GTX 1080ti és 16gb DDR5
- Xiaomi Redmi 13128GB Kártyafüggetlen 1Év Garanciával
- Telefon felvásárlás!! iPhone 16/iPhone 16 Plus/iPhone 16 Pro/iPhone 16 Pro Max
- AKCIÓ! Apple MacBook Pro 13 2022 M2 8GB 256GB SSD garanciával hibátlan működéssel
- Xiaomi 11T Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Azonnali kézbesítés az év bármely pillanatában
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest