- Xiaomi Mi 11 - értékesített büntető
- Apple iPhone 16 - ígéretek földje
- Milyen okostelefont vegyek?
- Magisk
- Samsung Galaxy A52s 5G - jó S-tehetség
- Azonnali mobilos kérdések órája
- iPhone topik
- Mobil flották
- Bemutatkozott a Poco X7 és X7 Pro
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
Aktív témák
-
VladimirR
nagyúr
válasz
Forest_roby #4430 üzenetére
nem, ez amiatt van, hogy output started at ...
itt leirja, hogy a php hanyadik soraban van eloszor kimenet
a session_start fuggvenynek meg kell eloznie mindennemu kimenetet (celszeru emiatt a php elejere tenni) -
tkazmer
addikt
válasz
Forest_roby #4430 üzenetére
Itt az lehet a baj, hogy a fejléc már el lett küldve. Figyelj rá, hogy a session_start() ot lehetőleg az oldal legelejére tedd.
-
vakondka
őstag
válasz
Forest_roby #4062 üzenetére
Az if és else-hez azért én beraknám a kapcsos zárójeleket a biztonság kedvéért.
sql lekérésekhez hosszú távon érdemes írni egy funkciót, ami visszatér nem csak az eredményekkel, hanem sok hasznos adattal is, ez segíthet a hibakeresésben.
pl:
function sql_lekeres ($lekeres){
if (!@mysql_connect(HOSTNAME,USER,PASSW)){$eredmeny['hiba']=$php_errormsg;}
elseif (!mysql_select_db(ADATBAZIS)) {$eredmeny['hiba']=mysql_errno() . '': '' . mysql_error(); }
else {
$eredmeny['adat'] = mysql_query($lekeres);
if ( substr($lekeres,0,6)==strtoupper(''SELECT'') ){
$eredmeny['sorok'] = mysql_num_rows($eredmeny['adat']); }
else {$eredmeny['sorok'] = mysql_affected_rows();
}
}
Vissza fog térni a $eredmeny tömb.
Először megnézed, hogy üres-e a $eredmeny['hiba'], ha nem a fejlesztési fázisban ki is irathatod.
Maga az eredmény a $eredmeny['adat'] változóban lesz és kapsz egy hasznos infót,
ha megvizsgálod a visszatérő $eredmeny['sorok'] változót.
Ha beszúrsz egy sort, akkor it 1-nek kell lennie, lekéréskor sokkal hasznosabb is lehet, mert egyből meglesz, hogy hány sor felelt meg a lekérdezésednek.
ui: a nagybetűs változónevek define-al vannak beállítva állandónak a funkció előtt
[Szerkesztve]
[Szerkesztve] -
cucka
addikt
válasz
Forest_roby #4062 üzenetére
oké, eddig a szövegbe való behelyettesítésekről volt szó.
mivel fogalmam sincs, hogy mit szeretnél berakni, ezért csak annyi okosat tudok mondani, amit te is tudsz: szar a lekérdezés, amit összeraksz.
na innen a te dolgod debugolni - kiiratod a lekérdezést, megtalálod benne a hibát, satöbbi. -
cucka
addikt
válasz
Forest_roby #4059 üzenetére
hát ebből sok nem látszik, de esetleg próbálj meg debugolni, hasonlítsd össze az eredeti szöveget a behelyettesítés utánival. egyébként meg mi köze ennek a mysql-hez?
-
Forest_roby
őstag
válasz
Forest_roby #4059 üzenetére
ájjjj kicsit átalakította a ph! amit beillesztettem, no de sebaj!
-
VladimirR
nagyúr
válasz
Forest_roby #4057 üzenetére
nem lenne jobb megoldas regularis kifejezeseket hasznalni?
-
Forest_roby
őstag
válasz
Forest_roby #4056 üzenetére
perfect! egértelművé tettem a kétes dolgokat az adatbázisba mentésnél.
[/OFF] ---> </font><!-- [/OFF] -->
and
[/C] ---> </font><!-- [/C] --> -
VladimirR
nagyúr
válasz
Forest_roby #4049 üzenetére
na ennek most utana kellene neznem, mi a kulonbseg, de hasznalj idezojelet az aposztrof helyett (utobbit nem tudom pontosan, hogy mire is valo, a string-et az elobbiekkel kell hatarolni)
vagy ha aposztrofot hasznalsz, a string-ben levo idezojeleket nem kell escap-elni (akkor az aposztrofokat kell)
szerk.: es az elozohoz csatlakozva: esetleg nezd meg az strtr fuggvenyt is (szinten cserelgetesre - azert szeretem, mert nekem jobban atlathato)
[Szerkesztve] -
cucka
addikt
válasz
Forest_roby #4049 üzenetére
ha sima idézőjelek közé rakod a szöveget, akkor a szövegben szereplő dupla idézőjelet nem kell lezárni és ez fordítva is igaz. a lenti szerintem emiatt nem működik.
a str_replace pedig elfogad paraméterként tömböket is, szóval minden adott ahhoz, hogy a borzalom favágó kódodat kicsit kulturáltabb kinézetűre cseréld
(nem mellesleg gyorsabb, ha egyszer hívod meg a str_replace-t 40 elemű tömbökre, mint 40szer egyszerűstringekre).
és egyébként is, programozó nem írja le 40-szer ugyanazt. ha valamit kettőnél többször kell leírni, akkor oda ciklust vagy egyéb megoldást használj.
[Szerkesztve] -
VladimirR
nagyúr
válasz
Forest_roby #4047 üzenetére
de igen, egy nagy forgalmu oldalnal rossz otlet
egyeblkent igy nem tudom, mi lehet a baj, esetleg probald meg a valtoztatas elotti es a valtoztatas utani szoveget kiiratni
meg annak nezz utana, nem problema-e, hogy case sensitive a kodod -
raczger
őstag
válasz
Forest_roby #4045 üzenetére
szerintem egy kicsit nagyon hülyén csinálod, és munkaigényesen!
egyszerűen tárold el az adatbázisba ahogy van, és csak a kiiratásnál alakítsd át ezeket, így a szerkesztésnél sem fogsz gondokba ütközni! -
cucka
addikt
válasz
Forest_roby #4019 üzenetére
a legfontosabb, hogy minden olyan információt le kell ellenőrizni, amit a júzer visz/vihet be. ilyen pl. belépési form-nál a szövegmezők tartalma. le kell pl. zárni a speciális karaktereket (mysql_real_escape_string függvény), illetve ide tartozik még a magic_quotes_gpc, olvass utána, le van szépen írva, hogy mi az és mire jó
. egyszerű és hatékony, ha a kizárólag számot tartalmazó mezőket leellenőrzöd az is_numeric függvénnyel.
a másik dolog, amivel keveseknek jut eszébe, hogy a _GET és a _POST is könnyedén hamisítható, tehát ezeknél is ellenőrzés kell.
kb. ennyi, dióhéjban. -
paramparya
őstag
válasz
Forest_roby #4016 üzenetére
Amikor a formot kiteszed, akkor így csinálod:
<form method=''post'' action=''<?php echo $_SERVER['PHP_SELF'] ?>''>
...
<input type=''submit'' value=''Küldés'' name=''elment''>
</form>
tehát küldésnél önmagának küldi el...
és feldolgozánál, a form kirakás előtt ellenőrzöd hogy el lett-e postolva a form, és ha igen feldolgozod, ha nem akkor kirakod, tehát így fog kb. kinézni a teljes file:
<?php
if( $_POST['elment'] )
{
if( $_SERVER['HTTP_REFERER'] != $_SERVER['PHP_SELF'] )
die(''Enyje te kis huncut, mitért postolgatsz a formomra innen? ''.$_SERVER['HTTP_REFERER']);
else
{
// feldolgozod
}
}
else
{
?>
<form method=''post'' action=''<?php echo $_SERVER['PHP_SELF'] ?>''>
...
<input type=''submit'' value=''Küldés'' name=''elment''>
</form>
<?php
}
?>
;)
Cuckának pedig igaza van, én sem használtam még soha, vannak hatásosabb védekezési módszerek, amik nélkül ez semmit nem ér, és ha azokat alkalmazod, akkor meg ez fölösleges :)
[Szerkesztve] -
cucka
addikt
válasz
Forest_roby #4016 üzenetére
pedig ez nem olyan bonyolult.
a form-odat ugyanazzal a file-al dolgozod fel, mint amivel kiiratod. ebben az esetben ha a PHP_SELF és a HTTP_REFERRER különbözik, akkor valami nem stimmel, elképzelhető, hogy valaki kívülről próbál adatokat betolni a formodba. gyakorlatilag ez egy plusz biztonsági fícsör, ami valószínüleg nem sokat ér.
ezt a livehttpheaders kiterjesztést pedig megnézem, még nem hallottam róla. -
paramparya
őstag
válasz
Forest_roby #4011 üzenetére
Jó lehet arra pl, hogy form action-jébe megadd, ha önmaga akarja feldolgozni a formot, és akkor pl. az ellenőrzésnél is figyelnéd, hogy a referer egyenlő-e a self-fel...
-
cucka
addikt
válasz
Forest_roby #4011 üzenetére
tulajdonképpen nem zavart, csak jobban szeretném ha csupa érdekes kérdés lenne ebben a topikban
. talán kicsit túlságosan leszóltalak, de mondjuk ilyen problémát tényleg nem nehéz egyedül megoldani. a következő a gondolatmenet:
1. hibát dob az átirányítás.
2. az átirányítás a header függvénnyel történik
3. megnézem, hova irányít át a header, hátha valami nem stimmel vele. ez egy egyszerű kiiratással a leggyorsabb
4. siker, megvan a hiba
5. készítek egy teszt oldalt, ahol átirányítok egy olyan oldalra, ami meghívja a phpinfo() függvényt. (ez két darab egysoros php file, fél perc alatt megvan). ezt azért, hogy megtudjam, melyik változóban található a keresett érték, vagyis az oldal neve, ahonnan átirányítottak
6. a tesztoldal működik, megkapom a phpinfo kimenetét, ahol kereséssel (ctrl+f) megtalálom a kérdéses változót
7. javítom a hibás kódot
ez most szájbarágós lett, de szerintem sokkal több sikerélményt nyújtana a programozás számodra, ha megpróbálnál egyedül debugolni. nem utolsósorban így az agyad is jobban rááll a php-ra, egy idő után egyre könnyebben fogod megtalálni a helyes megoldásokat a kérdéseidre. egyszóval vedd ezt bíztatásnak és építő jellegű hozzászólásnak.
[Szerkesztve] -
cucka
addikt
válasz
Forest_roby #4007 üzenetére
a logout.php-ben a PHP_SELF értéke véletlenül pont logout.php, vagyis végtelen ciklust generálnál, ezt védi ki a hibaüzenet.
egyébként tök király lenne, ha legalább megpróbálnál kicsit gondolkozni.
például megnézed mi van a PHP_SELF-ben, mondjuk úgy, hogy kiiratod a képernyőre, neadjisten elolvasod a help-ben hogy mi kell ott legyen. akkor némi agymunkát bevetve rájönnél, hogy butaságot írtál a kódba.
mod: ofkorz elkéstem
[Szerkesztve] -
paramparya
őstag
válasz
Forest_roby #4007 üzenetére
Mert ezzel önmagára akarná irányítani
használd a php_self helyett a HTTP_REFERER-t -
Forest_roby
őstag
válasz
Forest_roby #3637 üzenetére
ugy latom, hogy nem a php -vel van gond, hanem a javascript filelal, ami megívja a php-t, szóval átnézek az ajax topicba.
THX!
[Szerkesztve] -
raczger
őstag
válasz
Forest_roby #3635 üzenetére
az első baj az, hogyha a header előtt kiiratsz valamit abból hiba lesz
próbáld meg úgy, hogy ezeket a header függvényeket a print -es cucc elé rakod
-
szicsu
őstag
válasz
Forest_roby #3632 üzenetére
Tehát adott az url: print.php?valtozo=ertek
kinyerése ill így tudsz rá hivatkozni, ill dolgozni...
$_GET[''valtozo''
//ez kiiratva képernyőre:
echo $_GET[''valtozo'';
//vagy
print $_GET[''valtozo'';
//mind a kettő kiirja a képernyőre hogy: ertek
[Szerkesztve] -
TIV
tag
válasz
Forest_roby #3614 üzenetére
<meta http-equiv=''cache-control'' content=''no-cache''>
-
RedAnt
aktív tag
válasz
Forest_roby #3598 üzenetére
Az a javascript: nem kell oda. A $path pedig legyen idézőjelben. Egy egyszerű js fájl így nézne ki ehhez:
function getXmlHttpRequestObject() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else if(window.ActiveXObject) {
return new ActiveXObject(''Microsoft.XMLHTTP'');
} else { // regi a bongeszoje
}
}
var http = getXmlHttpRequestObject();
function openfile(path) {
http.open('get', path);
http.onreadystatechange = handleOpen;
http.send(null);
}
function handleOpen() { // ha ki érdekes mit ad a meghívott php eredményül
if (http.readyState == 4) {
var response = http.responseText;
// aztán ezt a választ itt feldolgozhatod, kiírathatod, stb.
}
}
De ez elég off itt a php topikban, ez már inkább js, vagy van direkt ajaxos topik asszem. -
RedAnt
aktív tag
válasz
Forest_roby #3594 üzenetére
Szerintem ezt csak ajax (javascript) segítségével lehet csak megoldani. Pl. a link #-re mutat (href=''#'') és onclick-ban meghívsz egy függvényt ami xmlhttprequest segítségével lehívja a php-t ami a szükséges függvényt tartalmazza.
-
Benmartin
senior tag
válasz
Forest_roby #3590 üzenetére
ellenőrzöd a felhasználónevet és a jelszót ha ez stimmel hozz létre egy session-t $_SESSION['login'] = true és adj neki igaz értéket. Azután nincs más dolgod mint a védett oldalon ellenőrizni hogy a session értéke megfelelő-e pl.:
if ($_SESSION['login'] !== true) {
print ''be kell jelentkezned'';
exit();
}
Warningot meg ezért ad: [link] bekapcsolhatod a kimeneteli pufferelést [link] így vagy a head rész után teszed be a session_start()-ot.
[Szerkesztve] -
burgatshow
veterán
válasz
Forest_roby #2709 üzenetére
Először is menj át az adatbázis problémáiddal a mysql topicba.
Másodszor, ha szám akkor miért varchar? miért nem integer? -
paramparya
őstag
válasz
Forest_roby #2709 üzenetére
Ha számot akarsz tárolni, akkor ne varcharként tárold, az szöveges, hanem integer -ként.
-
cucka
addikt
válasz
Forest_roby #2706 üzenetére
itt egy gyorstalpaló tutorial, talán hasznos lesz [link]
-
cucka
addikt
válasz
Forest_roby #2704 üzenetére
mysql_select_db függvény.
nem bántásból, de rengeteg könyv/tutorial foglalkozik a php/mysql témával, jobban járnál, ha esetleg elolvasnál egyet. -
paramparya
őstag
válasz
Forest_roby #2702 üzenetére
A kód 'végén' kiíratod a táblát, formot, stb., és el lehet küldeni, a kód 'elején' pedig ha van post-olt változó, akkor eltárolod mysql-ben, és a kód 'vége' már az új értékeket fogja kiírni.
-
L3zl13
nagyúr
válasz
Forest_roby #2697 üzenetére
''mod: nyilván nem egy változó kiírása okozza a problémát.''
Akkor mi? Ez egy sima form feldolgozás, ahol a form actionje önmagára mutat
A ''frissítés'' gombnak meg természetesen submitolnia kell.
Annyi ''extra'' van benne, hogy a form kiiratása előtt ott kell legyen a feldolgozást végző PHP rész is, ami csak akkor futhat le, ha a form el lett küldve. (Vizsgálod valamelyik a formban lévő $_POST változó létezését.)
A form kiiratásánál meg vissza kell írnod a megfelelő értékeket, ha léteztek.
Ez csinálhatod a gányolós módszerrel (<INPUT TYPE=''text'' value=''<? echo $_POST['akarmi';?>''>) vagy valemi esztétikusabb módszerrel is. (pl smarty)
-
tbs
addikt
válasz
Forest_roby #2697 üzenetére
Önmagára mutató form. Gusztustalan minta:
kiir.php:
< ? if isset ( $_POST [ ''ize'' ] )
$valtozo = $_POST [ ''ize'' ] ? >
< form post kiir.php >
< ? print $valtozo ? >
< input name=''ize'' / >
< input type=''submit'' / >
< / form > -
Forest_roby
őstag
válasz
Forest_roby #2697 üzenetére
up
-
VladimirR
nagyúr
válasz
Forest_roby #2577 üzenetére
< => &lt;
-
paramparya
őstag
válasz
Forest_roby #2578 üzenetére
Csak annyiból állna a szöveg, vagy még előtte és utána is lenne valami, amit el kéne azokkal együtt tüntetni?
-
paramparya
őstag
válasz
Forest_roby #2575 üzenetére
Itt ugyan furcsán jelenik meg, de értem mire gondolsz
a htmlspecialchars() fv-nyel tudod ezt megcsinálni, az összes ilyet cseréli.
Mod: most, hogy már szerkesztetted jól jelenik meg itt is
[Szerkesztve] -
Forest_roby
őstag
válasz
Forest_roby #2574 üzenetére
asszem megvan
< --> <
[Szerkesztve] -
paramparya
őstag
válasz
Forest_roby #2570 üzenetére
$text = str_replace('***', 'ho', $text);
$text = str_replace('===', 'sin', $text); -
paramparya
őstag
válasz
Forest_roby #2568 üzenetére
csak eger_replace helyett ereg_replace()
-
paramparya
őstag
válasz
Forest_roby #2566 üzenetére
str_replace(), eger_replace
Az előbbi egyszerű 'szövegcserélő', míg a másodiknál reguláris kifejezéseket is lehet használni...
Érdemes még használni a htmlspecialchars-t, vagy a strip_tags függvényt -
Forest_roby
őstag
válasz
Forest_roby #2492 üzenetére
hi!
Na kipróbáltam egy valószínűleg működő változatot a mymail() függvényre.
ezt a választ kaptam:
Warning: fsockopen() has been disabled for security reasons in ....URL.... on line 21
Hát ez nem jött be!
mod.:
Ha vkit érdekel, itt a forrás: [link]
[Szerkesztve] -
paramparya
őstag
válasz
Forest_roby #2487 üzenetére
Ultrawebnél asszem nincs mail-küldési kvóta, de egyáltalán nem biztos
-
paramparya
őstag
válasz
Forest_roby #2489 üzenetére
persze
function mail2(paraméterek)
{
....
} -
szicsu
őstag
válasz
Forest_roby #2487 üzenetére
Hi!
Nekem a tárhelyem az eplanet-nél van.[link]
ott szokott meni a mail rendesen, ha jól tudom ott napi 50 db a max. -
vzsolo2225
tag
válasz
Forest_roby #2484 üzenetére
A ''.='', sztringösszefűző operátor. Nem azért kell, hanem azért, mert így tudsz egy változó előző értékéhez hozzákapcsolni egy új értéket.
-
szicsu
őstag
válasz
Forest_roby #2482 üzenetére
próbáld ki hogy műxik-e mert én még kezdő vagyok
-
szicsu
őstag
válasz
Forest_roby #2480 üzenetére
$cimzet=''Forest Roby <forest_roby@freemail.hu> '';
$fejlecek .= ''From:'' . $cimzet . ''\r\n'';
elméletileg így műxeni fog....
de ha a nevet és a emailt külön változóban eltárolva, akkor :
$nev=''Forest Roby'';
$mail=''forest_roby@freemail.hu'';
$fejlecek .= ''From:'' . $nev .'' <'' . $mail . ''>\r\n'';
[Szerkesztve] -
szicsu
őstag
válasz
Forest_roby #2478 üzenetére
Ilyenre gondolsz?
$fejlecek .= ''Bcc:''. $valtozo . ''\r\n''; -
vzsolo2225
tag
válasz
Forest_roby #2435 üzenetére
Hát az előbbi ($HTTP_POST_VARS[ 'targy_txt' ]) verzió már nem javallot.
Amúgy, ha innen letöltöd a manualt chm formátumban (windows súgó fájl), akkor gyorsan és egyszerűen a legfrisseb infókhoz juthatsz, meg persze az alapok is benne vannak:
[link]
[Szerkesztve] -
vzsolo2225
tag
válasz
Forest_roby #2433 üzenetére
Küldő oldalon:
<FORM action='feldolgoz.php' method=post name=kuldes>
<INPUT class=tbox type=text name=adat>
<INPUT class=button type=submit value=Küldés></FORM>
Fogadó oldalon (feldolgoz.php):
<?php
echo $_POST['adat'];
?>
[Szerkesztve]
Aktív témák
Hirdetés
- Thinkpad X13 Gen2i 13.3" FHD+ IPS i5-1145G7 16GB 512GB NVMe gar
- Gyakorlatilag új, GARANCIÁLIS (2026.12.23-ig!) Asus ROG Strix G16 (G614JV) gamer laptop RTX 4060-nal
- Switch OLED piros-kék, 2025. novemberig Alza garis, dobozával és minden tartozékkal
- Eladó! MSI mag 360r-v2 komplett cpu hűtő (Csomagküldés az árban)+vezérlő
- NEOS BAZÁR számtek kellékek, kábelek, tartozékok, egerek
- Csere-Beszámítás! Asus Rog Strix GTX 1080Ti 11GB GDDR5X Videokártya!
- Apple iPhone 14 128Gb Kártyafüggetlen, 1Év Garanciával
- Telefon felváráslás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
- Apple iPhone 14 128GB, Kártyafüggetlen, 1 Év Garanciával
- Csere-Beszámítás! AMD Ryzen 7 7700X Processzor!
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest