Hirdetés

2024. május 28., kedd

Gyorskeresés

Útvonal

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

Hozzászólások

(#501) Korcsii válasza SEK3 (#499) üzenetére


Korcsii
őstag

:) az előbb pont ezem gondolkoztam, hogy hogy is van ez... nem tudom hogy ?>-kor csinál-e valamit a szerver.... ha akkor leállít valamit, és <?php-nél újraindítja, akkor biztos megkerhelőbb, ha nem akkor nemtudom... én csak a fájl legvégén szoktam lezárni...


más, kérdés:
fórum... vannak ugye bbkódok és smiley-k, és ugye egy ne konvertáljon opció... akárcsak itt...
az lenne a kérdés, hogy azt meg lehetne oldani valahogy, hogy pl van egy $text, és egy [code] bbcode, és csak abban ne konvertálja a smileykat/bbkódokat, függetlenül attól hogy a ne konvertáljon be van-e kapcsolva?
előre is kösz....

(#502) H.O.D. válasza Korcsii (#501) üzenetére


H.O.D.
senior tag

kiveszed a [code][/code] közötti részeket a sztringből, megcsinálod a konverziót (ha be van kapcsolva), aztán visszateszed őket

Where do you want to go today?

(#503) Korcsii válasza H.O.D. (#502) üzenetére


Korcsii
őstag

kösz, a megoldás menetét valahogy én is így gondoltam, csak a php ''kódkincsem'' (ha már van szókincs:) még kicsit foghíjas...

esetleg meg tudnád mondani melyik parancsokkal menne? elég egy-két php.net link is ;)

(#504) The Butcher


The Butcher
tag

:( :DDD
Ennyi :)

(#505) H.O.D. válasza Korcsii (#503) üzenetére


H.O.D.
senior tag

a sztringkezelő függvényeknél nézelődj. Leginkább a strpos() a str_replace() és a substr_replace() függvényekre lesz szükséged.

Where do you want to go today?

(#506) Thunder78 válasza SEK3 (#499) üzenetére


Thunder78
senior tag

Szerintem nem jelent plusz terhelést a szervernek, ha többször zárod le és nyitod ki!
Viszont a programod kevésbé átlátható lesz majd ezáltal.
Javaslom, hogy vedd ketté a html és php kódokat. Többféle módszer is létezik erre, én patTemplate-t használok, nekem bevállt :)
Persze ez szubjektív és csak javaslat :D

''A víz a legerősebb ital. Egy egész hajót is elbír!''

(#507) szicsu


szicsu
őstag

Sziasztok!

Az opera session kezelésével kapcsoatban merült fel néhány problémám.Miért van az hogy minden lap betöltésénél új sessiont indít az opera? Legalább is én ez tapasztaltam, mert az alábbi kód minden lap frissítésekor más kimenetet ad, és ezért nem tudok adatokat tárolni a sessionba.
<?php
session_start();
echo session_id();


Én rontok el valamit? Vagy valami okos dolog, amit nem tudok :F

''Az alkotó élet titka az, hogy felnőttkorban is megőrizzük a gyermekkor szellemét.''

(#508) H.O.D. válasza szicsu (#507) üzenetére


H.O.D.
senior tag

más böngészővel megy?

Where do you want to go today?

(#509) föccer


föccer
nagyúr

Üdv.

Egy egyszerű kérdésem lenne:

Megoldható-e az, hogy a php kódot a futtatásában megszakítom.

Értem ezalatt azt, hogy pl ha egy feltétel igaz, akkor a php végigfut, ha nem igaz, akkor ott befejezi a futást. Ha van erre lehetőség, akkor milyen utasítással tudom megtenni.

Köszönöm a segítséget.

üdv.: föccer

Építésztechnikus. Építőmérnök.

(#510) H.O.D. válasza föccer (#509) üzenetére


H.O.D.
senior tag

exit

Where do you want to go today?

(#511) H.O.D. válasza Korcsii (#503) üzenetére


H.O.D.
senior tag

Próbáld ki ezt:

<?php

define(''C_ON'' , ''[CODE]'' , true);
define(''C_OFF'' , ''[/CODE]'' , true);

// ezeket kell lecserélni
$bbcodes = array('':)'' , '':D'' , '':DD'' , '':DDD'' , '':P'' , '':('' , '':(('');
// erre cseréli
$bbimages = array(''s1'' , ''s2'' , ''s3'' , ''s4'' , ''s5'' , ''s6'' , ''s7'');
// a kapcsoló, ami jelzi, hogy kell-e cserélni
$_replacing = true;


switch(true) {
case strpos(strtolower($_ENV[''OS'']) , ''win'') !== false:
$break = chr(0x0d) . chr(0x0a);
break;
case strpos(strtolower($_ENV[''OS'']) , ''mac'') !== false:
$break = chr(0x0d);
break;
default:
$break = chr(0x0a);
break;
}

$string = str_replace($break , ''<br />'' , $_POST[''t1'']);
$chunks = explode(C_ON , $string);
if(!empty($chunks)) {
$i = 0;
foreach($chunks as $chunk) {
if(strpos($chunk , C_OFF) !== false) {
$nocodes = explode(C_OFF , $chunk);
$non_replaceables[$i ++] = $nocodes[0];
$replaceables[$i ++] = $nocodes[1];
}
else {
$non_replaceables[$i ++] = '''';
$replaceables[$i ++] = $chunk;
}
}
}

if($_replacing === true) {
foreach($replaceables as $key => $replaceable) {
$replaceables[$key] = str_replace($bbcodes , $bbimages , $replaceables[$key]);
}
}

$newchunks = $non_replaceables + $replaceables;
ksort($newchunks);
$string = implode('''' , $newchunks);

?>


$_POST[''T1'']-ben van az ádatott szöveg, amit feldolgoz

[Szerkesztve]

Where do you want to go today?

(#512) föccer válasza H.O.D. (#510) üzenetére


föccer
nagyúr

:B

másik kérdés: Miért nem akar menni... :F

<?php
$_user = $_POST[a_id];
$_jelszo = $_POST[a_jelszo];
$_correkt = ''false'';
$_adminneve = '''';

switch ($_user){
case ''****'': if ($_jelszo == ''*****) {
$_correkt = ''true'';
$_adminneve = ''******'';
break;}
case ''*****'': if ($_jelso == ''******''){
$_correkt = ''true'';
$_adminneve = ''*****'';
break;}

if ($_correkt == true ){
echo ''Üdvözöllek ''.$_adminneve;
}
else
{
echo ''Ismeretlen felhasználó! Semmi keresnivalód itt!'';
}

?>


A hibát az utolsó sorra jelzni ( ;> )

A neveket, és a jelszavakat kicsillagoztam.

Kösszke.

[Szerkesztve]

Építésztechnikus. Építőmérnök.

(#513) Lortech válasza föccer (#512) üzenetére


Lortech
addikt

Switchet nem zárod le, csak a case-t. ( } )
False-t és true-t pedig ne tedd idézőjelek közé, főleg ha az if ($_correkt == true ){ sorban idézőjel nélkül hasonlítod.
A 7. sorban is hiányzik egy lezáró idézőjel.

Thank you to god for making me an atheist

(#514) Bici


Bici
félisten

Heló!

Az lenne akérdésem, hogy PHP-val hogy tudom lekérni, hogy egy könyvtárban hány darab fájl van? Az is jó, ha csak a számot kapom vissza, de még jobb lenne, ha egy bizonyos kiterjesztésű fájlok listáját adná vissza.
(Néztem a hu.php.net-en, de nem találtam, mert nemtom mit keressek. :B )

Köszi szépen!

Eladó régi hardverek: https://hardverapro.hu/apro/sok_regi_kutyu/friss.html

(#515) paramparya válasza Bici (#514) üzenetére


paramparya
őstag

$fileCount = 0;
$dirHandler = opendir( 'utvonal' );

while ( ( $file = readdir( $dirHandler ) ) !== false )
{
if( $file != '.' and $file != '..' )
{
$fileCount++;
}
}

closedir( $dirHandler );


és a fileCountban ott lesz a fájlok száma ;)

persze ez beleszámolja a könyvtárakat is!

[Szerkesztve]

(#516) H.O.D. válasza paramparya (#515) üzenetére


H.O.D.
senior tag

if($file != '.' && $file != '..' && !is_dir($file))

ha ez a feltétel, akkor a könyvtárakat nem számolja.

Where do you want to go today?

(#517) H.O.D. válasza föccer (#512) üzenetére


H.O.D.
senior tag

$_correkt == true

Ha logikai értéket vizsgálsz, akkor ezt használd: ===

Where do you want to go today?

(#518) föccer


föccer
nagyúr

Köszönöm a hibajavítást. Ha ráérek egy picit, javítok.

Nemhiába sík hule vagyok a php-hoz :)

Építésztechnikus. Építőmérnök.

(#519) Bici válasza paramparya (#515) üzenetére


Bici
félisten

Woahh!!!

Köszi szépen!! :R

Neked is H.O.D.!!

Eladó régi hardverek: https://hardverapro.hu/apro/sok_regi_kutyu/friss.html

(#520) H.O.D. válasza föccer (#518) üzenetére


H.O.D.
senior tag

Mindenki így kezdi... :DDD

[Szerkesztve]

Where do you want to go today?

(#521) föccer válasza H.O.D. (#520) üzenetére


föccer
nagyúr

4-5 napot foglalkoztam eddig vele :)

on:

POST[]- változóként hogyan tudonátadni konstans értékeket?

definiálok így egy form-ot, ami hivatkozik egy másik php-ra.

<form method=''POST'' action=''vegrehajt.php''>


a formon van x elem, aminek mindnek van neve, és eza alapján a végrehajt.php-ban el tudom öket érni. De azt hogyan csinálom, hogy egy egyszerű konstanst adok át? Értelemszerűen nem akarok hozzá textarea-t vagy text elemet létrehozni, mert minek...

Ja, és az sem megoldás, hogy a hivathozásban átadom ( végrehajt.php?konst1=xxx&konst2=yyyy), mert ''bizalmas'' cuccokat kellene átadnom a végrehajtó php-nek (azonosító, jelszó).


remélem érthető :)
Köccenet

üdv.: föccer

Építésztechnikus. Építőmérnök.

(#522) H.O.D. válasza föccer (#521) üzenetére


H.O.D.
senior tag

bevezethetsz az űrlapon rejtett mezőt:

<input type=''hidden'' name=''nev'' value=''ertek'' />

Where do you want to go today?

(#523) Thunder78 válasza föccer (#521) üzenetére


Thunder78
senior tag

Vagy ahogy H.O.D. mondja, vagy ha usernév és jelszó, akkor beteheted őket egy munkamenet változóba.

<?
session_start();

...

//berakás munkamenetbe
$_SESSION[ 'user' ] = $user;
$_SESSION[ 'pass' ] = $pass;

...

?>

<?
session_start();

...

//kiszedés munkamenetből
$user = $_SESSION[ 'user' ];
$pass = $_SESSION[ 'pass' ];

...

?>


Persze a $pass-nál érdemes md5-öt használni azért :)
A lényeg, hogy a session-start(); minden kód elején ott legyen.
Onnantól nem kell foglalkoznod ezzel a két adattal, amíg nem változik vagy az illető ki nem jelentkezik.
Én ezt szoktam használni :))


[Szerkesztve]

''A víz a legerősebb ital. Egy egész hajót is elbír!''

(#524) Thunder78 válasza Thunder78 (#523) üzenetére


Thunder78
senior tag

Ez a módszer ugye azért jó, mert a vissza gomb hatására is ''közlekedik'' a felhasználónév és jelszó :)

''A víz a legerősebb ital. Egy egész hajót is elbír!''

(#525) Thunder78


Thunder78
senior tag

Nekem olyan kérdésem volna, hogy lehet-e egy html űrlapon valahogy maszkolni a text tipusú beviteli mezőt?
Történetesen egy szerződéskötő oldalt készítek, és ott kellene egy számlaszámot bekérnem úgy, hogy 3 x 8 db számot tudjon csak beütni a user. Az már csak hab lenne a tortán, ha mindezt mondjuk kötőjelekkel is el tudnám automatikusan választani :)
3 db text mezőn is gondolkoztam, de azért nem lenne baj egy elegánsabb megoldás :))

''A víz a legerősebb ital. Egy egész hajót is elbír!''

(#526) föccer válasza Thunder78 (#523) üzenetére


föccer
nagyúr

Ezt az md5-öt kifejteéd nekem egy kicsit részletesebben?

Építésztechnikus. Építőmérnök.

(#527) Thunder78 válasza föccer (#526) üzenetére


Thunder78
senior tag

Persze ...az md5 hash egy 32 karakteres hexa kód, amit a paraméterként átadott szövegből generál. Ugyanarra a szövegre mindig ugyanazt a kódot generálja.
Ha eleve ezt az md5 hash-t tárolod le a usernév mellé az adatbázisban, akkor kicsit nőhet az oldalad biztonsága.
használata:
$hash = md5($pass);
És utána a hash változót hasonlítod össze az adatbázisban letárolt hash értékkel. Illetve a munkamenet változóba is, meg mindenhol ezt az értéket használod, mintha ez lenne maga a jelszó :))
Röviden ennyi a lényege.
Jah? Mégvalami ... alapban nincs hozzá visszafejtés. Ha vissza akarod fejteni, akkor rákereshetsz, létezik script ami dekódol. De annyira én sem foglalkoztam ezzel, úgy használom ahogy leírtam az előbb :)

''A víz a legerősebb ital. Egy egész hajót is elbír!''

(#528) H.O.D. válasza Thunder78 (#525) üzenetére


H.O.D.
senior tag

A legtrógerebb, de legáltalánosabb megoldás, ha csak az űrlap elküldése után vizsgálod.
Javascripttel meg tudod csinálni, hogy beszúrkálja a kötőjeleket és csak számokat fogadjon el. Ha érdekel, szerintem van valami ilyesmim.

Where do you want to go today?

(#529) Lortech válasza Thunder78 (#527) üzenetére


Lortech
addikt

Nem létezik script, ami dekódol. Mivel egyirányú. Próbálkozással ''törhető'' csak.
''Tetszőleges'' számú karakterre (értsd: mega, gigabájtos nagyságrendűre) is ugyanolyan hosszú hash-t ad, így érdekes lenne, ha a kapott 16 bájtból visszaállítható lenne az eredeti.

Thank you to god for making me an atheist

(#530) Thunder78 válasza Lortech (#529) üzenetére


Thunder78
senior tag

Akkor lehet hogy keverem, de nekem úgy rémlik mintha egyik kollégámnak lenne valami hasonlója ... de ha nincs, annál jobb :D

''A víz a legerősebb ital. Egy egész hajót is elbír!''

(#531) Thunder78 válasza H.O.D. (#528) üzenetére


Thunder78
senior tag

Ez érdekelne engem ... JS-be még nagyon amatőr vagyok :)

''A víz a legerősebb ital. Egy egész hajót is elbír!''

(#532) föccer válasza Thunder78 (#527) üzenetére


föccer
nagyúr

Köszke az összefoglaló.

Hál' égieknek nem lesz akkor ''embertömeg'' az adminisztrátorok között (szerintem 2 fő max 3.., hogy adatbázist inditsak az adatok letárolására :)

Arra gondoltam, hogy a php-ban benne lenne az ellenörzés, és ha véletlen új tagot akatok felvenni, akkor beírom a swich mögé, hogy xy néven ilyen joggal rendelkező emberke lépett be. Az admin felület utána a kiosztott jogok alapján változik, szal elvileg járható út.

üdv.: föccer

Építésztechnikus. Építőmérnök.

(#533) Thunder78 válasza föccer (#532) üzenetére


Thunder78
senior tag

Elvileg járható út, de akkor a jelszavaknál mindenképp használj md5 hash-t szerintem. Különben elég ha valaki belenéz a forrásba, és máris tudja a másik jelszavát.
Erre készítesz egy ilyent:
<?
print md5(jelszó);
?>

És ebből máris tudod, hogy mit kell beírnod a forrásba :)
Aztán így máris védve vagy az önjelölt ''hacker''-ektől :D

''A víz a legerősebb ital. Egy egész hajót is elbír!''

(#534) Thunder78 válasza Thunder78 (#533) üzenetére


Thunder78
senior tag

Persze ez felvet azért egy problémát ... neked tudnod kell a másik jelszavát, hogy ''beégethesd'' a forrásba. Ha ez járható út, akkor no problem.
Persze megváltoztatni akkorsem fogják tudni maguk, csak Te.

''A víz a legerősebb ital. Egy egész hajót is elbír!''

(#535) föccer válasza Thunder78 (#533) üzenetére


föccer
nagyúr

Azé annyira nem vagyok láma, hogy php-val kiiratom a jelszavakat. A forrásba meg csak azt lehet megnézi,. hogy a legeerált oldalak mi a kódja.

üdv.: föccer

Mert, ha egy adatbázisban tárolom, akkor nem tudom megnézni? :D :U

[Szerkesztve]

Építésztechnikus. Építőmérnök.

(#536) H.O.D. válasza Thunder78 (#530) üzenetére


H.O.D.
senior tag

Az MD5 decrypterek általában adatbázisból dolgoznak, tudtommal algoritmussal nem lehet visszafejteni.

Where do you want to go today?

(#537) Thunder78 válasza föccer (#535) üzenetére


Thunder78
senior tag

Meg tudod nézni ... de ha egy hash-t látsz, mire mész vele? :)
Ezért kell azt letárolni.

''A víz a legerősebb ital. Egy egész hajót is elbír!''

(#538) Thunder78 válasza H.O.D. (#536) üzenetére


Thunder78
senior tag

Elképzelhető, ennyire nem merültem bele a dolgokba, csak tudom hogy kollégámnak van hozzá valamije :)
Én csak jelszavak titkosítására használom :))

''A víz a legerősebb ital. Egy egész hajót is elbír!''

(#539) H.O.D. válasza Thunder78 (#531) üzenetére


H.O.D.
senior tag

<!DOCTYPE HTML PUBLIC ''-//W3C//DTD HTML 4.0 Transitional//EN''>
<HTML>
<HEAD>
<TITLE>Számlaszám bevitel</TITLE>
<META http-equiv=Content-Type content=''text/html; charset=windows-1250''>
<SCRIPT type=''text/javascript'' language=''JavaScript''>
var getEv;
var cValue = '';
var cBuffer = '';
var Clen = 0;
var getEv;

function formatAccNumber() {
if(checkPressed() == true) {
cValue = document.all['a_num'].value;
if(cValue) {
cValue = cValue.replace(/-/g , '');
cLen = cValue.length;
if(cLen > 8) {
cValue = cValue.substr(0 , 8) + '-' + cValue.substr(8);
}
if(cLen > 16) {
cValue = cValue.substr(0 , 17) + '-' + cValue.substr(17);
}
}
cBuffer = cValue;
}
else {
cValue = cBuffer;
}
document.all['a_num'].value = cValue;
return false;
}

function checkPressed() {
getEv = event.keyCode;
if((getEv >= 48 && getEv <= 57) || getEv == 8 || getEv == 13) {
return true;
}
else {
return false;
}
}

</SCRIPT>
</HEAD>
<BODY>
<INPUT type=''text'' name=''a_num'' size=''26'' maxlength=''26'' value='''' onKeyUp=''formatAccNumber()'' />
</BODY>
</HTML>


Használd egészséggel

[Szerkesztve]

Where do you want to go today?

(#540) H.O.D. válasza Thunder78 (#538) üzenetére


H.O.D.
senior tag

Így van, arra való. Irreverzibilis folyamat, mint a cukor beoldása a vízbe :D

Where do you want to go today?

(#541) tbs válasza H.O.D. (#540) üzenetére


tbs
addikt

Cukor oldása vízben nem visszafordíthatatlan. ;)

(#542) Thunder78 válasza H.O.D. (#539) üzenetére


Thunder78
senior tag

Kösziszépen :D :R :R
Még egy kérdés ... Firefox alatt nem igazán akar működni ... mi lehet az oka? Én szúrtam el valamit? IE6 alatt tökéletes :D

''A víz a legerősebb ital. Egy egész hajót is elbír!''

(#543) H.O.D. válasza tbs (#541) üzenetére


H.O.D.
senior tag

ok, nem volt jó hasonlat :DDD

Where do you want to go today?

(#544) H.O.D. válasza Thunder78 (#542) üzenetére


H.O.D.
senior tag

Firefoxon kívül minden böngészőben megy. Nem te szúrtad el, a Firefox egy nagy rakás... De ez egy másik topik tárgya :DDD

Where do you want to go today?

(#545) Thunder78 válasza H.O.D. (#544) üzenetére


Thunder78
senior tag

Értem :)
Ok ... akkor megnyugodtam :))

Bár mondjuk a felhasználók nem tudják, hogy a Firefox egy kaki :D

''A víz a legerősebb ital. Egy egész hajót is elbír!''

(#546) H.O.D. válasza Thunder78 (#545) üzenetére


H.O.D.
senior tag

Két órája agyalok, hogy lehetne megoldani. Akármit csinálok, explorer és opera megy, firefox nem... :F

Where do you want to go today?

(#547) Korcsii válasza H.O.D. (#511) üzenetére


Korcsii
őstag

ezer :R még kicsit át kell alakítani, de a lényeg hogy műxik... :R

(#548) H.O.D. válasza Thunder78 (#545) üzenetére


H.O.D.
senior tag

Mentségemre legyen mondva, hogy a felhasználási területén csak IE használatos... :B

Where do you want to go today?

(#549) H.O.D. válasza Korcsii (#547) üzenetére


H.O.D.
senior tag

Ez csak amolyan brute force megoldás, nyilván sokkal elegánsabban is meg lehet valósítani. Az általam elgondolt elv bemutatására jó.

[Szerkesztve]

Where do you want to go today?

(#550) Xpod


Xpod
addikt

Üdv

Egy kis segítséget szeretnék kérni jelszókezeléssel kapcsolatban.

Olyat szeretnék csinálni, hogy mikor regisztráláskor beírja a a user a jelszót és később módosítani szeretné az adatait, az ablakban minden adata megjelenjen, közöttük a jelszó is, természetesen ez utóbbi kicsillagozva, kb úgy mint a PH!-n, mikor az Adataim linkre kattintok.

Azt tudom, hogy legbiztosnágosabb jelszótárolás, ha az MD5() függvénnyel kódolom a jelszót, de ezt nem lehet visszafejteni, hogy a jelszó mezőbe megjelenjen. Mit javasoltok, melyik függvényt használjam, vagy milyen módszerrel oldjam meg?

Jelenleg PHP5.xx-et használok, de a weblap konkrét helye még nincs kitalálva.

Ti melyik ingynes tárhelyszolágltatót ajánljátok?

Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.

Útvonal

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