Gå til innhold

Vil noen hjelpe meg og lære meg litt PHP?


Anbefalte innlegg

Drev for mange år siden å programerte i ASP og MS_SQL. Har nok glemt mye av dette, men har lyst til å begynne å programere litt igjen, og tenker litt på PHP og MySQL. Har gått igjennom noen tutts på nett, men blir liksom ikke klokere på det. Ikke finner jeg det jeg er på utkikk etter heller egentlig.

 

Har sett disse sidene som kun har en index.php side for hele web området. Adressen/URL her slutter jo med index.php?id= osv.....

 

Hvordan setter man opp PHP for dette. For det om jeg er litt kjent med programering fra før, så vil ikke det si at jeg tar dette med en gang. Er mange år siden sist, og må forsøke og finne tilbake på ett eller annet vis. Så hvis du vil være så snill og gi meg en liten lekson ang. det jeg spør etter over her hadde jeg blitt kjempetakknemlig for det. Trenger det litt sånn inn med te-skje serru. Så kommentarer innimellom som forklarer hva det forskjellige gjør osv. ville vært toppers.

 

Om du synes jeg spør om for mye, så kan du også gi meg en link til en god tuttorial som tar for seg dette med index.php?id=.... vært så bra.

 

Over her i adressefeltet på HW.no så ser jeg dem har brukt act istedenfor id

 

På forhånd takk

 

PS. Ikke glem dette med te-skje da.... :thumbup:

Endret av mackarn
Lenke til kommentar
Videoannonse
Annonse

det gjøres ved å parse cgi-parametre. er helt blank på skriving av php, men det er ganske enkelt ett script som tar parametre som avgjør hva det sender ut igjen.

 

selv liker jeg ruby til slik programering, og der får man jo "pickaxe" - den definitive ruby-boka gratis på nett. kapitlet "ruby and the web" forklarer i detalj hvordan man gjør slik cgi-programering.

Lenke til kommentar

Takk for linken. Ser nå at det ikke er helt dette jeg villr lære. Trodde at Ruby var en forfatter som hadde skrevet ei bok om PHP programering, men så viser det seg at det faktisk er et eget språk. Nå var det vel PHP jeg ville lære meg da. Så får jeg ta for meg Ruby senere om jeg vil.

 

Er det ikke noen her som kan være litt behjelpelige da?

Lenke til kommentar
det gjøres ved å parse cgi-parametre. er helt blank på skriving av php, men det er ganske enkelt ett script som tar parametre som avgjør hva det sender ut igjen.

Ehh ... nei, i PHP har vi et sett superglobale arrayer som automatisk inneholder slikt. $_GET for ting fra URLen, $_POST for data fra en POST-request, $_COOKIE for data fra cookie osv. (mer her).

 

Eks.:

<?php
if (isset($_GET['id'])
echo 'id er satt og inneholdt \''.$_GET['id'].'\'';
else
echo 'id er ikke satt';
?>

 

Når det kommer til litteratur man bør lese for å lære seg PHP er jeg ganske blank, så det tror jeg noen andre bør stå for :)

Lenke til kommentar

Jeg kan anbefale PHP For Dynamic Websites av Larry Ullmann.

Den forklarer med tekst og bilder akkurat hvordan du skal lage en webside fra grunnen av, og tilslutt sitter du der med en nettbutikk :)

Lærer alt fra det ekstremt grunnleggende til det mest avanserte med PHP, om ikke du vil gå gjennom øvelsene så er det en fin bok for referanse for ingen som husker hver eneste kode i hodet tror jeg.

Lenke til kommentar
det gjøres ved å parse cgi-parametre. er helt blank på skriving av php, men det er ganske enkelt ett script som tar parametre som avgjør hva det sender ut igjen.

Ehh ... nei, i PHP har vi et sett superglobale arrayer som automatisk inneholder slikt. $_GET for ting fra URLen, $_POST for data fra en POST-request, $_COOKIE for data fra cookie osv. (mer her).

 

Eks.:

<?php
if (isset($_GET['id'])
echo 'id er satt og inneholdt \''.$_GET['id'].'\'';
else
echo 'id er ikke satt';
?>

 

Når det kommer til litteratur man bør lese for å lære seg PHP er jeg ganske blank, så det tror jeg noen andre bør stå for :)

 

Om man parser cgi-parametrene manuelt eller gjennom funksjoner så er det jo samme prinsipp, noe som du viser fint.

 

Problemet med php er jo flust av dårlige tutorials, og at man må betale for å få tak i en god bok. Tutorials er ofte så overfladiske at det blir dumt om man virkelig vil bli god i ett språk, finn heller en god bok.

Lenke til kommentar

Fortsatt takk til alle sammen. Jeg er intressert i mer info ang. PHP. Bøker er greit deg. Lett og få tak i PDF format er det også. Har lastet ned PHP MySQL Bible og litt annet rask, men det er som det blir så vidt nevnt over her Mye dårlig literatur ute og går. Boka "Dynamic Websites" av "Larry Ullmann". Skal jeg skaffe meg. Det er noe slikt jeg er på utkikke etter.

 

Har også problemer med en hodeskade fra ei trafikkulykke 20 år tilbake i tid som gjør at jeg har en meget dårlig hukommelse. Derfor er det godt og høre at det ikke er normalt å huske alt man trenger for å programere.

 

Jeg husker hvertfall det fra ASP tida mi at det var kun det viktiste man husket. Så måtte man slå opp det man ikke bruker så ofte. I ASP så er det nok å kunne huske 6-8 ting, så kommer man langt med det. Hvordan dette er med PHP merker jeg sikkert.

Lenke til kommentar

Jada... Jeg tenker jeg har nok å lese for en sdtund nå. Eneste jeg mangler nå er at noen viser meg litt om hvordan de forskjellige ting som PHP kan gjøre i praksis. Om jeg ikke har den muligheten er jeg ganske sikkert dødsdømt når det gjelder å lære PHP. Det hadde vært fint om du som kan PHP kunne sette deg ned og skrive noen blokker med kode her. Da får jeg jo se hvordan det virker i praksis, og du trenger ikke være redd for at jeg skal bruke scripttet ditt. Jeg er kun ute etter å lære, og ikke utnytte og stjele fra deg.

 

Så... hvordan er det man feks får php til å generere sider som spurt i åpninginnlegget?

 

Trår jeg på veldig tynn grunn og spør om for mye nå?

Lenke til kommentar

Ernie sa:

 

<?php

if (isset($_GET['id'])

echo 'id er satt og inneholdt \''.$_GET['id'].'\'';

else

echo 'id er ikke satt';

?>

 

Jepp, jeg ser det nå, men hva dette her egentlig gjør er for meg uforståelig. Jeg ser det at blokka sier:

Hvis "noe" er satt, og da i dette tilfellet konstanten "GET" (vil det si at det er formdata som blir mottatt av php for behandling?)...

 

Eller nei.... Virker som dette blir en laaaaaaaaang kveld.

Lenke til kommentar
Ernie sa:

 

<?php

if (isset($_GET['id'])

echo 'id er satt og inneholdt \''.$_GET['id'].'\'';

else

echo 'id er ikke satt';

?>

 

Jepp, jeg ser det nå, men hva dette her egentlig gjør er for meg uforståelig. Jeg ser det at blokka sier:

Hvis "noe" er satt, og da i dette tilfellet konstanten "GET" (vil det si at det er formdata som blir mottatt av php for behandling?)...

 

Eller nei.... Virker som dette blir en laaaaaaaaang kveld.

Ja, jeg glemte jo å si hva det er. Altså $_GET er en assosiativ array som settes i det man kjører et script og vil inneholde data fra URLen. Hvert element i arrayen tilsvarer en «parameter» i URLen. Hvis URLen er http://domene/fil.php?a=b&c=d vil arrayen inneholde to elementer, a og c med verdiene b og d.

 

Forøvrig, det spørs hva du egentlig trenger å lære. Har du kjennskap til programmeringsspråk med C-lignende syntaks er det ytterst lite du trenger å vite utover URLen til manualen. Det viktigste er at variabler starter med $ etterfulgt av et variablenavn. Videre er PHP ikke typesterkt, og det eneste man har er variabler. Disse kan være integer, float, string, array, resource eller et objekt av en klasse. Hva en variabel er vil variere, men f.eks data fra $_GET-arrayen (eller andre tilsvarende arrayer) vil alltid være string. Forøvrig trenger ikke arrayer å ha prefix $_, altså en kan fint hete $dette, og ikke minst trenger du aldri å definere en variabel på forhånd. Variabler blir opprettet i det du bruker de.

 

Når det kommer til resource er de nærmest som peker å regne. Det kan f.eks være en file resource som du får fra fopen (som naturlig nok åpner en fil), som du må bruke for å kunne benytte fil-relaterte funksjoner.

 

Det er vel sånn cirka de viktiste tingene i forhold til C-lignende syntaks. If/elseif/else ser og brukes likt, samme gjelder while og for. I tillegg har vi noe som heter foreach som kan brukes til å gå igjennom en array eller spesielle objekter. F.eks:

<?php
//Bygger opp en array
$minArray = array('a' => 'b', 'c' => 'd');

//Går igjennom arrayen $minArray. $verdi vil innehold verdien fra et element
foreach ($minArray as $verdi)
{
//Echo brukes for å skrive ut noe. Et alternativ vil være print
echo $verdi."\n";
}
?>

Dette vil skrive ut:

b
d

 

Det er også mulig å hente ut nøkkelen/indeks til hvert element.

<?php
$minArray = array('a' => 'b', 'c' => 'd');

foreach ($minArray as $indeks => $verdi)
{
echo "Elementet $key inneholdt $verdi\n";
}
?>

Dette vil skrive ut:

Elementet a inneholdt b
Elementet c inneholdt d

Merk hvordan jeg bruker echo. I PHP er det forskjell på strenger laget med ' og ". Med " kan du sette inn variabler og ikke minst «escape» tegn. \n brukes som du kanskje veit til å lage linjeskift. Strenger opprettet med ' har ikke disse egenskapene.

<?php
$var = 'dette er en variabel
//Dette vil printe ut 'dette er en variabel' pluss et linjeskift
echo "$var\n";

//Dette vil printe ut '$var\n'
echo '$var\n';
?>

 

 

Så er det vel på sin plass å nevne litt om operatorer også. Som de fleste andre språk har vi &&, ||, ==, <=, >= osv. som binære operatorer. Disse er du forhåpentligvis kjent med fra før. Videre har vi såklart +, -, * og / . I tillegg har vi en operator for å sette sammen to strenger. Det er . (punktum). I det første eksemplet i denne posten brukte jeg denne operatoren for å sette sammen $verdi og "\n". På lik linje med andre språk har vi også +=, -=, *=, /= som brukes for å legge til, trekke fra, gange eller dele variablen til venstre med et eller annet. I tillegg har vi også .= som fungerer på samme måte bare at den setter sammen variablen med en streng.

 

I og med at variabler bare er variabler har PHP autokonvertering i bøtter og spann. Altså, PHP vil så langt det går få ting til å være logisk og fungere. Å sette en streng sammen med en integer går helt fint.

<?php
$var = 1;
//Dette vil skrive ut 'streng1'
echo 'streng'.$var;
?>

Dette kommer av at PHP konverterer tallet til en streng fordi . er en strengoperasjon. På samme måte kan du også legge sammen et tall og en streng.

<?php
$var = 1;
//Dette vil skrive ut 1
echo $var+'streng';

//Dette vil skrive ut 2
echo $var+'1';

//Dette vil også skrive ut 2
echo $var+'1blablabla';
?>

Dette fordi PHP gjør om strengen til et tall. Den første vil bli 0 fordi PHP ikke ser et tall. Den andre fordi strengen bare inneholder et tall. Den tredje fordi PHP ser at strengen starter med et tall.

 

En siste ting som bør nevnes er at dette også gjelder sammenligninger. F.eks vil '1' == 1 og 'string' == 0 være true. Dette fordi PHP vil forsøke å gjøre om variablene til samme type. For å unngå dette har man en binær operator === Denne sjekker i tillegg til type, også likhet. '1' === 1 og 'string' === 0 vil derfor være false. Det finnes en tabell her som viser hva resultatet av sammenligninger og operasjoner vil være. Den viser også hva funksjonene gettype(), empty(), is_null() og isset() vil returnere i tillegg til hvordan det vil bli behandlet som et boolsk uttrykk (i en if, while e.l.).

 

Tror det var det viktigste. Det står mer nyttig som språket i seg selv her, og hvis du lurer på noe så bare spør :)

Endret av Ernie
Lenke til kommentar

Ernie: Hjertelig tusen takk. Ikke mange som skriver så mye at de gjør det forståelig for meg. Det gjorde du :thumbup::love: Meget bra. Jeg er ikke spessielt tunglært, tvert i mot, men jeg har for vane å tenke litt mer komplisert enn hva det er. Særlig når noen som vet ting bedre enn meg forteller meg noe. Du gir meg inn med te-skje som jeg etterspør og behøver.

 

Nei, deverre, jeg kan ingen C språk. Eneste jeg har drevet litt med før er ASP. Dette er såpass lenge siden at jeg ikke har noen av ASP i minnet. Noe henger nok igjen, men det er så lite at det ikke er å få brukt til noe uten oppslagsverk.

 

Noe av problemet mitt er at jeg husker litt dårlig pga. ting i min fortid, men om jeg kan bruke deg som orakel for det så er det helt maks. Som jeg sa så hadde jeg lest en del om PHP i kveld. Dette er også litt problematisk siden jeg har tilnærmet dysleksi og har problemer med å huske også det jeg leser. Som sagt så snakker du så jeg forstår deg. Jeg har lest en del om grunnleggende PHP i kveld, så jeg kjente igjen noen småting av det du fortalte meg. Så jeg er på gli ...........på en måte. Desverre er også evnen til å dette av lasset også til stedet, men det er bare å krabbe oppå igjen der jeg datt av. Så om du skulle få samme spørsmål flere ganger, og du forstår at jeg ikke har skjønt en dritt av hva du forteller meg, så håper jeg det holder for deg at du kan dunke hodet i veggen i tillegg til å få en beklagelse fra meg.

 

Håper du ikke tar dette som for mye klaging på egne problemer, og går lei pga. det. Ville bare at du skulle få vite om problemet med min hukommelse så du ikke pluttselig speeder opp. Læreevnen kan vel sikkert h blitt noe svekket også etter 36 år, så det kan vel kanskje være en årsak også. Hjertelig takk igjen for at du forsøker. Håper vi kan snakkes igjen snart :D

Endret av mackarn
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...