- Elektromos rásegítésű kerékpárok
- sh4d0w: Netflix? Ugyan, VW előfizetés!
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Geri Bátyó: Megint tahó voltam – SZEMÉLYISÉGFEJLŐDÉS
- eBay-es kütyük kis pénzért
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- btz: Internet fejlesztés országosan!
- LordAthis: AI (és másra is használt) Cluster építése - Második Cikk
Új hozzászólás Aktív témák
-
vakondka
őstag
válasz
Tele von Zsinór #2599 üzenetére
open_basedir: no value
safe_mode Off
-
vakondka
őstag
Tudna valaki segíteni, hogy miért nem tud az fopen megnyitni egy fájlt olvasásra ha full url-t, vagy ilyet adok meg: /könyvtár/másik/valami.jpg
Ha így adom meg: másik/valami.jpg akkor semmi gond.
PHP 5.2.6 van a szerveren és az allow_url_fopen On állásban van... vagy ez nem elég ?
-
VladimirR
nagyúr
ezesetben viszont nem ertem, hogy mire jo akkor a domdocument osztaly strictErrorChecking erteke - a doksi szerint ha ez true, akkor exception-t dob hiba eseten
vagy a domexception osztalyt meg ki kell egeszitenem ahhoz, hogy mukodjon? de akkor meg ugyanott vagyok, mintha csak ugy megirnam a hibakezelest -
cucka
addikt
válasz
VladimirR #2595 üzenetére
Más nyelvekkel ellentétben a PHP-ban a futás közben fellépő hibáknál (notice, warning és error) nem jön létre exception. Igazából exception-ökkel csak akkor tudsz dolgozni, ha te írod meg hozzá azt a részt is, ahol létrejön az exception, a beépített függvények/osztályok ugyanis jellemzően nem dobnak soha kivételeket.
(Tehát a throw new exception.. rész helyett a trigger_error függvényt használják hibakezelésre) -
VladimirR
nagyúr
az alabbi kod miert nem dob exception-t?
$xml = new DOMdocument( "1.0", "UTF-8" );
$xml->strictErrorChecking = true;
try {
$xml->loadXML( $html );
$xml->validate();
} catch ( DOMException $e ) {
print $e->getCode();
return;
} catch ( Exception $e ) {
print $e->getCode();
return;
}helyette dob olyanokat, hogy:
Warning: DOMDocument::loadXML(): PCDATA invalid Char value 27 in Entity, line: 1998 in /home/cyla/scripts/ph_search/posts.php on line 55
Warning: DOMDocument::loadXML(): PCDATA invalid Char value 27 in Entity, line: 1998 in /home/cyla/scripts/ph_search/posts.php on line 55
Warning: DOMDocument::loadXML(): PCDATA invalid Char value 27 in Entity, line: 2011 in /home/cyla/scripts/ph_search/posts.php on line 55
Warning: DOMDocument::loadXML(): PCDATA invalid Char value 27 in Entity, line: 2011 in /home/cyla/scripts/ph_search/posts.php on line 55
Warning: DOMDocument::loadXML(): PCDATA invalid Char value 27 in Entity, line: 2024 in /home/cyla/scripts/ph_search/posts.php on line 55
Warning: DOMDocument::loadXML(): PCDATA invalid Char value 27 in Entity, line: 2024 in /home/cyla/scripts/ph_search/posts.php on line 55
Notice: DOMDocument::validate(): No DTD given in XML-Document in /home/cyla/scripts/ph_search/posts.php on line 72
Warning: DOMDocument::validate(): no DTD found! in /home/cyla/scripts/ph_search/posts.php on line 72
Notice: DOMDocument::validate(): No DTD given in XML-Document in /home/cyla/scripts/ph_search/posts.php on line 72
Warning: DOMDocument::validate(): no DTD found! in /home/cyla/scripts/ph_search/posts.php on line 72 -
Gergello
addikt
Írtam egy programot ami csv fájlból olvas be és adatbázistáblákban turkál.
Kevés adat esetén szépen működik, de 4000 adat esetén tölt egy darabig és utána leáll, nem viszi fel teljesen. Mitől állhat le?
Először azt hittem, hogy timeout lesz, de max_execution_time 60 a töltés pedig ~15 mp körül áll meg?
Mitől lehet? Már gyorsítottam rajta azzal, hogy csak egy csv fájlból olvas, a többit tartalmat segéd táblákból szedi, de leginkább azt szeretném, hogy ne álljon meg. Később 8-10k terméket kell felvinnie. -
attis71
tag
Köszönöm a gyors válaszotokat!
Üdv: attis71
-
attis71
tag
Sziasztok, kezdő vagyok a PHP használatban. Szeretném megkérdezni, hogy egy saját PHP lapot szeretnék megnyitni explorerrel "Vista alatt", de nem nyitja meg!
Kell telepítenem még valamit hozzá?Üdv: attis71
-
válasz
fordfairlane #2587 üzenetére
Nekem már a FF blokkolta...
-
Shodan
őstag
sziasztok!
egy ehhez hasonló kis forumot szeretnék kreálni [link] hol találok ehhez source kódot? -
VladimirR
nagyúr
válasz
Parameter #2582 üzenetére
az elotte levo sorban el vannak szamolva a zarojelek
meg az utana levoben is
meg a kapcsoszarojelek sem stimmelnek (pontosabban huanyoznak) az elso if blokknal
amugy if-elseif-else szerkezetbe nem kell return es break is (a break minden esetben unreachable code-nak minosul a kododban) -
Parameter
csendes tag
Miért nem enged?
Parse error: parse error in C:\wamp\www\reg_check.php on line 13A 13. sorom:
return "Kérlek minden mezőt tölts ki, a...";
break;Ez a teljes kód:
<?php
function reg_check($adatok){
if($adatok['vnev'] == "" | $adatok['knev'] == "" | $adatok['userID'] == "" | $adatok['pass1'] == "" | $adatok['email'] == "" | $adatok['kor'] == "" | ($adatok['reg_felt'] == "" )
return "Kérlek minden mezőt tölts ki, a...";
break;
elseif(!ereg('^[a-zA-Z\-\_áéíóöüóűÁÉÍÓÖÜŐŰ]+$', $adatok['vnev' ] || $adatok['knev' ] || $adatok['userID' ] ))
{
return "A vezetéknévben, keresztnévben, és a user csak a magyar ábécé kis - és nagybetűi, a számok, illetve a _ és - jelek vannak engedélyezve!";
break;
}
elseif($adatok['email'] == (!eregi("^[_\.0-9a-z-]+@
([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$",$adatok['email'])))
{
return "Nem megfelelő formátumú az email!";
break;
}
elseif(mysql_num_rows(mysql_query("SELECT userID FROM users WHERE (userID='".$adatok['userID']."')")) > 0)
{
return "ez a felhasználónév ér foglalt, kérlek válassz másikat!";
break;
}
elseif($adatok['pass1'] !== $adatok['pass2'])
{
return "Nem egyezik a két jelszó";
break;
}
else
{
return "Rendben van!";
}
}
?> -
marcias
őstag
válasz
fordfairlane #2580 üzenetére
Köszönöm a gyors választ, írok, ha jutottam vmire. Egyébként valóban arról van szó, amit írsz (ami a kódot illeti)
-
fordfairlane
veterán
válasz
marcias #2579 üzenetére
Fogadni mernék, hogy a PHP beállítások változtak meg, és a register_globals opció lett kikapcsolva, de biztosat csak akkor tudnék mondani, ha látnám azt a minimális PHP kódrészt. Ha a PHP részen $oldal nevű változóban várod az "oldal" nevű paraméter tartalmát, akkor szinte 100%, hogy ez a gond. Ebben az esetben $oldal helyett $_GET["oldal"] néven kell használni, és működni fog.
-
marcias
őstag
Sziasztok!
Lenne egy fontos kérdésem.
Készítettem egy nagyon egyszerű, szinte statikus oldalt minimális PHP-val, és eddig működött is, a napokban viszont ügyfelem jelezte, hogy nem működnek a "fülek", és valóban, a linkek látszólag jók, a tartalom azonban nem változik. Összesen 3 dolognak kéne történnie: a lila füleknek át kéne ugraniuk a megfelelőre, a főablakban, és az alsó sorban pedig a tartalomnak kéne változnia. Fogalmam sincs, hogy mi lehet a baj. Tudna segíteni valaki?(Egyébként mostanában ügyködnek vmit a Netkert szerverein, lehet hogy azzal van összefüggésben?
)
A link: [link]
Megköszönném a segítséget!
-
akasp
senior tag
hali
az a problémám, hogy van egy ürlap, rajta textfield. a begépelt adatot berakom egy mysql adatbázisba. de amikor kiolvasom,akkor a sortörések nem láthatóak, tehát mindent 1 sorba akar kiirni. hogy lehet ezt megoldani, hogy látható legyen?
thx előre is
-
_XXXXX_
tag
válasz
Tele von Zsinór #2573 üzenetére
Igen a mysql tényleg a megfelelő időt adja
THX!
-
_XXXXX_
tag
válasz
Tele von Zsinór #2571 üzenetére
Hm erre nem is gondoltam, hogy minden egyes lekéréskor másik szerverhez fordul. Csupán annyiból vicces a dolog, hogy írtam egy fórumot amiben a hozzászólásokat idő alapján rendeztem és ha túl közel van két hozzászólás beküldésének az ideje, akkor ezért a csúszás miatt, felcserélődhetnek
Tudom a megoldást azonosító szám szerint kell rendezni őket, nem idő alapján. Nem gondoltam volna, hogy ennyire nagyfokú párhuzamosítás van a szervereknél, hogy mindig máshonnan kapok választ. Mindig tanul valami újat az ember
THX!
-
_XXXXX_
tag
Hi!
Van egy olyan problémám az extra.hu ingyenes tárhelyén, hogy írtam egy nagyon bonyolult kódot ezt:
<?php print date("Y-m-d H:i:s"); ?>
Ha f5-el frissítgetek a böngészőben akkor nem jó időt ír ki. pl:
2009-04-13 15:32:11
2009-04-13 15:32:16
2009-04-13 15:31:31
2009-04-13 15:32:24
2009-04-13 15:32:29Teljesen véletlenszerűen csúszik egy perccel el az idő, majd ismét megfelelő időt mutat. Most vagy én vagyok tök hülye, vagy az extránál valami nem százas. Ha valakinek még mindig nem világos akkor itt ki is próbálhatja, hogy miről beszélek: [link] A segítséget előre is thx!
-
R.P.
aktív tag
Sziasztok!
Segítséget szeretnék kérni PHP-s Joomla komponens átírás/fejlesztés ügyben. Nagyon fontos és sürgős lenne, és én nem értek sajnos hozzá, ezért kérem, hogy aki megtudná csinálni, írjon nekem üzenetet! Anyagiak nem kizárva
További infót itt találtok: link
Üdv.: R.P.
-
Drizzt
nagyúr
válasz
fordfairlane #2566 üzenetére
Vicces amúgy a viszonyom a php-vel, elmentem rendszermérnöknek dolgozni, első munkahelyként részmunkaidőbe. Eleinte eléggé jellemzőek voltak a ténylegesen hálózatos melók, ciscos konfigok, ilyesmi, aztán egyszercsak elém tettek egy félkész php rendszert, hogy mostantól kéne ezen megcsinálni ilyen-olyan extra funkciókat. Ekkor kb. azt se tudtam, hogy egyáltalán hogy vannak jelölve a változók a php-ben.
Aztán végülis ez lett a fő feladatom, mindig volt valami fejlesztenivaló a rendszeren, szépen kihíztak benne a funkciók, meg elkezdett nőni a tudásom is valamennyire. Aztán az állásnak a cégnél befellegzett, most meg nem szeretném kukázni az eddigi php ismereteket, csak ahogy néztem ma állásbörzén, leginkább full profikat várnak php-területen, talán egy hely volt, ahol php-ssel szemben nem volt a vérprofiság, vagy legalább 2-3 éves tapasztalat elvárás.
-
fordfairlane
veterán
A profi azt jelenti, hogy szakmai tapasztalata van, tehát nem egyszerűen megtanulta, beseggelte a manualt, hanem gyakorlati feladatokat oldott meg. Általában erre van szükség a cégeknél, problémákat kell megoldani, a módszer másodlagos. Az Objektum Orientált programozás egy módszer, vagy használod, vagy nem, de nem feltétlenül szükséges, azonban bonyolult rendszer esetén segíthet abban , hogy kezelhető maradjon a program. Igazából ez nem "web - nem web" kérdése.
-
biker
nagyúr
-
válasz
zhagyma #2556 üzenetére
Pont azért találták ki az OOP-t, hogy hatalmas nagy kódmennyiség mellett is átlátható legyen a program. OOP lényege, hogy egy helyre kerül az adat és annak feldolgozása.
Dehogy gyakorlati példát is mondjak: mysql_ függvények vs MySQLi classIlletve ott van a rengeteg OOP pattern: factory, adapter, singleton, stb.
-
cucka
addikt
Jól látod, igazából OOP-s és strukturált programozással is lehet jó és gyalázatos minőségű kódot írni. Amúgy én is ismerek profi programozót, aki szakmailag ott van a szeren, mégis olvashatatlan a kódja. (pl. nem használ indentálást, minden sor ugyanabban az oszlopban kezdődik.
)
-
biker
nagyúr
szerintem ez egy végtelen vita, melyik a jobb, én magam nem nagyon szeretem az OO-t, de ha kapok javításra ilyen motort, gond nélkül javítom.
ami sokkal bosszantóbb, amikor a "profi" programozó attól profi, hogy csak ő látja át a szarját.
pl ha egyszer 256 chr lehet a változó neve, akkor mondjuk egy beléptetés után követhetőbb, ha a user adatok queryből nem egy $ua változóba mennek, vagy amit épp leüt a billentyűzeten, hanem kiírja, hogy $users_array esetleg.multkor javítanom kellett egy ilyen motort, profik csinálták millióért, és tele volt ilyen $ab,$ac,$ad változókkal, jegyzetelni kellett, mi micsoda, komment semmi, ahhhh
lehet, régimódi vagyok, én így látom.
-
cucka
addikt
De pl.: oo szemlélettel php-ben még sose programoztam, tudom megvan rá a lehetőség, de igazából web fejlesztésnél nem vettem volna még túl sok hasznát.
Hogyne lehetne hasznát venni. Mondok egy egyszerű példát.
Van egy űrlap osztályod, ami annyit tud, hogy kiírja a benne található űrlap elemeket egy táblázatba bizonyos rendszer szerint. (A kiírás úgy történik, hogy odaszól mindegyik űrlap elemnek, hogy "írd ki magad"). Ugyanígy ellenőrzésnél is az űrlap elemek ellenőrzését hívja meg, és az adatbázisba való mentésnél is odaad az űrlap elemnek egy tömböt, hogy "írd bele a saját adataidat és add vissza a tömböt", majd a visszakapott tömböt simán berakja a táblába.Az űrlap elemek egy közös osztályból származnak, ahol fel vannak véve az általános tulajdonságok (név, érték, stb..) illetve általános viselkedési formák (pl. űrlap mentésnél alap esetben annyit csinál, hogy $tomb[$this->name]=$this->value). Az egyes űrlap elemeknél definiálva van a saját egyedi viselkedésük.
Ez a fenti forma azért király, mert egy megfelelően felparaméterezett/példányosított űrlapnál a kiírás, az adatfeldolgozás és az adatbázisba való mentés is mindössze 1-1 függvényhívás.
Sőt, ha úgy véled, hogy az adatbázis kezelésedre is írsz pár osztályt (tábla, mező, szűrő.), akkor egyenesen a táblából fogsz tudni automatikusan, 1 függvényhívással űrlapokat gyártani. -
cucka
addikt
válasz
zhagyma #2556 üzenetére
Bizonyos kódmennyiség- vagy méret felett úgyanolyan nehéz változtatni OOP-ben megírt programot, mint struktúrált / moduláris programot.
Ezt cáfolnám. Az OOP-s kód nem feltétlenül egyszerűbb, mint a strukturált (sőt, sokszor bonyolultabb), de azt tapasztaltam, hogy minél nagyobb a kód mérete, annál könnyebb dolgozni egy normálisan megírt/dokumentált OOP-s rendszerrel, mint egy ugyanakkora strukturálttal.A profi php programozó meg az, aki ebből él. Ennek előfeltétele, hogy elég jól kell érteni a php-hoz, mert ugye a hozzá nem értést nem nagyon fizeti meg senki.
-
zhagyma
őstag
Úgy van, ahogy írod. Viszont az előző hsz-emből nem tűnt ki az, amit igazán szerettem volna elmondani. Bizonyos kódmennyiség- vagy méret felett úgyanolyan nehéz változtatni OOP-ben megírt programot, mint struktúrált / moduláris programot. A változtatások kivitelezésére alkalmazott technikák értelemszerűen mások, de az "izzadtság" kb. ugyanannyi. Ilyen eset után szoktam elmosolyodni és feltenni a kérdést: Valóban olyan könnyű-e OOP szemléletben megírt programon változtatni, mint amit sugall a tankönyv? Ha mindkét módon próbáltál programozni, akkor biztosan Te is tudod a választ...
-
válasz
zhagyma #2554 üzenetére
Egyetértek, plusz még fontos akkor szerintem az is beletartozik a dologba, hogy nyílt legyen új technológiák megtanulására.
Hát persze, a dokumentálás az alap.
Ha meg megfelelően van lebontva namespace-ekre az a pár ezer objektum, úgy azért nehezebb eltévedni köztük. Minden csak dokumentáció és a világos kód kérdése. -
zhagyma
őstag
Szia!
Szerintem "általában" a profi programozót és a nem profit, nemcsak a szakmai tudás külöbözteti meg. Emellet fontos lehet az, hogy amit tud azt határidőre, bárhol, bármikor más programozókkal együtműködve is képes legyen hozni.
Természetesen jó az OOP, de pár ezer class és instance között ugyanúgy el lehet "veszni" (UML ide-oda), akár a struktúrált programozás esetén. Azaz dokumentálni sem árt. Nem tudom próbáltál-e beszállni egy nagy projektbe, mondjuk félúton ... Hát nem egyszerű.Egyébként nem olyan rossz a javascript a kliens oldalon, a server oldalon meg a java. A PHP mellett érdemes megnézni...
-
R.P.
aktív tag
-
Jah az más, de akkor sem értem még, miért nem használtál eddig OOP-t PHP-nál.
Egy ideig én is csináltam úgy pár honlapot, hogy kizárólag AJAX-szal történt minden, de aztán rájöttem, hogy a google nem tudja indexelni az oldalakat, hisz JS szükséges hogy elérd őket. Illetve a másik probléma az volt, hogy hát lassú, sok JS-kóddal kellett vesződnöm, huhh, nagy hülyeség volt.
Azután csináltam magamnak egy saját MVC Frameworkot (Orchid Frameworkből kiindulva, csipet Zend Framework segítségével, de 90% magamtól, folyamatosan fejlesztem, sose lesz kész
), amiben van egy jó kis Nézet renderer (nuku AJAX, csak ha nagyon kell, akkor), Controllerben minden egyes Nézet fájl-ra tudok beállítani helyi változókat (van kb 40), így kavarodás se nagyon van. Automata CSS és JS beágyazás a layout-ot felépítő minden egyes kis html fájlnál, így azokat se kell egybe ömleszteni, illetve kézzel beágyazni...
[...]
Sokat lehetne erről írni. Nézz utána, bőven van értelme, sokkal gyorsabban és könnyebben lehet vele összedobni egy weboldalt - még ha minimális szerepe is van benne az adatbázisnak, akkor is.
-
Drizzt
nagyúr
Jahh, nyilván.
Amúgy ismerem az oot, s máshol használom is, szóval Javaban nyilván úgy állok neki, hogy: na, akkor dobjunk össze egy umlt, aztán gyorsan implementáljuk. Az adatbányászós cucchoz tényleg jól jött volna az oo, de amikor van egy weboldal, csomó php aloldalból, akkor nem látom értelmét most sem.
Mysql-t muszáj volt használni, adatbázis-relációkat(milyen tábla hogy épüljön fel, ilyesmi...) is kellett tervezni hozzá.
MVC rémlik, de Javas ismereteimből inkább. Márha a model-view-controlról van szó.
Így viszont hogy webes megjelenítésre használtam a php-t, a vezérlés úgyis esemény alapon ment a html-ből, vagy javascripttel(ajaxszal betölteni egy div-be egy php kimenetét, ilyesmi). -
Hát ha eddig mindent OOP nélkül csináltál, akkor gratula.
Ha nekem OOP nélkül kellett volna csinálnom mindent eddig, akkor már megőszültem volna.Egyébként szerintem nagyon számít az OOP ismerete egy profi programozónál. Hisz anélkül nagyságrendekkel több időbe telik a fejlesztés - nem viccből találták ki. Meg ott van az MVC is. Illetve szerintem PHP-hoz nem ártanak alapos (My)SQL ismeretek sem.
De ez az én véleményem.
A legegyszerűbben úgy derül ki, hogy profi programozó vagy-e nekik, hogy elmész.
-
Drizzt
nagyúr
Szerintetek mit takar az, hogy profi valaki php programozásból? Magyarán ha azt mondja valaki, hogy profi php programozót keres állásra, akkor nyugodt lelkiismerettel mikor mondhatod erre azt, hogy az vagy?
Érdekes, mert például csináltam már nagy részét egy projekt, eszköz- és egyéb nyomonkövető rendszernek, ami miatt elég sokminden megy php-ból, pl. ismerek csomó függvényt, illetve tudom hol találom meg, amit esetleg fejből nem is tudok rögtön. Ugyanakkor bonyolultabb szkriptet is írtam már, adatbányászati jellegűt.
De pl.: oo szemlélettel php-ben még sose programoztam, tudom megvan rá a lehetőség, de igazából web fejlesztésnél nem vettem volna még túl sok hasznát.Mind1, érdekel annyira az állás, hogy legfeljebb lesütött szemmel távozzak.
-
cucka
addikt
válasz
@Pirate@ #2540 üzenetére
Még pár megjegyzés:
- a break-ek teljesen fölöslegesek. A break azt csinálja a programodban, hogy az aktuális if-ből kilép. Azért fölösleges, mert előtte a return már kilépett a teljes függvényből.
Igazából normálisan megírt programnál a break-re semmi szükség, kivéve természetesen a switch-es szerkezeteket.
- Bitenkénti műveletek helyett mindig használd azok logikai párját. Tehát jelen esetben a feltételeidben | helyett || . A bitműveletek az automata típuskonverziójukkal nagyon csúnya dolgokat tudnak művelni. Természetesen van, amikor kifejezetten bitműveleteket kell használni, de ez nem az az eset.
(A bitműveletekről tudni kell, hogy a két operandusuk int típusú, tehát bármit is adsz meg nekik, azt a php int-re alakítja át. Bool típusú operandusnál ez nem rejt buktatókat, más típusúaknál azonban előfordulnak érdekes dolgok, amivel nagyon könnyen tudsz megtalálhatatlan, ritkán előforduló hibákat kódolni a programodba). -
@Pirate@
tag
to cucka
ez jó észrevétel!elseif(!ereg('^[a-zA-Z\-\_áéíóöüóűÁÉÍÓÖÜŐŰ]+$', $adatok['vnev' ] | $adatok['knev' ] | $adatok['user' ] ))
sztem tudod mit szeretnék! segíts egy kicsit ebben nekem! hogyan van ez az összefűzés?
-
cucka
addikt
válasz
@Pirate@ #2540 üzenetére
Az első elseif-ed feltétele logkailag tuti rossz, de szintaktikailag amúgy helyesnek tűnik a kód. (Konkrétan, a stringekre ráeresztett bitenként vagy kicsit meredek, próbáld inkább összefűzni őket, az az átlalad várt megoldást fogja adni)
(#2541) lezso6
Php-ban nincsenek többszálúságot támogató megoldások. Exec-el mondjuk meg lehet hívni egy másik php szálat, de kicsit körülményes lehet így dolgozni. (plusz rengeteg hibaforrás, és amúgy is teljesen fölösleges)
Természetesen ha egyszerre két ember kéri le ugyanazt a php-s weboldalt, akkor azt párhuzamosan fogja kiszolgálni az apache/php. -
válasz
@Pirate@ #2540 üzenetére
Nekem megeszi a PHP a kódod. JS-t hanyagold, meg lehet kerülni, s akkor gebasz lesz.
EREG helyett meg szvsz használj PREG-et, sokkal kevesebb kóddal le lehet írni ugyanazt, meg többet is tud, illetve PHP 6.0-tól meg fog szűnni az EREG kiterjesztés.(#2537) ttower:
Nem tud több PHP-kód egyszerre futni? Ez biztos?Nekem ez új.
szerk: Mi a fene? Ha a vissza gombbal megyek vissza a szerkesztéshez, akkor lehet 5 perc után is szerkeszteni?(#2542) Cucka: Akkor lehet, hogy a az EREG kódja hibás.
-
@Pirate@
tag
de lehet JS lesz a check!
<?php
function reg_ell($adatok){
if($adatok['vnev'] == "" | $adatok['knev'] == "" | $adatok['user'] == "" | $adatok['pass1'] == "" | $adatok['email'] == "" | $adatok['kor'] == "" )
{
return "Kérlek minden mezőt tölts ki!";
break;
}
elseif(!ereg('^[a-zA-Z\-\_áéíóöüóűÁÉÍÓÖÜŐŰ]+$', $adatok['vnev' ] | $adatok['knev' ] | $adatok['user' ] ))
{
return "A vezetéknévben, keresztnévben, és a user csak a magyar ábécé kis - és nagybetűi, a számok, illetve a _ és - jelek vannak engedélyezve!";
break;
}
elseif($adatok['email'] == (!eregi("^[_\.0-9a-z-]+@
([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$",$adatok['email'])))
{
return "Nem megfelelő formátumú az email!";
break;
}
elseif(mysql_num_rows(mysql_query("SELECT username FROM users WHERE (username='".$adatok['user']."')")) > 0)
{
return "ez a felhasználónév ér foglalt, kérlek válassz másikat!";
break;
}
elseif($adatok['pass1'] !== $adatok['pass2'])
{
return "Nem egyezik a két jelszó";
break;
}
else
{
return "Rendben van!";
}
}
?> -
@Pirate@
tag
"Parse error: parse error in C:\wamp\www\reg_ell.php on line 10"
egy nyito tag van itt, átkell állítanom a short open tagot ON-ra?
php.ini-ben!én megtettem de csak szerkesztőbe... esetleg másképp kell? vagy lehet nem is ez a probléma?
üdv -
ttower
aktív tag
hello
php-ban melyik az a parancs amivel a szervert "fel lehet szabadítani"? a probléma az hogy képfeltöltés és konvertálás alatt (1-2 perc/kép) nem tud több oldalt kiszolgálni (nem tud több php kód futni.ödv ttower
-
válasz
Fire/SOUL/CD #2535 üzenetére
Nincs mit, szerintem nem fogok belehalni.
-
Hali!
Jól van nyugodj meg, nem történt katasztrófa...
$_SESSION tömböt fogom használni, mint ahogy a manualban olvastam(illetve mint előzőekben írtam, nem olvastam csak néztem)
Kösz, hogy ennyire a lelkeden viseled a dolgot, nehogy rámenjen a szívedre a végén....Viccet félretéve, kösz, a próbléma lekezelve, megoldva...
Fire.
-
-
Ja, ööö, most nézem, hogy nálad a változókat beleírja meg minden, csak értéket nem ad. De nálam se működik a kód.
szerk: De mégse írtam hülyeséget az előző postomban, mert ha kicseréled a másik kódra akkor működik.
szerk2: Heh, közbe rájöttem, hogy ezt a függvényt a kód végén kell használni, nem előtte... Akkor ezek szerint nem egy meglévő működő kód php4 => php5 migrációról van szó.
Mindegy... Használd akkor a globális $_SESSION tömböt, ne a régi függvényeket.
-
válasz
Fire/SOUL/CD #2531 üzenetére
Lehet, hogy ki van kapcsolva a session_register függvény. Így a session változók a $_SESSION nevű asszociatív tömbben vannak. Alapból egyébként már a PHP 5.3-ban lesz/van kikapcsolva, PHP 6.0-val pedig már megszűnik a függvény.
Így kéne átírni:
$_SESSION["proba_nev"] = "Nem_megy";
$_SESSION["proba_jelszo"] = "de_miert_nem";De ha nagyon sok mindent kéne átírnod (sokszor használod a változókat), akkor szerintem ezt csináld, s akkor így csak a session_register-eket kell átírni:
$proba_nev = &$_SESSION["proba_nev"];
$proba_jelszo = &$_SESSION["proba_jelszo"];
$proba_nev = "Nem_megy";
$proba_jelszo = "de_miert_nem";szerk.:
Utóbbi esetben szerintem eressz rá minden fájlra egy PREG-et - ha támogatja a szerkesztőprogid, s akkor gyorsan megvagy:keresés (regular expression):
'/session_register\("(.*?)"\)/'csere:
'\$$1 = &\$_SESSION["$1"]' -
Hali!
PHP 4.x.x.x alatt ez kifogástalanul műxik.
<?php
session_start();
print session_id() . "<br><br>";
print session_save_path();
session_register("proba_nev");
session_register("proba_jelszo");
$proba_nev = "Nem_megy";
$proba_jelszo = "de_miert_nem";
?>PHP 5.x.x.x esetében azonban nem íródik be az értéke a session fájlba, helyette ez van
proba_nev|N;proba_jelszo|N;Mit kell beállítanom?
Fire.
-
cucka
addikt
válasz
Benmartin #2518 üzenetére
Csak pontosítottam, egyrészt azért, mert érdekesnek találom a php viselkedését a null típusnál, másrészt mert marhára nem egyértelmű elsőre, hogy mit is csinál az isset(). (meg hogy mit is jelent az, hogy definiált-e egy változó vagy sem)
Amúgy meg tényleg nem függvény, csak függvényként lehet használni, mint ahogy az include-ot vagy a print-et. (ezek sem függvények) -
cucka
addikt
válasz
cellpeti #2524 üzenetére
Gondolom a php 24 óra alatt című könyvből tanulsz, ott magyarázzák ilyen marha jól a kódot..
Először is, az else nem utasítás. Önmagában nem is létezik. Amiről te beszélsz, az az if..else vezérlési szerkezet. Az if így néz ki:
if (feltétel){
kód1
} else {
kód2
}Az if úgy működik, hogy fogja a feltételt és kiértékeli, ami azt jelenti, hogy a feltétel értékét átalakítja bool típusúra. (Ez azért fontos, mert a feltételben bármi lehet, amit a php bool típusúra tud alakítani. Megjegyzem, a php-ban nem létezik olyan változó vagy kifejezés, amit ne lehetne bool-ra alakítani)
Ha a feltétel értéke true, akkor a kód1 fog lefutni, különben a kód2.A te programodban a feltételben az szerepel, hogy elküldték-e az űrlapot. Ha ez teljesül, akkor feldolgozod az adatokat (pl. kiírod, hogy elfogadtad-e a kölcsönkérési igényét). Ha nem teljesül, akkor pedig kirakod neki a képernyőre az űrlapot (ez a kód2 rész). Az if szintaxisából látszik, hogy miért van a program végén az a } karakter. És igen, általában ilyen szerkezettel szokás megoldani az űrlapokat egyszerűbb oldalakon, tehát máshol is használhatod ezt a sémát.
Ez a sor: <input name="eletkor" type="text" size="3"> => ide miért kell? A méretet nem a text parancs határozza meg?
Megint kevered a dolgokat. Az a sor egy html részlet, ahol megint nincsen semmiféle parancs vagy utasítás, hanem tag-ek vannak és azoknak paraméterei. Az input tag például egy űrlapelemet ír ki a képernyőre. Az input tag type paramétere határozza meg, hogy milyen típusú űrlap elemről van szó (text esetén pl. sima szöveges mező). A size paraméter azt mondja meg, hogy hány betű kerülhet bele abba a szövegmezőbe. A szövegmeződ méretét a rá érvényes css stílusok határozzák meg. Tehát ha 100 pixel szélesre akarod megcsinálni, akkor<input name="eletkor" type="text" size="3" style="width:100px;">
És elnézést mindenkitől, akinek úgy tűnik, hogy a szavakon lovagolok, de véleményem szerint érdemes jól és pontosan megtanulni az alapfogalmakat. Tehát az if-re nyugodtan el lehet kezdésnél is mondani, hogy vezérlési szerkezet, mert a kézikönyvben is ezen a néven szerepel, nem pedig "utasítás", "parancs" meg egyéb kamu neveken.
-
tkazmer
addikt
válasz
cellpeti #2524 üzenetére
igen, amit egy kódnál eljátszottál, azt eljátszhatod egy másiknál is.
az inputos kérdésedre válaszolva pedig, nem, a méretet nem a "text" parancs határozza meg, elsősorban azért, mert text parancs nincs. amivel összekevered valószínűleg az az input típusa, az valóban text. A text inputok pedig valóban rendelkeznek egy alapértelmezett mérettel, azonban ezt sokszor felül kell írni a szükségleteknek megfelelően, erre szolgál a size tulajdonság.
Én mondjuk size helyett jobban szeretek css-ből babrálni, ha már úgyis meg kell formázni egy inputot, akkor azt sokkal jobban meg lehet tenni css-ből. -
Gergello
addikt
válasz
Tele von Zsinór #2522 üzenetére
Megoldotta, köszönöm!
Itt a kód, ha vki hasonló problémába ütközne:header('Content-type: text/html; charset=utf-8');
/*utf8 beallitasa sql feltoltes elott*/
$result=mysql_query("SET NAMES 'utf8'",$kapcsolat);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
else echo "utf8 beallitva! <br />\n";
/**************************/ -
cellpeti
nagyúr
Sziasztok! Van megint egy kódom,de egy két dolog nem tiszta benne.
Van egy else utasítás,melyet a program végén be kell zárni a könyv szerint. Itt azt írja,hogy azért kell,mert "else utasítás miatt az űrlap cask akkor jelenik meg a képernyőn,ha azt a felhasználó még nem küldte el,hiszen ha a kitöltő már továbbított egy elfogadható igénylést,akkor nincs szükség az űrlap újboli megjelenítésére" => Magyarul,hogy ne dobjon vissza az űrlapra? Ez minden űrlapnál eljátszható,ahol azt akarom,hogy ne dobjon vissza?<html>
<head><title></title></head>
<body>
<b>Roncsderbi autókölcsönzo</b>
<?php
if (isset($_POST['elkuldott'])) {
if ($_POST['eletkor'] > 20 and $_POST['jogositvany'] =="on") {
echo ("Kölcsönzési igényételfogadtuk.<hr>");
}
if ($_POST['eletkor'] < 21 or $_POST['jogositvany'] == "") {
echo("Sajnos nem áll módunkban autót kölcsönözni Önnek.<hr>");
}
[B]}else {[/B]
?>
<form method="post" action="auto.php">
<input type="hidden" name="elkuldott" value="true">
Keresztnév:
<input name="keresztnev" type="text">
Vezetéknév:
<input name="vezeteknev" type="text">
Életkor:
<input name="eletkor" type="text" size="3">
<br>
<br>
Cím:
<textarea name="cím" rows=4 cols=40>
</textarea>
<br>
<br>
Rendelkezik érvényes jogosítvánnyal?
<input name="jogositvany" type="checkbox">
<br>
<br>
<input type="submit" value="Kérelem elküldése" />
</form>
</body>
</html>
<?php
}
?>Ez a sor: <input name="eletkor" type="text" size="3"> => ide miért kell? A méretet nem a text parancs határozza meg?
Bocs a dupla hsz-ért! Google Chrome! -
cellpeti
nagyúr
Sziasztok! Van megint egy kódom,de egy két dolog nem tiszta benne.
[C]<html>
<head><title></title></head>
<body>
<b>Roncsderbi autókölcsönzo</b>
<form method="post" action="auto.php">
<input type="hidden" name="elkuldott" value="true">
Keresztnév:
<input name="keresztnev" type="text">
Vezetéknév:
<input name="vezeteknev" type="text">
Életkor:
<input name="eletkor" type="text" size="3"> <== az,hogy ez itt 3 ennek mi értelme?
<br>
<br>
Cím:
<textarea name="cím" rows=4 cols=40>
</textarea>
<br>
<br>
Rendelkezik érvényes jogosítvánnyal?
<input name="jogositvany" type="checkbox">
<br>
<br>
<input type="submit" value="Kérelem elküldése" />
</form>
</body>
</html> [/C] -
Tele von Zsinór
őstag
válasz
Gergello #2521 üzenetére
Vagy nem utf8 a file, vagy az apache detektálja hibásan, mindenesetre headerben latin2-nek hazudja. Ezt egy egyszerű header() hívással tudod javítani.
Továbbá a mysql kapcsolatod kódolása is lehet hibás, kapcsolódás után hajts végre egy olyan queryt, hogy "set character set 'utf8';". -
Gergello
addikt
válasz
Tele von Zsinór #2520 üzenetére
Igaz, kézzel átállítva jó. Hogy lehet ezt automatikusan? Azt hittem, hogy az alábbi megoldás elég, de nem. setlocale()-t is próbálam, de nem jött be.
Ennek az egésznek az lenne a lényege, hogy ami bekerül az adatbázisba, az helyes legyen, mert a joomla cms ami megjeleníti, az be van állítva rendesen.Így néz ki ami bekerül.
Szerkeszt Töröl ~product_sku~ ~asd~
Szerkeszt Töröl ~alma~ ~üöüóőúűáéÃXD~
Szerkeszt Töröl ~product_sku~ ~asd~
Szerkeszt Töröl ~alma~ ~üöüóõúûáéÃXD~
Szerkeszt Töröl ~product_sku~ ~asd~
Szerkeszt Töröl ~alma~ ~üöüóõúûáéÃXD~<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="hu-hu" lang="hu-hu" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CSV PROCESS</title>
</head>
<body>
<?php
$row = 1;
$handle = fopen("BE3.csv", "r");
while (($data = fgetcsv($handle, 1000, "^")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
echo mb_detect_encoding($data) . "<br />\n";
}
}
fclose($handle);
?>
</body>
</html> -
Tele von Zsinór
őstag
válasz
Gergello #2519 üzenetére
A link, amit adtál, utf8 helyes (értsd: kézzel utf8-ra állítva a böngésző karakterkódolását helyesek az ékezetes karakterek).
Az utf8 első 128 (vagy ekörüli, nem vagyok benne biztos) karaktere megegyezik az ascii hasonló részével, ezzel érték el, hogy az angol szövegek nagyja pontosan ugyanaz asciiban és utf8ban. -
Gergello
addikt
UTF8 kódolású csv fájlból szeretném beolvasni az adatokat, de van egy kis karakter kódolási problémám.
Itt a kimenet: link
<?php
$row = 1;
$handle = fopen("BE3.csv", "r");
while (($data = fgetcsv($handle, 1000, "^")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
echo mb_detect_encoding($data) . "<br />\n";
}
}
fclose($handle);
?>Miért lesz ASCII kódulású amit beolvasok? Hogy konvertáljam ezt, hogy rendesen jelenjenek meg a karakterek?
-
Benmartin
senior tag
gondoltam, hogy valaki beleköt. a probléma megoldása szempontjából a válaszom elfogadható volt, az, hogy nem tértem ki arra, hogy akkorholmimiveltérvisszamikorhogyanmiapontosdefiníció, sajnálom, ott a php referncia.
mellesleg variable handling functions alatt van, gondolom az valamilyen függvényt jelent.
de inkább béke veled!
üdv.
-
Tele von Zsinór
őstag
Cucka kollega válaszát ennyivel egészíteném ki: a saját gépedre érdemes felrakni apache-php-mysql triót[1] és ott fejleszteni, gyorsabb és egyszerűbb is, egyrészt amiatt, hogy nem másik gépre kell feltölteni mindig, hanem csak mentés-alttab-f5; másrészt jóval beszédesebbre tudod állítani a hibaüzeneteket, a felmerült headeres problémára is kaptál volna ilyet.
"Js már megteszi" - *soha* ne bízz semmiben, amit a felhasználótól kapsz, a bizalom egyik kihasználása az említett SQL injection, de létezik pélául html injection, vagy xss is.
A register_globals régen alapértelmezetten be volt kapcsolva, sokan építettek rá, de elég nagy biztonsági hibákat generált, így most az alap a kikapcsolt, és tudtommal php6-ban már nem is lesz ilyen.[1] kezdetnek javaslok valami egybecsomagot, mint az appserv, wamp, easyphp vagy az xampp. Én a legutóbbit használom.
-
fordfairlane
veterán
(#2506) fordfairlane: Köszi, de még nem sikerült működésre bírnom.
Van egy olyan függvény, hogy headers_sent(), ami jelzi, ha már ki lett küldve a fejléc, és a további header() függvények, mint az átirányításos példád, már nem fognak működni.
if(headers_sent()) echo "Redirecthez tul keso, vilageges";
-
cucka
addikt
Localhosthoz hozzá lehet férni megosztott webhosting esetén?? Sztem nem.
Kb, mintha az extra.hu-n dolgoznék, csak fizetős, és reklámmentes.
A localhost az a saját géped, tehát ennek a mondatodnak nincs értelme, természetesen a saját gépedhez hozzáférhetsz.Miért, és mire jó ez az escape cucc? Erről van szó?
Ez arra jó, hogy a fölös karaktereket eltávolítsa? Ezt a js már megteszi.
SQL injection. Olvass utána, igencsak fontos tudni, hogy működik és hogy lehet védekezni ellene.A bekapcsolt register_globals azt jelenti, hogy műxik a változók globálissá tétele?
Kipróbáltam, műxik. Miért ne építsek rá? Nem megbízható, vagy lehet, hogy kikapcsolják?
A register_globals bekapcsolás után azt csinálja, hogy a $_POST és $_GET tömbökben kapott paramétereket globlális változóként is el lehet érni. Tehát a $_GET['param'] értékét a $param nevű globális változóba pakolja.
A global kulcsszónak (amit amúgy totál rosszul használsz) semmi köze ehhez. -
-
HolyDay
tag
az ellenőrzés szerkezete jónak tűnik. egy lehetséges hibaforrás az sql lekérdezésben lehet. futáskor iratsd ki a query stringedet, majd futtatsd le az sql szerveren (phpmyadmin, ha rendelkezésre áll). az a gyanúm, hogy olyan lekérdezést futtatsz, ami mindig 0 sorral tér vissza.
látom időközben megoldottad. -
Annyi változás történt a helyzetben, hogy a sikeres regisztráció utáni oldalfrissítésre is lefut a felhasználó név ellenőrzés, tehát az adatbázisba nem kerül be többször az adat.
További javaslataitok feldolgozása folyamatban...
-
válasz
Tele von Zsinór #2507 üzenetére
Localhosthoz hozzá lehet férni megosztott webhosting esetén?? Sztem nem.
Kb, mintha az extra.hu-n dolgoznék, csak fizetős, és reklámmentes."querybe escapelés nélkül ne rakj felhasználótól kapott értéket"
Miért, és mire jó ez az escape cucc? Erről van szó?
Ez arra jó, hogy a fölös karaktereket eltávolítsa? Ezt a js már megteszi.A bekapcsolt register_globals azt jelenti, hogy műxik a változók globálissá tétele?
Kipróbáltam, műxik. Miért ne építsek rá? Nem megbízható, vagy lehet, hogy kikapcsolják?A $felhnev korábban értéket kap.
A többit értem, és köszi!
(#2506) fordfairlane: Köszi, de még nem sikerült működésre bírnom.
(#2509) HolyDay: Az ellenőrző kód (jelenleg):
$kapcsolat = mysql_connect( "..." );
if ( ! $kapcsolat ) die( "Nem lehet csatlakozni a MySQL kiszolgálóhoz." );
mysql_select_db( "..." ) or die ( "Nem lehet megnyitni az adatbázist." );
$eredmeny = mysql_query( "SELECT * FROM fotabla WHERE felhnev = '$felhnev'" );
$sorok = mysql_num_rows($eredmeny);
if ($sorok > 0)
{
$hiba=true;
global $hiba;
}
else
{
feldolgozás;
visszajelzés az eredményeségről;
}A JS-es megoldásodat kipróbálom, köszi!
-
HolyDay
tag
ellenőrzés: illeszd be kérlek azt a kódod, mivel ellenőrzöd!
egy példa az ellenőrzésre:
if(isset($_POST['reg_button'])){
if(user_is_not_registered($_POST)){ // ez a függvény ellenőrzi, h a user regisztrált-e már korábban
register_user($_POST); // ez a függvény regisztrálja a usert
}
else{
$page = "http://www.example.com";
jump_to_page($page);
}
}ha már van kimeneted, akkor érdemes javascripttel eldobni a felhasználót a kívánt lapra. Erre egy példa a jump_to_page() függvény:
function jump_to_page($page){
echo "<script type=\"text/javascript\">";
echo "location.href='".$page."'; ";
echo "</script>";
}ezek a kódok csak példa jellegűek, de használhatóak. Nyilván vannak elegánsabb és a feladatot szebben megoldó kódok is.
-
Tele von Zsinór
őstag
Kimenet: amit elküldesz a usernek, kb. amit kiprintelsz/echozol
Alkalmazáslogika: például míg összeszedsz az adatbázisból egy blogbejegyzést és a kommentjeit, aztán letárolod változókban.
Szétválasztás: a kódod úgy csoportosítod, hogy semmi ne menjen a kimenetre, amíg az alkalmazáslogika nem végzett, utána jön csak az output összeállítása a változókba letárolt dolgok alapján.
Olvasnivaló: az MVC tervezési minta, bár kezdőként nem tudom, ez nem túl sok-e: [link] -
Tele von Zsinór
őstag
Localhoston sem tudod állítani?
Más: querybe escapelés nélkül ne rakj felhasználótól kapott értéket, valamint ne építs a bekapcsolt register_globals-ra. (select * from fotabla... sor, a $felhnev nem kap értéket, gondolom az $_POST["felhnev"] akart lenni).
Még pár megjegyzés a kódhoz:$sorok = mysql_num_rows($eredmeny);
if ($sorok > 0)helyett
if (mysql_num_rows($eredmeny)) {...
tömörebb, jobban olvasható, valamint: a $mindenoke legyen sima igaz/hamis, az elején állítsd hamisra, a levél küldésekor igazra, és a végén a feltétel így ez lesz:
if (!$mindenok)
-
válasz
HolyDay #2504 üzenetére
Ellenőrzöm a felhasználói név meglétét, de ez az ellenőrzés valami miatt nem fut le F5 nyomásakor, holott egyébként működik.
A másik probléma, meg pont az "eldobatnám a kezdőlapra" megvalósításával van.
Nem műxik ez a kód:$URL="http://www.example.com";
header ("Location: $URL");---
(#2501) Tele von Zsinór:
"...szép (és karbantartható) megoldás az alkalmazáslogika és a kimenet szétválasztása.""illik a kimenetbe legalább annyit rakni, hogy "átirányítunk ide: link""
Ezek mit jelentenek? Kezdő létemre ezeket nem értem.
Lehet, hogy tudom miről van szó, csak nem tudom mit jelent a "kimenet" kifejezés a php-ben. -
HolyDay
tag
ha jól értem, akkor ez egy regisztráció.
én a következőt tenném az ilyen F5-ös szívások elkerülése végett:
még mielőtt beszúrnék egy új sort az adatbázisba, ellenőrizném, hogy a felhasználóhoz tartozó egyedi azonosító (pl a username stb) létezik-e már az adatbázisban. Ha létezett már, akkor eldobatnám a kezdőlapra. -
Tele von Zsinór, cucka:
A php.ini-hez nem tudok hozzáférni, mert egy sima fizetős webhosztingon kell futni a weboldalnak, ahol házi készítésű admin felület van, nem Cpanel, vagy ilyesmi.
A fő probléma, hogy ha átirányítás helyett print-et használok, akkor oké a dolog, de ha ezen a lapon a felhasználó frissíti az oldalt, akkor mégegyszer bekerül az adatbázisba a form tartalma, és valamiért nem ellenőrzi le mégegyszer a felhasználónév létezését, holott egyébként műxik.
if ($_POST)
{
$kapcsolat = mysql_connect( "..." );
if ( ! $kapcsolat ) die( "Nem lehet csatlakozni a MySQL kiszolgálóhoz." );
mysql_select_db( "..." ) or die ( "Nem lehet megnyitni az adatbázist." );
$eredmeny = mysql_query( "SELECT * FROM fotabla WHERE felhnev = '$felhnev'" );
$sorok = mysql_num_rows($eredmeny);
if ($sorok > 0)
{
$fh=1;
global $fh;
}
else
{
mysql_query( "INSERT INTO fotabla ( blabla ) VALUES ( blabla )") or die ( mysql_error() );
mysql_close( $kapcsolat );
$szoveg = "szöveg + link";
$headers = 'From: email cím';
$targy = 'Regisztráció megerosítése';
mail($email, $targy, $szoveg, $headers);
$mindenoke="ok";
print "A megadott email címre elküldtük a regisztráció véglegesítéséhez szükséges információkat.";
}
}
if ($mindenoke<>"ok") { include ("form.php"); }
} -
cucka
addikt
Kapcsold be a hibajelzést: error_reporting néven keresd meg a php.ini-ben és állítsd E_ALL-ra. Utána olvass vissza pár odlalt, kb. 1-2 hete volt erről szó, hogy a http header-öket módosító műveletek előtt (pl. ilyen a header() függvény) nem szabad kiírni semmit a standard kimenetre.
mod: még valami. mikor kell exit utasítást használni?
Alapvetően nem kell sehol exit-et használni. Amúgy pont ugyanazt csinálja, mint a die(), két néven fut ugyanaz a nyelvi elem. -
Tele von Zsinór
őstag
Nem látom a kódot, ezért csak tipp: kimenetet generálsz, és utána akarsz http fejlécet írni, amire figyelmeztet is a php (ha olyan az error_reporting), hogy hiba és nem lehet.
Gyors, tüneti megoldás az output buffering (ob_start és társai) használata, de a szép (és karbantartható) megoldás az alkalmazáslogika és a kimenet szétválasztása.
Ha nem hiányzik az exit, akkor ne is használdmég egy megjegyzés: az ilyen átirányítás után még lefut a scripted, nem szakad meg azonnal. Továbbá gyakran le van tiltva az ilyen átirányítások automatikus követése, illik a kimenetbe legalább annyit rakni, hogy "átirányítunk ide: link".
Új hozzászólás Aktív témák
Hirdetés
- Újszerű Karcmentes Samsung Galaxy S24 8/128GB 2028.05.19-ig garanciával
- 16 db Intel Celeron és Celeron D processzor
- Gamer PC - Ryzen 7 5700X / RTX 5060 / A520M / 16GB vagy 32GB RAM / 256GB + 1TB M.2 SSD / 650W Silver
- Gamer PC eladó, erős gép, frissen pasztázva.
- Apple iPhone 16 Pro Max 256GB,2026.07.29-ig Apple Garancia,Makulátlan Karcmentes Állapot
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7500F 32/64GB DDR5 RTX 5060 8GB GAMER PC termékbeszámítással
- Microsoft Surface Pro 6 i5-8350U 8GB 256GB 1 év garancia
- Ventillátorok és tápkábel modding kitűnő árakon! Most extra 10% kedvezmény!
- Asus 14 Zenbook UX425E FHD IPS i7-1165G7 4.7Ghz 16GB 512GB SSD Intel Iris XE Graphics Win11 Garancia
- Geforce GTX 1050, 1050 Ti, 1060, 1650, 1660 - GT 1030 - Low profile is (LP)
Állásajánlatok
Cég: FOTC
Város: Budapest