Hirdetés

2024. május 28., kedd

Gyorskeresés

Útvonal

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

Hozzászólások

(#701) cucka válasza Kicsi Én (#700) üzenetére


cucka
addikt

rosszul tudod, függvénynévnél nincs jelentősége, változónévnél viszont van.
kapcsold be a hibajelzést a php-ban, (állítsd E_ALL-ra), úgy könnyebb lesz kideríteni, mi a gond.

[ Szerkesztve ]

(#702) cidalain válasza Kicsi Én (#700) üzenetére


cidalain
veterán

igenis tessék csak nagybetűkkel írni mindenhol a GET, POST, REQUEST és hasonló kifejezéseket.

mindenhol!
<form name='akarmi' method='POST' action='$_SERVER[PHP_SELF]'>

$_POST['x']
$_GET['y']
$_REQUEST['z']

demég a sessionváltozókat is:

$_SESSION['q']

nem nagy művészet, ugyanannyiba kerül nagybetűvel írni, és lám működni is fog (tény hogy ez lehet beállításfüggő, de a nagybetűkkel még sohasem, volt bajom)

>> GearBest Club Veszprém << >> https://www.facebook.com/gbc.veszprem <<

(#703) Kicsi Én


Kicsi Én
csendes tag

Igazatok van, köszi a segítséget!

(#704) vakondka válasza Kicsi Én (#703) üzenetére


vakondka
őstag

Az sem lenne baj ha e helyett: <?=$namein?>
ezt használnád mindenütt: <?php echo $namein; ?>
;)

https://toptarget.hu - Online Marketing Ügynökség

(#705) cucka válasza vakondka (#704) üzenetére


cucka
addikt

legjobb tudomásom szerint ez a két kifejezés ekvivalens

[ Szerkesztve ]

(#706) vakondka válasza cucka (#705) üzenetére


vakondka
őstag

ez így is van.
csak ha nincs neki bekapcsolva a short tags a szerveren akkor nem fog működni az ő verziója... ha jól tudom...

https://toptarget.hu - Online Marketing Ügynökség

(#707) vakondka válasza vakondka (#706) üzenetére


vakondka
őstag

ki is próbáltam:
ha a php.ini-ben ez így van beállítva: short_open_tag = Off
(márpedig szinte mindenütt így van beállítva) akkor nem fut le csak az általam írt verzió.

https://toptarget.hu - Online Marketing Ügynökség

(#708) cucka válasza vakondka (#707) üzenetére


cucka
addikt

ok, ez igaz.
(mondjuk azt nem értem, miért kapcsolná ki bármelyik rendszergazda short tags-t)

(#709) vakondka válasza cucka (#708) üzenetére


vakondka
őstag

A php.ini kommentjében van egy ilyen ajánlás:

NOTE: Using short tags should be avoided when developing applications or
libraries that are meant for redistribution, or deployment on PHP
servers which are not under your control, because short tags may not
be supported on the target server. For portable, redistributable code,
be sure not to use short tags.

gondolom ezért szokták kikaocsolni ezt a dolgot a rendszergazdák.
Ahol én eddig próbáltam, ott mindenütt ki volt kapcsolva a short_tags.
lehet, hogy a fenti ajánlás miatt, hogy hordozható legyen a kód, de lehet hogy csak lustaságból, mert ha jól tudom ez az alapértelmezett.

De csak azért vetettem fel az egészet, mert azt írta Kicsi Én, hogy nem jönnek át a változói.
...és nem csak $_POST-ot nem írta nagybetűvel, hanem ez a short tag használat is okozhat gondot, felesleges fejtörést...ha pl localhost-ot már megy neki, mert kijavította a $_POST-ot, de a szerveren meg üres a képernyő, mert nem íródik ki a változó tartalma.

https://toptarget.hu - Online Marketing Ügynökség

(#710) tbs válasza cucka (#708) üzenetére


tbs
addikt

Mindig kikapcsolom. Pl. könnyebb a kódinjektálást lefülelni. ;)

(#711) Korcsii


Korcsii
őstag

van valami különbség aközött, hogy za echo-t soronként lezárom, vagy csak egy nagyobb rész után? szerver terhelését, sebességét illetően valami különbség?

pl:

echo "abc\n";
echo "def\n";

vagy

echo "abc
def";

(#712) loszerafin válasza Korcsii (#711) üzenetére


loszerafin
senior tag

Esetleg egy próbát megér, nem? Futtasd a két programot pár ezerszer.
Mondjuk a második nem egyezik meg az első programmal, a végéről lemaradt egy "\n".

(#713) Korcsii válasza loszerafin (#712) üzenetére


Korcsii
őstag

ok, 5000 soroson kipróbálva, 0.01 másodperc localhoston (5 éves gép).... szóval nemsok...
csak gondoltam valami nagy profi nagy tudományosan elmagyarázza hogy a program működéséből adódóan a....
:)

(#714) Tele von Zsinór válasza Korcsii (#713) üzenetére


Tele von Zsinór
őstag

Szerintem inkább egyéni ízlés kérdése. Én az első formát jobban szeretem, bár a második valószínűleg gyorsabb (egy parancs, egy string).

(#715) Protezis


Protezis
őstag

CakePHP-sok figyelem! :)

A kovetkezo problemat jopar helyen felvetettem, de valaszt nem kaptam. Gondoltam hatha itt nagyobb sikerrel jarok.

Mielott eltarolok valamit az adatbazisban, raeresztem a sanitize clean() metodust a bejovo adatokra. Igy az adatbazisban pl. a < jel &lt; alakban tarolódik el.

$this->data = $sanitize->clean($this->data);

Megjeleniteskor nincs is baj, viszont ha a tartalmat egy input mezobe rakom, akkor az elejen levo & konvertalodik &amp; -ra, es az eredmeny a html forrasban &amp;lt; , vagyis az oldalon nem alakul at < jelle, hanem a kodjat latom.

Ha nem a

$form->input()

metodust hasznalom, hanem hagyomanyosan

echo '<input type="text" value="'.$value.'" />'

alakban, akkor mukodik.

Nem ertem, hogy ha mar van Sanitize::clean(), akkor kiirasnal miert nem ugy mukodik a dolog, ahogy elvarna az ember. A kerdesem: mas ezt hogy oldja meg?

(#716) lúzer


lúzer
veterán

Bocsi a szuperlúzer kérdésért!
Suliban most fogjuk kezdeni a php-t, még nem tudok róla semmit.

Megszereztem a php4 24 óra alatt nevű könyvet, ez az első "példa"
1: <?php
2: print ("Hello Web!");
3: ?>

feltöltöttem egy ingyenes tárhelyre, ez fogad:
Parse error: syntax error, unexpected ':' in /mnt/ultraweb/f/fr/frtr/aa.php on line 2

Kérdéseim: Mi a gond?
Otthon web nélkül is lehet gyakorolni?
Mit kell hozzá letölteni, win alá?

MO. RIP. - az utolsó kapcsolja le a villanyt.

(#717) Protezis válasza lúzer (#716) üzenetére


Protezis
őstag

"Kérdéseim: Mi a gond?" - Hat mondjuk a sorszamok :)

Igen, lehet. Feltelepitesz egy webszervert (apache, iis), meg a php-t.
De win ala ajanlom a wos-t.

(#718) lúzer válasza Protezis (#717) üzenetére


lúzer
veterán

Kösz, így már történt valami! :C

MO. RIP. - az utolsó kapcsolja le a villanyt.

(#719) lúzer válasza Protezis (#717) üzenetére


lúzer
veterán

ez a wos egy webszerver?

MO. RIP. - az utolsó kapcsolja le a villanyt.

(#720) cucka válasza lúzer (#719) üzenetére


cucka
addikt

igen, ott a mellékelt linken le van írva, hogy mi meg merre, azt el kéne olvasni.
egyébként ez a wos eléggé speciális felhasználásra van tervezve, valószínüleg bármelyik egyszerűen telepíthető webszerver csomag jó lenne neked (pl. appserv).
a másik (ajánlott) lehetőség, hogy külön-külön telepíted és konfigurálod az apache-ot meg a php-t, ez azért jó, mert ezáltal is tanulsz ezt-azt.

[ Szerkesztve ]

(#721) lúzer válasza cucka (#720) üzenetére


lúzer
veterán

Köszi szépen.
itt amúgy hasznosnak tűnő dolgot találtam, ez alapján talán el tudok indulni:
http://weblabor.hu/cikkek/apachephptelepites

MO. RIP. - az utolsó kapcsolja le a villanyt.

(#722) loszerafin válasza lúzer (#716) üzenetére


loszerafin
senior tag

Szerintem akár webszerver se kell, Linux alatt megy a php parancs módban is, a kezdő lépésekhez jó az is (meg haladó szinten is). Gondolom, Windowson is megy a parancs mód.

Linuxon így :
php -f "fájlod neve"
vagy
php -r "phpkódod"

(#723) loszerafin válasza Korcsii (#713) üzenetére


loszerafin
senior tag

csak gondoltam valami nagy profi nagy tudományosan elmagyarázza hogy a program működéséből adódóan a....

Elmagyarázom én, csak előbb mondd meg, melyik a gyorsabb :)

Egyébként úgy látom, az 5000 túl kicsi, nyomd feljebb. Fél óra futásnál már talán lesz
különbség.

Gyakorlati haszna persze nincs a dolognak, nem az echo-k miatt lesz lassú egy php program.

(#724) cucka válasza Korcsii (#713) üzenetére


cucka
addikt

kb. teljesen mindegy, igazából kár ilyeneken gondolkozni, ha lassú a weboldalad, akkor biztos nem ezért lassú.

(#725) Louloudaki válasza Protezis (#715) üzenetére


Louloudaki
aktív tag

mi mondjuk nem használunk sanitize-t. :DDD vannak még hibák és nehézkes dolgok benne, azt sajna hagyományos módon kell megoldani, htmlentities stb.
de ha már ezt felvetetted, nekem olyan kérdésem lenne, hogy ha van több radio buttonom, akkor cake-kel csak az elsőt tudom bejelöltté tenni, pl

$html->radio('X/y',array('0' =>'News','1' =>'Agenda','2'=>'Emploi'),
null,array(''=>'',''=>'','checked'=>'checked'));

így is az elsőben lesz a pötty, hiába adom meg, hogy a harmadik legyen bejelölve. erre ötlet?

// új topic cake-nek? hátha lenne több érdeklődő. :)

[ Szerkesztve ]

(#726) _Petya_


_Petya_
őstag

Hello!

PHP-ben szeretném megoldani az alábbi problémát:

Van egy string, ami így néz ki (reguláris kifejezés alakban): [0-9.]+{k,M}B

Tehát pl: "11.3MB", "28kB" stb...

A számok és a betűk közé szeretnék egy space-t beszúrni. Hogyan lehet ezt a legegyszerűben?

Petya

Fontos feladatot soha ne bízz olyan gépre, amit egyedül is fel tudsz emelni!

(#727) Tele von Zsinór válasza _Petya_ (#726) üzenetére


Tele von Zsinór
őstag

$output = preg_replace("#([0-9.]+)({k,M}B)#s","\\1 \\2",$input);

(#728) loszerafin válasza _Petya_ (#726) üzenetére


loszerafin
senior tag

substr($a,0,-2)." ".substr($a,-2)

(#729) _Petya_ válasza Tele von Zsinór (#727) üzenetére


_Petya_
őstag

Nálam ez nem működik, semmit nem csinál a szöveggel.

Petya

Fontos feladatot soha ne bízz olyan gépre, amit egyedül is fel tudsz emelni!

(#730) loszerafin válasza _Petya_ (#729) üzenetére


loszerafin
senior tag

preg_replace("/^([0-9.]+)([kM]B)$/","\\1 \\2","124kB");

[ Szerkesztve ]

(#731) loszerafin válasza _Petya_ (#726) üzenetére


loszerafin
senior tag

Nem néztem utána, de ez a {k,M} gyanús nekem, szerintem ilyen nincs.
Azaz {n,m} formában van, ahol n,m poz. egészek.

(#732) _Petya_ válasza loszerafin (#730) üzenetére


_Petya_
őstag

Köszönöm, ez működik.

Petya

Fontos feladatot soha ne bízz olyan gépre, amit egyedül is fel tudsz emelni!

(#733) loszerafin válasza _Petya_ (#732) üzenetére


loszerafin
senior tag

No, és a substr-es megoldásom miért nem tetszik? Megoldja a feladatot.

(#734) Protezis válasza Louloudaki (#725) üzenetére


Protezis
őstag

Baszaras, hogy senki nem hasznal sanitizet. De ha sajat megoldast hasznal valaki, akkor is gaz van :K
Kozben lett megoldas a problemamra.

Radio buttont meg nem hasznaltam cakephp-ban, igy nem nagyon tudok segiteni, raadasul te 1.1-et hasznalsz, mig en 1.2-ot. Leghamarabb hetvegen tudom kiprobalni, addig is ajanlom ennek a nezegeteset.

Bar ez eleg erdekes, szerintem itt lehet a gond:

''=>'',''=>''

Szerintem annyian nem hasznalnak itt a ph-n cakephp-t, hogy erdemes lenne neki kulon topikot nyitni, de ez csak az en velemenyem. Ahogy erzed.

[ Szerkesztve ]

(#735) H.O.D. válasza loszerafin (#730) üzenetére


H.O.D.
senior tag

preg_replace("/^([0-9.]+)([kM]B)$/","\\1 \\2","124kB");

Az okosok azt mondják, így szerencsésebb:

preg_replace("/^([0-9.]+)([kM]B)$/","$1 $2","124kB");

Jóllehet, tökéletesen szuperál az eredeti is... :R

Where do you want to go today?

(#736) SEK3


SEK3
tag

tud valaki valmi tuti megoldást arra, hogy mások ne láthassák az sql jelszót a php kódban?

(#737) loszerafin válasza SEK3 (#736) üzenetére


loszerafin
senior tag

Kik azok a "mások"?

(#738) SEK3 válasza loszerafin (#737) üzenetére


SEK3
tag

jogos.

Ahhoz, hogy kapcsolódjak az sql kisz...hoz, ahhoz a php kódba bele kell írnom a jelszót, s ha ezt egy külső ember letölti (a php forrást), akkor merényletet is merényelhet ellenem... bár ha külső ember php-t nem érhet el, akkor oké.
$válasz= "mások = olyan ember aki nem én vagyok, vagyis akinek nem kellene tudnia a jelszót";

(#739) Louloudaki válasza SEK3 (#738) üzenetére


Louloudaki
aktív tag

fogsz egy php fájlt, definiálod benne a host, user, password, db konstansokat, elmented egy mappába pl constant.phpnak, a mappába beleraksz egy .htaccess fájlt, tartalma: deny for all. aztán amelyik php fájlban kapcsolódni akarsz az adatbázishoz, abba pl require_once('elérésiút/constant.php')-val behúzod és használhatod a konstansokat a kapcsolódáshoz.

(#740) SEK3 válasza Louloudaki (#739) üzenetére


SEK3
tag

szóval megadom, hogy kik érhetik el...vádom és akkor biztonságban vagyok ( az adatok már így is külön fájlban voltak )

denksz :R

(#741) loszerafin válasza SEK3 (#738) üzenetére


loszerafin
senior tag

Nem erre gondoltam. A "másokat" jobban kell definiálni.

Pl.
1.
mások=interneten keresztül a webszerver segítségével érik el a fájlomat

Így nem látják a tartalmat, hiszen a php kódot futtatja a webszerver, nincs veszély.

2.
mások=a weblapomat tartalmazó szerver többi felhasználója, akik belelátnak a könyvtáramba

Puff, ez nagy baj.

3. mások=internetes szerver rendszergazdája
Nem fog sikerülni eldugni előle :)

4. mások=akik hozzáférnek a mentésekhez
stb,stb

[ Szerkesztve ]

(#742) loszerafin válasza Louloudaki (#739) üzenetére


loszerafin
senior tag

Jó megoldás, de talán ilyenkor egszerűbb olyan helyre tenni a php fájlt, amit a webszerver nem ajánl ki.

(#743) H.O.D. válasza SEK3 (#736) üzenetére


H.O.D.
senior tag

Így van, tedd egy külön file-ba. Praktikusan a wwwroot-on kívülre.

[ Szerkesztve ]

Where do you want to go today?

(#744) Louloudaki válasza H.O.D. (#743) üzenetére


Louloudaki
aktív tag

és ingyen tárhelynél pl ezt hogy tudom megoldani, mikor mindent a wwwrootba tudok csak feltölteni? vagy ha a fizetős tárhely szolgáltató sem teszi lehetővé?

(#745) Tele von Zsinór válasza Louloudaki (#744) üzenetére


Tele von Zsinór
őstag

Akkor .htaccess fileval tiltod a mappához hozzáférést, azaz ha valaki közvetlen akarja elérni a fileod, akkor 403-at kap, de includeolni tudod másik scriptbe.

(#746) Louloudaki válasza Tele von Zsinór (#745) üzenetére


Louloudaki
aktív tag

ezt írtam én is pár sorral lejjebb.

(#747) vancha2


vancha2
aktív tag

Hi két kérdésem lenne:

1. Hogy tudom azt megcsinálni, hogy az if függvénybe két feltételt rakok? Ezt kéne úgy megcsinálni, hogy ne csak egy méretet adhassak meg feltételként:

if ($meret == "800x600") {
[...]
}

2. PHP-ból lehet fájlokat törölni a szerverről? Ha igen hogyan?

Előre is köszönöm...

(#748) cucka válasza vancha2 (#747) üzenetére


cucka
addikt

1.
if (felt1 && felt2)
ahol az && logikai ÉS műveletet jelent, vagyis az egész akkor lesz igaz, ha mindkét "része" igaz. van még logikai VAGY művelet ( || ) és még jónéhány egyéb logikai művelet, lásd php manual.

2.
unlink() függvénnyel.

[ Szerkesztve ]

(#749) vancha2 válasza cucka (#748) üzenetére


vancha2
aktív tag

Köszi az 1.-t! A másodikról tudsz adni valami linket, amin részletesen le van írva?

(#750) cucka válasza vancha2 (#749) üzenetére


cucka
addikt

barátod a php dokumentáció. (php.net-en)

Útvonal

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