Shellsec

Fuld version: [PHP] Easy?
Du ser lige nu en skrabet udgave af vores indhold. Se den fulde version med ordentlig formatering.
Sider: 1 2
Hej folkens.

Nu har jeg siddet de sidste par dage og gennemgået nogle PHP kurser/opgaver.
Jeg har gået på web-integrator uddannelsen og fik lidt blod på tanden da jeg var på hovedforløbet inden jeg droppede ud. Havde valgt php som hovedfag, da jeg ikke orkede at rode med microsofts ASP.

Efter det jeg har lært over de sidste par dage så tænker jeg, PHP er sgu da mega nemt? Det vi lærte på hovedforløbet, det kunne jeg snildt lære på hvad, 14 dage hvis det var ren PHP? Nu brugte vi jo også MYSQLi, da det jo hele essensen med at scripte/programmere et website, da man skal arbejde med noget data fra en database. Men utroligt nok så virker PHP læringskurven meget nem, end hvad jeg havde troet. Så jeg tænker lidt at det faktisk er MYSQLi der er den store rolle her eller tager jeg fejl?

For mig ser det ud som om at PHP bare er til at forbinde nogle småting sammen og kun skal manipulere med det data der bliver hævet ud af databasen og intet andet. Så nu spørg jeg både jer og mig selv, men web-integrator uddannelsen er da totalt spild af tid? ca. 1½ års uddannelse for bare at lære html, css, lidt javascript, php og mysqli?

Rettelse: Der bliver også arbejdet med cookies, sessions, post, get, functions(static, global), lidt operators, tid/dato og OOP. Men det jo ret nemt????
Hej Henta

Vil give dig ret i at PHP meget bruges til at sammenstykke data fra flere forskellige sprog, bruges som du selv siger til sql, men ligeså vel til Json. PHP er jo den måde, serveren ved hvordan den skal behandle de data den får, det vil sige at skal man lave noget effektivt dynamisk, kommer man ikke uden om brugen af PHP, det bruges meget til at definer den data som den får igennem andet kode, og selvfølgelig den kode den selv henter.

Nu har jeg aldrig selv gået på medie skolen, men har hørt om den, og ærligtalt, så virker det som en flok bunderøve der ikke rigtig laver noget, skal man have noget ud af det, skal man arbejde for sig selv, og på et projekt som man virkelig brænder for, så kommer det stille og roligt til en. Det er også tit at når man læsers andres kode, så får man mere forståelse for det.

Vil helt klart anbefale dig, at finde fx et CMS system, ikke et stort et, men et lille et, like 20 php filer eller lign, og kigge på koden bag, sådan lærte jeg meget, og lære stadig på den måde :)

SL - Zekcode
Hej Zekcode :)

Tak for hintet.
Det kunne være at jeg skulle gøre dette. Jeg lære bedst ved at lave et projekt, skrive alt ned på et stykke papir for hvad projektet skal indeholde og så går jeg bare i krig. Vil give dig ret i at man sagtens kan lære fra andres kode, jeg får det bare nemmere ved at lære det hvis jeg kun kender til nogle få ting og faktisk tænker logisk, som PHP sproget selv gør. Ikke at jeg behøver at tænke i PHP koder, men normale hverdags ting. Det sådan jeg får mine koder til at hænge sammen for mig og det gør også at jeg lære tingene ret nemt og de holder ved i længden. Selvfølgelig er det ikke lige alt man kan se for sig, hvordan hulen man lige skal bruge det.

F.eks har jeg lige haft kendskab til scopes med static og global og praktis, kan jeg ikke se hvad man egentlig skulle bruge de funktioner til. Fair nok at man vil beholde en værdi til senere brug når en funktion bliver kørt eller at man vil have en værdi eller variabel udenfor funktionen man vil bruge, men jeg ved endnu ikke hvad man skal bruge det til i praksis. Jeg har den opfattelse at det er meget få ting man skal have fra PHP til at kunne lave et minimalistisk og brugervenligt site med de fornødne ting.

Du må gerne rette mig hvis dette er forkert, men til et meget nemt site med lidt administration og nyhedspost eller et galleri skal f.eks kun indeholde lidt som:

Get, post, session, kryptering, lidt variabler, lidt SQL+db connect, evt via en include + Ja nogle yderligere includes for at gøre det nemmere for sig selv og lidt inner og outer join hvis man vil lave en søgning(+ lidt array til sortering af søgning)?
jeg har nogle includes på min egen side, blandt andet en mysqli config, og så har jeg noget panel, som køre på en session, at gemme en værdi til senere er pratisk i det man skal bruge den samme værdi flere steder, fx hvis du har en IF GET ID {} else {} og samme værdi skal bruges begge steder :)

Php er ret simple når man først kommer igang :)
bruger faktisk ikke selv Join, da jeg bare sætter min DB op efter det, så har jeg alt i en tabel uden overskrift i anden, måske mere besværligt, men er mere mig :)

SL - Zekcode
(26-03-2015, 21:12)Zekcode Skrev: [ -> ]jeg har nogle includes på min egen side, blandt andet en mysqli config, og så har jeg noget panel, som køre på en session, at gemme en værdi til senere er pratisk i det man skal bruge den samme værdi flere steder, fx hvis du har en IF GET ID {} else {} og samme værdi skal bruges begge steder :)

Php er ret simple når man først kommer igang :)
bruger faktisk ikke selv Join, da jeg bare sætter min DB op efter det, så har jeg alt i en tabel uden overskrift i anden, måske mere besværligt, men er mere mig :)

SL - Zekcode

Det også smart med en mysqli config. Nu må du ikke hænge mig op på det da jeg ikke lige har koden fremme og ikke set på den længe, da jeg ikke er gået rigtig igang med database igen. Det kun udelukkende php for at få de opfrisket, men jeg mener at jeg havde includes som f.eks start.php hvor jeg havde min db_connect indeni, så hvergang jeg skulle hive noget fra databasen, så behøvede jeg ikke at skrive hele smøren i den samme fil og det er den samme måde du har gjort, hvis jeg forstår dig korrekt :)

Når jeg endelig kommer igang med mit projekt, så køre jeg helt fra square 1, og starter med de simpleste ting og går ikke videre før de virker, ligesom en slags tjekliste, men den største udfordring jeg har for mig er f.eks et forum. Det bliver spændende, da jeg skal finde ud af hvordan man laver brugergrupper som admin, moderator m.m, evt rank. Har ingen anelse hvordan det udføres endnu, kan du give et lille hint? - Du behøver ikke at servere det hele for mig ;) Bare et lille hint og jeg vil læse op på metoden :)
i min config har jeg defineret oplysningerene, og lavet en connect i config filen, så includer jeg den bare, og bruger connect variablen hvor det er nødvendig

fx mylqli_select($db, ('select * from databasetable'));

her er $db så min connect variable som ligger i config filen :)

ang rank, laver du dit login system sådan, at når en bruger registerer sig, får de en userclass 1
og så begrænser du admin siderene, til en userclass 2
altså


$id = her skal du hente ID'et på brugeren
$getclass = ($db(select from `users` WHERE `userid` = $id));
if ($getclass == 2){
admin indhold her
} else {
header (location : denied.php);
her smider vi brugeren tilbage
men evt lav en log som fortæller at brugeren har forsøgt at komme ind på en admin side, ved at lave en sql insert arry et sted her med user id, ip, username, timestamp :)
}
Glem alt der hedder mysqli_*. Gå med PDO i stedet for, med mindre du hellere selv vil sidde og lave foranstaltninger for, at din side ikke bliver hacked. PDO.
(26-03-2015, 21:32)Zekcode Skrev: [ -> ]i min config har jeg defineret oplysningerene, og lavet en connect i config filen, så includer jeg den bare, og bruger connect variablen hvor det er nødvendig

fx mylqli_select($db, ('select * from databasetable'));

her er $db så min connect variable som ligger i config filen :)

ang rank, laver du dit login system sådan, at når en bruger registerer sig, får de en userclass 1
og så begrænser du admin siderene, til en userclass 2
altså


$id = her skal du hente ID'et på brugeren
$getclass = ($db(select from `users` WHERE `userid` = $id));
if ($getclass == 2){
admin indhold her
} else {
header (location : denied.php);
her smider vi brugeren tilbage
men evt lav en log som fortæller at brugeren har forsøgt at komme ind på en admin side, ved at lave en sql insert arry et sted her med user id, ip, username, timestamp :)
}

Ahh ja, god idé :) Alt sammen giver mening når du forklare det. Har ikke roddet med php i snart over et år... :)


(26-03-2015, 21:53)Ash Skrev: [ -> ]Glem alt der hedder mysqli_*. Gå med PDO i stedet for, med mindre du hellere selv vil sidde og lave foranstaltninger for, at din side ikke bliver hacked. PDO.

Ja jeg kunne godt huske at man skulle sidde og lave alle mulige slags failsafes, og blokere nogle SQJL injenction på forms som f.eks '# 1=1' men det er noget mere avanceret du hentyder til.

Hmm, PDO? http://code.tutsplus.com/tutorials/why-y...-net-12059

Lige hvad jeg har skimtet igennem, så er det en anden måde at tilgå en mysql database som en ekstra lag af sikkerhed? Eller er jeg helt lost. Ellers må du meget gerne forklare det Ash :)

Ahh nevermind. Disse databaser er understøttet:

PDO_DBLIB ( FreeTDS / Microsoft SQL Server / Sybase )
PDO_FIREBIRD ( Firebird/Interbase 6 )
PDO_IBM ( IBM DB2 )
PDO_INFORMIX ( IBM Informix Dynamic Server )
PDO_MYSQL ( MySQL 3.x/4.x/5.x )
PDO_OCI ( Oracle Call Interface )
PDO_ODBC ( ODBC v3 (IBM DB2, unixODBC and win32 ODBC) )
PDO_PGSQL ( PostgreSQL )
PDO_SQLITE ( SQLite 3 and SQLite 2 )
PDO_4D ( 4D )

Går ud fra at MYSQLi også er standard nu. Artiklen er fra 2012, og SQLi er ved at være standard nu diverse steder. Det har det ihvertfald været fra sidste år i begyndelse af 2014
Mysqli er standard i PHP ja :), så mange failsafe skal man heller ikke lave, bare sørg for når du laver en get variable, at det er nummerisk kan og smid ind i php at if issent GET() && is nummeric så skulle sql injection ikke være et problem :)
(26-03-2015, 22:14)Zekcode Skrev: [ -> ]Mysqli er standard i PHP ja :), så mange failsafe skal man heller ikke lave, bare sørg for når du laver en get variable, at det er nummerisk kan og smid ind i php at if issent GET() && is nummeric så skulle sql injection ikke være et problem :)

Problemet med mysqli udvidelsen er, at du altid selv skal huske at escape input. Det er nemt at glemme eller overse. Sker det bare en enkelt gang, så har du tilladt en fatal fejl. Hvis du bruger prepared statements og binder variabler i PDO, så er det ikke muligt at glemme det, derfor er det åbenlyst et bedre valg. Der er også mange andre fordele, men dem kan du selv læse om på nettet.

@OP
Det må være en misforståelse. Det er ikke PHP, der er nemt. De ting du nævner eksisterer i alle programmeringssprog. Programmering er nemt, man skal bare forstå konceptet. Jeg tror det er det du har indset :)
Sider: 1 2