Hirdetés

2024. május 4., szombat

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  PHP programozás (kiemelt téma)

Hozzászólások

(#1801) Louloudaki válasza vancha2 (#1797) üzenetére


Louloudaki
aktív tag

vegyél fel egy tömböt ékezetes betűkkel (mit), meg egyet hogy mi az ékezetlen megfelelője (mire), aztán str_replace(mit,mire) és úgy vizsgáld utána a szót. talán ez jó lesz így.

(#1802) oroltbors


oroltbors
csendes tag

Sziasztok!
Olyan formot szeretnék csinálni, ahol a bemenő numerikus adat több különálló blokkra van osztva, de balról jobbra tab nélkül haladhatnánk, tehát ha betelt a bal oldali, automatikusan átugrik a következőbe, mint installkor a serialoknál. Bogarásztam, de sehol nem találtam ilyet.

"aki már megfordult bármelyik magasabb dimenzióban, az tudja, hogy azokat egy nagy szemét pogány bagázs lakja, akiket egyszerűen ki kéne nyírni és kásává aprítani, és ez megvalósítható lenne, ha valaki kitalálná, hogy lehetne a valóságra merőlegesen rakétákat kilőni." (Douglas Adams)

(#1803) vancha2 válasza oroltbors (#1802) üzenetére


vancha2
aktív tag

Ez nem PHP, hanem JavaScript. Csinálj egy függvényt, ami, figyeli az input mezőnek a hosszát. Ha elérte a beállított hosszt, átrakod a focust a következő mezőre. Ja, és ezt a függvényt a mezők OnKeyUp eseményébe kellene berakni, így minden beírt karakter után lefutna.

(#1804) Gus


Gus
aktív tag

Uraim, kis segítséget szeretnék kérni.
PHP/HTML oldalról van szó.
Hogyan tudom megoldani az oldal újratöltése nélkül, hogy egy változónak úgy adjak értéket, hogy legördülő menüből választom ki az előzetesen megadott értékeket, mintha <select> <option>tag lenne.
Konkrétan azt szeretném megoldani, hogy a kereső kulcsot egy listából lehessen kiválasztani.
Elnézést,ha túl láma a kérdés, kezdő vagyok. :R
Előre is köszönöm a segítséget.

(#1805) L3zl13 válasza Gus (#1804) üzenetére


L3zl13
nagyúr

Mondjuk egy <select> <option> taggal? :F

Milyen keresőről van szó? Az oldalon belül akarsz keresni?
Ha nem akkor úgyis vissza kell küldened a kiválasztott értéket, azaz vagy újratölteni az oldalt vagy betölteni egy másikat.

Aki hülye, haljon meg!

(#1806) vancha2 válasza oroltbors (#1802) üzenetére


vancha2
aktív tag

oroltbors!

Unatkoztam, és összedobtam egy olyan sorozatszámos űrlapot, szerintem ilyenre van szükséged: http://vcsabi.extra.hu/sn.html
Remélem jó, mert még egyet nem lesz kedvem összedobni neked... :P

Gus!

Ha jól értem, betöltődik egy oldal, a júzer kiválasztja a listából az elemet, és ezután az egyik php változónak akarod beállítani az értéket a lista kiválasztott eleme alapján? A PHP szerveroldali szkript, tehát az oldal betöltődése után már nem csinálhatsz vele semmit. A JavaScript az, ami így az oldal betöltődése után a böngészően fut le.
Ha mindenképp PHP változót szeretnél így módosítani, akkor azt lehet, hogy AJAX-szal megteheted, de nem vagyok benne biztos (az AJAX-ot nem igazán vágom :U )

[ Szerkesztve ]

(#1807) Gus válasza L3zl13 (#1805) üzenetére


Gus
aktív tag

Köszönöm a választ. Tehát mindenképp az oldal újratöltése szükséges.
Amúgy SQL adatbázisban akarok keresni, csak azt szeretném, hogy a user kiválaszthassa egy legördülű listából, hogy az adatbázis melyik mezőiben keresse az adott kifejezést.
Sejtettem, hogy így lesz. :B

(#1808) Gus


Gus
aktív tag

Tökre jól érted... :K
Köszi neked is a választ.
Az AJAX-ba nem folynék bele, mert fogalmam sincs róla, mmondjuk még a PHP-ről is kevés. :B

(#1809) drShaman


drShaman
aktív tag

Van nekem egy ilyen SQL kérésem:

mysql_query("INSERT INTO tabla (cim, tartalom) VALUES ('$cim', '$tartalom')");

Az a baj vele, hogy, ha a $tartalom változóba " ' " (aposztróf) kerül, akkor meghal, nem tárol el semmit. Mit lehet ez ellen tenni?

(#1810) Louloudaki válasza drShaman (#1809) üzenetére


Louloudaki
aktív tag

tedd a változókat mysql_real_escape_string()-be

(#1811) drShaman válasza Louloudaki (#1810) üzenetére


drShaman
aktív tag

Oké. A belépésnél is azt használom védekezés gyanánt.

Ha már belépés... brute force ellen mit tudok tenni? Gondoltam arra, hogy naplóznám a belépési kísérleteket, és 3 rossz kísérlet után letiltanám X időre. Valami jobb megoldást nem tudsz rá esetleg?

(#1812) cucka válasza drShaman (#1811) üzenetére


cucka
addikt

belépés ellenőrzésénél várj egy kis időt (pl. egy másodperc bőven elég), ezzel a brute force törések időszükségletét nagyságrendekkel megnövelted.
a letiltogatós dolgot szerintem nem kell erőltetni, mert nem nagyon tudod mi alapján letiltani a felhasználót. (a cookie-kat törölni nem nagy ügy, ip alapján pedig megint nem szerencsés, előfordul, hogy bizonyos helyekről nagyon sok ember ugyanarról az ip-ről megy ki a netre, pl. kollégiumok).

(#1813) HummeRC


HummeRC
senior tag

Sziasztok.

Magamtól próbálok php-t tanulni, de most elakadtam egy (szerintem) alap problémával.

A megoldandó feladat az lenne, hogy a php egy emailt küld nekem, egy tárhelyen található fájl linkjéről. $link változó. A $link beolvasása és képernyőre kiíratása működik.

A probléma az, hogy a mail küldő form nem tudja értelmezni a $link értékét, ezért nem is lesz benne a mail tartalmában. Anélkül küldi el a mailt.

Gyanítom a $link tartalmát konvertálnom kellene szöveggé és itt akadtam el. :B

Tud valaki segíteni?

(#1814) mm00 válasza HummeRC (#1813) üzenetére


mm00
aktív tag

Másolj kódot! :)

(#1815) HummeRC válasza mm00 (#1814) üzenetére


HummeRC
senior tag

Szia.

Milyen kódot szeretnél hogy bemásoljak? Szabvány email küldő form, ami a neten található sok felé. Ez a rész hibátlanul megy. A $link érték begyűjtése is megvan. Ezt az értéket kellene nekem hagyományos szöveggé alakítanom, de nem ismerem a "tetszőleges tartalom-hagyományos szöveggé konvertálás" parancsát.

Erre gondolok:

$cimzett = "sajat@email.cimem";
$targy= "fájl linkje a tárhelyen";
$link2 = szöveggé konvertálom ($link változó tartalmát);
mail ($cimzett, $targy, "A következő üzenet érkezett a weblapodról: \r\n".$link2);

A mail-t elküldi, meg is érkezik, de a $link2 tartalma nem lesz benne, hanem egyszerűen kihagyja, mintha ott sem lenne. Ebből gondolom, hogy változóként nem tudja értelmezni, sima szöveg kellene belőle.

Vagy rosszul gondolom? :F

[ Szerkesztve ]

(#1816) mm00 válasza HummeRC (#1815) üzenetére


mm00
aktív tag

Rosszul gondolod. Örülnék, ha a teljes fáljt bemásolnád. A formot is!

(#1817) HummeRC válasza mm00 (#1816) üzenetére


HummeRC
senior tag

Úgy látom nehezen értjük meg egymást. A kérdéses problémára vonatkozó kód ennyi. AZ oldal többi része teljesen mássel foglalkozik.

Az email küldő form innen van a fórumról, ami már korábban elhangzott.

Az email küldő form-ból nekem mindössze ennyire van szükségem amit bemásoltam az előbb és működik is ezen mód. Csupán a $link2 értéke marad le valamiért a végéről.

Nekem csak egy parancssor kellene, ami $link értékét átkonvertálja hagyományos statikus szöveggé $link2 néven. Ennyi. Nem kell helyettem megoldani a problémát, csak azt sem tudom milyen néven keressem a parancsot. :F

Most már világosan fejeztem ki magam? ;)

(#1818) cucka válasza HummeRC (#1815) üzenetére


cucka
addikt

Abban a kódban a harmadik sor mi a túró akar lenni?
(php-t pedid úgy soha nem fogod rendesen megtanulni, ha csak másolgatod a kódokat anélkül, hogy megértsd, hogyan is működnek..)

(#1819) cucka válasza HummeRC (#1815) üzenetére


cucka
addikt

duplán ment

[ Szerkesztve ]

(#1820) vancha2 válasza HummeRC (#1815) üzenetére


vancha2
aktív tag

$link2 = szöveggé konvertálom ($link változó tartalmát)

Most ez a "szöveggé konvertálom" valami függvény neve, vagy micsoda? (Lehet, hogy én vagyok a hülye, de ezt nem igazán értem)

(#1821) mm00 válasza vancha2 (#1820) üzenetére


mm00
aktív tag

Nincs ilyen. A változóban tárolt stringet fogja neked a mailben tenni. A változódban nincs érték, ezért nem küld semmit mailbe. printeld ki a változót, nem fog semmit írni. Pont ezért kértem, hogy a formod is másold be, meg azt is hogy kapsz adatot form-ból.

(#1822) mm00 válasza HummeRC (#1817) üzenetére


mm00
aktív tag

<?php
if($_POST[link] != ''){
$cimzett = "sajat@email.cimem";
$targy= "fájl linkje a tárhelyen";
$link2 = $_POST[link];
mail ($cimzett, $targy, "A következő üzenet érkezett a weblapodról: \r\n".$link2);
print "sikeresen elküldve!";
}

<form method="POST">
<input name="link">
</form>

(#1823) HummeRC válasza mm00 (#1821) üzenetére


HummeRC
senior tag

Ment privát. ;)

cucka: Köszönöm a hsz-t. Magam is tudom, hogy nem fogom 100%-ban elsajátítani a programnyelv minden csínját-bínját. Nem is cél, hisz nem ebből keresem a betevőt. Ez csak hobby a részemről, ahoz pedig elég ez a szintű tanulás. ;]

Egy megvalósítási ötletnek jobban örültem volna, hogy legalább tudjam milyen kulcsszóra keressek tovább...

(#1824) mm00 válasza HummeRC (#1823) üzenetére


mm00
aktív tag

Ment válasz. Az a gáz, hogy a problémád amire te várod a választ nem létezo dolog. Tulajdonképpen nem az a gond amit te akarsz csoinálni, hogy szöveggé konvertálod ezazamaz. Nincs kulcsszó erre...

Olyan mintha kiírná hibának, hogy nincs a sor végén ; és kulcsszót várnál rá :D

(#1825) HummeRC válasza mm00 (#1824) üzenetére


HummeRC
senior tag

Vissza küldtem a választ, kifejtve a problémát.

Előbb-utóbb csak megértjük egymást. ;)

(#1826) ttower válasza ttower (#1800) üzenetére


ttower
aktív tag

erre valaki valamit?

It's not a bug until it is in production. | Wake up and smell the ashes.

(#1827) mm00 válasza ttower (#1826) üzenetére


mm00
aktív tag

iconv("UTF-16", "UTF-8", "This is a test.");

próbáld meg még ezt

(#1828) ttower válasza mm00 (#1827) üzenetére


ttower
aktív tag

egy csomó kínai karakter.
周楳⁩猠愠瑥獴⸠얱얰쎡쎁쎳쎓양얐

It's not a bug until it is in production. | Wake up and smell the ashes.

(#1829) mm00 válasza ttower (#1828) üzenetére


mm00
aktív tag

Próbáld ki ezt. Több 5letem nincs :(

function utf16_to_utf8($str) {
$c0 = ord($str[0]);
$c1 = ord($str[1]);

if ($c0 == 0xFE && $c1 == 0xFF) {
$be = true;
} else if ($c0 == 0xFF && $c1 == 0xFE) {
$be = false;
} else {
return $str;
}

$str = substr($str, 2);
$len = strlen($str);
$dec = '';
for ($i = 0; $i < $len; $i += 2) {
$c = ($be) ? ord($str[$i]) << 8 | ord($str[$i + 1]) :
ord($str[$i + 1]) << 8 | ord($str[$i]);
if ($c >= 0x0001 && $c <= 0x007F) {
$dec .= chr($c);
} else if ($c > 0x07FF) {
$dec .= chr(0xE0 | (($c >> 12) & 0x0F));
$dec .= chr(0x80 | (($c >> 6) & 0x3F));
$dec .= chr(0x80 | (($c >> 0) & 0x3F));
} else {
$dec .= chr(0xC0 | (($c >> 6) & 0x1F));
$dec .= chr(0x80 | (($c >> 0) & 0x3F));
}
}
return $dec;
}

(#1830) ttower válasza mm00 (#1829) üzenetére


ttower
aktív tag

tökéletes. köszönöm szépen.

It's not a bug until it is in production. | Wake up and smell the ashes.

(#1831) ttower válasza ttower (#1830) üzenetére


ttower
aktív tag

mégse.

Notice: Uninitialized string offset: 81 in c:\program files\easyphp1-8\www\teszt.php on line 39

Notice: Uninitialized string offset: 1 in c:\program files\easyphp1-8\www\teszt.php on line 24

22. sorban van a function.

It's not a bug until it is in production. | Wake up and smell the ashes.

(#1832) mm00 válasza ttower (#1831) üzenetére


mm00
aktív tag

Megfelelő amúgy a kimenete? Mert ha igen, akkor ezzel ne foglalkozz, tegyél az abban találhato fuggvények elé @-t és kész.

(#1833) VladimirR válasza ttower (#1831) üzenetére


VladimirR
nagyúr

jo a bemenet? a masodik hiba arra utal, hogy nincs masodik (1-es indexu) eleme a string-nek (1 byte hosszu string)

az elso pedig, ha jol ertem, akkor fordulhat elo, ha nem szabvany utf16 a bemenet
pontosabban ez csak tipp, az utf16-ot nem ertem, de a fenti kod alapjan mindig parosz szamu byte-bol kellene, hogy alljon, mig az elso hiba akkor fordul elo, ha paratlan szamu byte-bol allo string-et adsz a fuggvenynek

(#1834) VladimirR válasza mm00 (#1832) üzenetére


VladimirR
nagyúr

auuuu

(#1835) ttower válasza VladimirR (#1833) üzenetére


ttower
aktív tag

a bemenet tuti hogy hosszabb mint 1 byte. egy fájlból olvas be sorokat. a fájl UCS-2 Little Endian kódolású.

It's not a bug until it is in production. | Wake up and smell the ashes.

(#1836) VladimirR válasza ttower (#1835) üzenetére


VladimirR
nagyúr

csinalsz vele mast is elotte? at tudnad esetleg dobni a file-t?

masik dolog: a ket figyelmeztetest egyszerre dobja? mert ha igen es ebben a sorrendben, akkor gondolom egynel tobbszor hivod meg a fuggvenyt
miert?

(az masodik notice utan a fuggveny nem csinal semmit, az elso feltetel utolso agan kilep, s az eredeti string-et adja vissza
az elso hibanal pedig jo lesz, de big endian eseteben az utolso karakter vagy hianyozna, vagy hibasan jelenne meg)

[ Szerkesztve ]

(#1837) ttower válasza VladimirR (#1836) üzenetére


ttower
aktív tag

egyszerre dobja. egy while ciklusban van. a fájl sorai az adatbázis egyes sorai lennének később ha sikerülne konvertálni és berakni.

átküldtem a php és a konvertálandó fájlt.

It's not a bug until it is in production. | Wake up and smell the ashes.

(#1838) VladimirR válasza ttower (#1837) üzenetére


VladimirR
nagyúr

a beolvasasnal van a gond, szam szerint ketto is

elso bibi:
az elso sor 84 byte kellene, hogy legyen, viszont var_dump tanulsaga szerint csak 83 byte hosszu a string
gondoltam dobok ra egy trim-et, hatha a sorveg levagasaval eszhez ter, viszont igy meg 79 byte lesz 80 helyett
mindket esetben egy lezaro \x00 hianyzik, emiatt kapod a 39. sorra hivatkozo hibat
ez kikerulheto lenne pl ugy, hogy beolvasas utan (fgets) hozzateszed ezt a hianyzo karaktert a string-hez

a masik bibi:
a konvertalo fuggveny a string elejen levo bom (byte order mark) karakterek alapjan tudja, hogy BE, vagy LE kodolassal allunk szemben, s ez a karakterpar csak a file legelejen talalhato meg, a tobbi sor elejen nem

a johir, hogy mindket gondot elintezheted egyszerre, ha beolvasashoz inkabb a file_get_contents fuggvenyt hasznalod, majd egyben konvertalod az egesz szoveget, s utana bontod csak sorokra (vagy akar hasznalhatsz regularis kifejezeseket is a szukseges adatok kinyeresehez, ugy talan meg egyszerubb lenne)

(#1839) ttower válasza VladimirR (#1838) üzenetére


ttower
aktív tag

megnéztem amit küldtél. most már csak a ŐőűŰ karaktereket nem konvertálja. helyettük ? lesz.

[ Szerkesztve ]

It's not a bug until it is in production. | Wake up and smell the ashes.

(#1840) drShaman


drShaman
aktív tag

Van egy oldal, ahonnan adatokat kéne lekérdeznem így:

<form action="http://www.xyz.hu/vmi.php" method="get">
<input type="text" name="nev" lenght="13" />
<input type="submit" value="Elküld" />
</form>

Az oldal, amin a form van UTF-8, amelyik php-t meghívom, az ISO-8859-1. És így nem találja meg a keresett nevet. Mit lehet ilyenkor csinálni? A meghívott php-be nem tudok belenyúlni. Hogy kéne átkonvertálni?

(#1841) drShaman válasza drShaman (#1840) üzenetére


drShaman
aktív tag

Így módosítottam, és most megy:

<form accept-charset="iso-8859-1" action="http://www.xyz.hu/vmi.php" method="get">

(#1842) VladimirR válasza ttower (#1839) üzenetére


VladimirR
nagyúr

erdekes, nalam jo minden (bar en nem pakolom adatbazisba, hanem kiiratom)

(#1843) sonar


sonar
addikt

Sziasztok

Azt szeretném kérdezni, hogy ti milyen progit ajánlatok php-s oldal szerkesztésére?
Túl a notepad++ ill a putrawriter-en kívül. Mostanában elég sokat kell gépelnem és szeretném valahogy növelni a produktivitásomat.
(én csak egy amatőr vagyok, de pár dologban szeretnék előbbre lépni)
THX :R

A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!

(#1844) vancha2 válasza sonar (#1843) üzenetére


vancha2
aktív tag

phpDesigner 2008 - ebben talán nem kell annyit gépelni (mondjuk én még soha nem használtam :U )

(#1845) Tele von Zsinór válasza sonar (#1843) üzenetére


Tele von Zsinór
őstag

PhpEd-et használok egy ideje, notepad++-ról váltottam, minőségi ugrás :)

(#1846) sonar


sonar
addikt

Hogyan tudom azt megcsinálni, hogy ha a feltétel igaz akkor autómatikusan továbbítsa egy másik oldalra?
Az if-ig eljutottam, de nem tudom, hogyan kell ilyen redirectet csinálni

A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!

(#1847) vancha2 válasza sonar (#1846) üzenetére


vancha2
aktív tag

if(feltétel igaz) {
header("Location: tovabbitva.php");
}

Így ha igaz a feltétel, átirányít a tovabbitva.php-re.

(#1848) Notes


Notes
senior tag

Nehezen tudtam eldönteni, hogy itt kérdezzem, vagy a MySQL topikban, de elsőre megpróbálom itt.

Apache, PHP, MySQL szentháromságot szeretném életre kelteni XP-n, fejlesztési (tanulási) céllal.

Úgy néz ki, hogy külön-külön minden szépen működik, sőt PHP-zni is lehet, tehát a webszerver, meg a PHP is összebarátkozott.
Csak valamiért a MySQL-t nem akarják bevenni a buliba.
Ott kezdődtek a furcsaságok, hogy a minden tutorialban emlegetett "...php/ext" könyvtár nekem nem is létezett. Létrehoztam és belemásoltam az egyetlen .dll-t amit az SQL könyvtáraiban találtam (libmysql.dll). A php.ini-ben a következőket adtam meg:

extension_dir = "c:\program files\php\ext"
extension=libmysql.dll

Erre mondja az Apache induláskor az error logban, hogy:

PHP Warning: PHP Startup: Unable to load dynamic library '.;c:\\program files\\php\\ext\\libmysql.dll' - A megadott modul nem tal\xe1lhat\xf3.\r\n in Unknown on line 0

És a phpinfo()-ban nyoma sincs az SQL-nek. Gondolom az Additional Modules alatt jelenne meg.
Aki tud kérem adjon tanácsot, köszi.

Romanes eunt domus!

(#1849) Lortech válasza Notes (#1848) üzenetére


Lortech
addikt

Libmysql.dll nálam apache/bin-ben van.
PHP / ext-ben van a php_mysql.dll, és ez a php modul, amit php.ini-vel be kell tölteni, nem az előbbi.

Thank you to god for making me an atheist

(#1850) Notes válasza Lortech (#1849) üzenetére


Notes
senior tag

Ismétlem: php/ext nincs, én hoztam létre. php_mysql.dll sincs. Gondolom ez a MySQL telepítővel kéne, hogy érkezzen...

Romanes eunt domus!

Útvonal

Fórumok  »  Szoftverfejlesztés  »  PHP programozás (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.