Posts Tagged ‘Frågor’

PHP frågor

mars 24th, 2008

questionmark06.jpgIdag har jag sett att det finns ännu fler frågor i min inbox… vilket återigen är otroligt kul. Denna gången är det uteslutande PHP frågor jag har fått (kul!!) och det är totalt två frågor jag kommer ta upp i detta inlägget.

Fråga #1 – Av Jonathan
Hej! Jag såg att du hade svarat på ett par frågor i ditt senaste inlägg och tänkte passa på att göra det samma. Min fråga till dig är hur jag använder mig av
form i html för att få det att funka i php? Alltså, hur gör jag för att ta spara dem sakerna jag skriver in i formuläret i PHP? Med spara menar jag i databasen. Exempelvis kan vi ta det formulär jag själv har skapat. Det består av två text fält, ett stort textfält (textarea) och en skicka knapp. Hur gör jag för att få in det som skrivs i fälten i databasen???”

Svar:
Hej Jonathan!
Din fråga är ganska vanlig och jag kan garantera dig att det finns hur många guider, tutorials och hjälpavsnitt om just detta på internet. Men, jag ska försöka förklara och samtidigt visa hur man på lättast sätt får det att fungera.

Du vill alltså helt enkelt spara undan det som skickas i formulärat… i databasen. Jag antar att du använder dig av MySQL och kommer därför skriva koden just för mysql. Först och främst så måste vi ha ett formulär (som du redan har), sen måste vi ta imot det som skickas i formuläret och tillsist ska det sparas i databasen. Jag antar även att du redan har en databas och en table så som du vill ha det.

Här är koden i alla fall (Tänk på att det är PDO med prepared statements jag använder.. så se till att du har det aktiverat på din webbserver), spara den som index.php
[PHP]

Förnamn

Efternamn



if(isset($_POST['submit'])){
$fornamn = $_POST['fornamn'];
$efternamn = $_POST['efternamn'];
$meddelande = $_POST['meddelande'];

$hostname = 'localhost'; // Adress till databasen
$username = 'root'; //Användarnamn för databasen
$password = ''; //Lösenord för databasen
$database = 'testing'; //Namnet på databasen
$table = 'tablenamn';

//Följande skapar själva anslutningen till database
try {
$conn = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
}

catch(PDOException $e)
{
echo $e->getMessage();
}

$do = $conn->prepare(”INSERT INTO $table (fornamn, efternamn, meddelande) VALUES (:fornamn, :efternamn, :meddelande)”);
$do->bindParam(‘:fornamn’, $fornamn);
$do->bindParam(‘:efternamn’, $efternamn);
$do->bindParam(‘:meddelande’, $meddelande);
$do->execute();
$conn = null;

echo ”Dina uppgifter är sparade i databasen”;

}
?>
[/PHP]

Detta är ett väldigt simpelt script som helt enkelt bara sparar det man skriver in, i databasen. Försök bygga vidare med kontroller och error hantering osv. En sak till som kan vara värt att nämna är det som heter method och finns i formuläret (method=”post”). Man kan använda sig av get också, men eftersom vi inte vill att allting ska synas i adressfältet när vi skickat vårt formulär, så håller vi oss till POST. Det är även som så att POST kan lagra mer data i sig och på så sätt kan man skicka väldigt stora formulär, vilket ibland kan behövas.

Jag föreslår att du kollar lite på denna sidan för att komma igång med grundläggande PHP.
http://www.w3schools.com/php/default.asp

Fråga #2 – Av Dexter (coolt namn om det är ditt riktiga!)
”Har en fråga gällande PHP! Om jag vill lära mig PHP, i vilken ordning bör jag lära mig? Variablar först, funktioner sen…?”

Det är Über viktigt att du lär dig saker och ting i rätt ordning. Gör du inte det kommer du få problem längra fram i ditt kodande när du helt plötsligt inte vet hur man gör dem mest grundläggande sakerna. Länken som jag skickade i föregående fråga passa även in här. Den ordning dem har i sin tutorial är hyffsat ok. Vissa saker är väl kanske inte helt up to date som t ex databashanteringen… men de första 25 kapitel är OK.

http://www.w3schools.com/php/default.asp

Tack för frågorna och fortsätt skicka in fler till kristoffer@geiser.se

Oväntade frågor

mars 24th, 2008

Under påsken har det trillat in ett par mail i min inbox, vilket egentligen inte är så ovanligt…. det som förvånade mig var att mailen kom från helt okända personer som ställde frågor om PHP och lite annat. Mailen jag fick var från personer som hade läst min blogg, vilket jag tyckte var otroligt kul! Frågorna dem ställde var väldigt intressanta, så pass intressanta att jag vill lägga upp dem i bloggen så att alla kan ta del av frågorna, samt mina svar.

Totalt kom det in fyra mail med fyra frågor…ställda av fyra olika personer (så vitt jag kunde se)… så här kommer dem, följt av mina svar.

Fråga #1 – Av Martin
”Vad är dina bästa tips när det gäller säkerhet i PHP? Vad ska man tänka på, hur bör man koda osv. Det jag är mest intresserad av är hur man stoppar SQL-Injections. Tacksam för alla former av svar och förslag!”

Svar:
När det gäller säkerhet, mer specikt säkerhet på webben så är det otroligt viktigt att man som kodare är medveten om de vanligaste hoten som finns där ute, hur man förebygger attacker, samt hur du implementerar denna säkerheten. Det kan även vara värt att nämna någonting om färdiga system (CMS) som t ex joomla, drupal, wordpress osv. Ta reda på om det finns kända buggar eller exploits i det system du använder och sätt stopp för dem.

I PHP finns det en större risk att du öppnar upp för attacker av olika slag jämfört med andra språk.
Kort sagt så är det lättare att skapa osäker kod i PHP än andra språk…. fast det beror också på om man använder sig av något ramverk osv. Hur som helst, när vi pratar säkerhet i PHP, pratar vi indirrekt om otillåten åtkomst av databasen eller data i databasen. Så med detta i åtanke och iom att du sa SQL-Injections så fokuserar vi på skydd mot SQL-Injections. Egentligen så ska man även prata om server säkerhet, optimering och rätt konfigurering av dess komponenter (databasen, processer, portar osv osv), men vi håller oss till detta.

Det finns mängder och åter mängder med sajter där ute som tar upp just säkerhet och SQL-Injections… problemet med dessa sajter är att dem inte är ”up to date” och många av de saker som skrivs är rent ut sagt vansinne. Idag finns det ett ord på tre bokstäver alla PHP kodare ska känna till…. PDO (PHP Data Objects). PDO med så kallade prepared statements är ett Mycket bra sätt att skydda sig mot SQL-Injections, den sköter hela processen åt dig. Så glöm addslashes(), mysql_real_escape_string() och alla i den ”familjen”… har du möjlighet att använda PDO (vilket dem flesta webbhotell kan) så gör det. 

Det ska även nämnas att du aldrig, och jag menar aldrig, får aldrig lämna input data ofiltrerad (T ex från formulär)… filtrera alltid allting som skickas in av användare…lita inte på någon. Jag avslutar med ett citat från php.net angående PDO.

The parameters to prepared statements don’t need to be quoted; the driver handles it for you. If your application exclusively uses prepared statements, you can be sure that no SQL injection will occur.”

Fråga #2 – Av Pernilla
”Hej Kristoffer! Jag har en 12 årig son som surfar väldigt mycket och jag kan inte hjälpa att vara orolig över vad han kan bli utsatt för på internet. Jag vill helst inte att han ska vara inne på erotiska hemsidor, chatta med okända personer och allt sånt där. Finns det något sätt jag kan hindra honom från att surfa på liknande sidor? Jag är inte alls datorkunnig och är ute efter någonting som även jag kan förstå!”

Svar:
Det problem du beskriver finns nog bland de flesta föräldrarna i Sverige (världen). Det finns mycket på nätet som är olämpligt för en 12åring att se, men tyvärr så är det inte helt lätt att hindra dem från att göra det. Barn är idag extremt kunniga inom datorer och vet oftast mer än sina föräldrar… så i många utav fallen är det som att sätta upp ett 2cm högt staket runt dem… inte speciellt svårt att kliva över.

Men, det finns vissa saker du kan göra. Men först kan det vara lämpligt att tala med sitt barn och försöka förklara för dem varför du tycker som du gör, samt varför du inte vill att dem ska surfa på vissa hemsidor. Det är också bra att man försöker ge dem in minikurs i internet säkerhet… ta upp saker som lämna aldrig ut ditt namn, telefonnummer, adress eller annan information som kan avslöja vem du är… samt inga kreditkortsuppgifter eller liknande.Det finns även så kallade barnfilter som man kan använda för att kontrollera vad dem ser och inte ser.

Jag har personligen ingen erfarenhet av dem (har inga barn), men jag kollade runt lite och hittade en del intressanta alternativ. Du kan, om du har vista, använda deras inbyggda barnfilter som skyddar mot de vanligaste pedofilinfekterade hemsidorna. Titta gärna även på på denna sidan.. här har du massor med olika slags filter (engelska).

http://www.snapfiles.com/Freeware/misctools/fwparents.html

Utöver detta så använd gärna google för att söka runt lite. Det finns massor med information om detta på nätet… du är inte ensam!! Så mycket kan jag lova!

Fråga #3 – Av Robert
”Vill gärna ställa en fråga till dig och jag hoppas att du har tid att svara! Jag kommer gå ut gymnasiet nu till sommaren och planerar att börja studera på högskola i augusti. Mitt största intresse är IT och jag vill därför utbilda mig inom detta så att jag har en större chans att få jobba med det jag vill jobba med :) För att ge dig ännu mer detaljer så är det programmering som är det jag vill utbilda mig inom, JAVA programmering. Mina fråga lyder… Är det värt att utbilda sig till JAVA programmerare?  Finns det jobb? Vart ska jag studera? Har du studerat programmering? Tacksam för svar!!!”

Svar:
Hej Robert! Jag börjar i omvänd ordning och svarar på din sista fråga först. Ja, jag har studerat programmering (C#, JAVA, Assembler, PERL, ASP.NET, PHP) och nu i efterhand har det varit väldigt givande eftersom jag har en liten insyn i många språk och kan på så sätt göra vissa jämförelser. Att du har bestämt dig för att börja studera på högskola är väldigt bra och du kommer ha många roliga stunder..kombinerat med många härligt stressiga situationer :)

Första frågan du ställde: ”Är det värt att utbilda sig till JAVA programmerare?”
Om du är intresserad av just JAVA… absolut!! Det finns många många många program som är utvecklade i java idag, så självaste språket är helt klart levande och kommer fortsätta att leva en bra tid framöver. Jag pluggade en 7,5p kurs i JAVA för ett bra tag sedan… inte riktigt min grej, men jag såg hur kraftfullt språket var (är) och vad man kunde göra efter att man blivit duktig i det….. jag och en till byggde ett grafiskt yatzee spel som slutprojekt vilket var väldigt roligt :)

Andra frågan du ställde: ”Finns det jobb?”
Arbetsmarknaden för en JAVA programmerare är minst sagt ljus. Jag tog mig friheten att kolla hur många JAVA relaterade platsannonser jag kunde hitta i Sverige. Hela 164 st från söder till norr…. det låter kanske inte som så mycket.. men du behöver bara 1 av dem jobben, de andra 163 onödiga.

Tredje frågan du ställde: ”Vart ska jag studera?”
Svår fråga… beror ju helt och hållet på hur långt du är villig att flytta. Sen är det svårt för mig att rekommendera högskolor eftersom jag inte har den blekaste aning hur bra och relevanta utbildningar dem har.
Den skola jag kan rekommendera dock är Halmstad Högskola, samt programmet ”Programmering” (själv läste jag Nätverksdesign & datordrift + forsättnings utbildning). Programansvarig person heter Nicolina Månsson och är en underbar lärare med stora JAVA kunskaper. Jag har haft henne som lärare i ett par kurser och jag måste nog säga att det är en av dem bästa på Halmstad Högskola. Så har du frågor om programmet så är det Nicolina du ska kontakta.

Fråga #4 – Av Peder
”Hej Kristoffer! Jag hoppas att det är OK att jag mailar en fråga till dig. Du verkar vara verkar vara rätt insatt i webbhotell osv. Det är så här att jag funderar på att skaffa ett konto på ett webbhotell så att jag kan publicera lite hemsidor och ha domäner på. Vilket webbhotell rekommenderar du?

Svar:
Hej Peder! Insatt och insatt… jag har inte stenhård koll på vad alla erbjuder nu för tiden, eller till vilka priser. Men det finns ett webbhotell jag kan rekommendera med gott samvete. Eftersom du inte nämner någonting om vad du behöver ha på ditt webhotell (PHP, ASP.NET, Trafik, Utrymme osv osv) vilket kan vara avgörande, så utgår jag helt enkelt ifrån vad jag själv tycker.

Binero
Hos binero kan du välja om du vill ligga på en windows maskin eller freebsd… du kan välja mellan ett privat konto eller ett företagskonto (det jag har). Dem erbjuder mer eller mindre alla tekniker du kan tänkas behöva, samt så har dem en bra support och bra upptid. Dem är alltid trevliga, hjälper gärna till och framförallt så är dem väldigt öppna i företaget och låter sina kunder få en djupare inblick i företagets verksamhet (dem delar gärna med sig)… samt så har dem en semla som är över 1 år gammal vilket i sig självt är imponerande.

Binero kan erbjuda dig följande:
binero1.JPG binero2b.JPG

Prova öppna ett konto hos dem… det är fritt fram att testa i 14 dagar.

Det var alla frågor. Jag tyckte det var otroligt kul att få mail från er läsare och att ni ställde så intressant frågor! Finns det fler där ute som har ett problem, en fråga eller fundering kring IT och PHP… maila mig på kristoffer@geiser.se så ska jag försöka svara på dessa i bloggen.