Gå til innhold

Kjeder meg, noen som trenger et script?


Anbefalte innlegg

Heisann folkens =)

Kjeder meg litt atm, og har lyst til å bedrive litt programmering..

Noen som har et ønske om en PHP klasse/et PHP script som de trenger?

Snakker ikke her om en full nettside eller noe sånt, bare et eller annet script som gjør noe nyttig..

Tar ingen ting for det, men jeg tar forebehold om at jeg kanskje poster klassen på phpclasses.org under eget navn hvis koden blir bra ^^

 

Mvh,

Jon

Lenke til kommentar
Videoannonse
Annonse
Jeg hadde gjort omtrent hva som helst for noen veeldig enkle eksempeer på OOP og templating (hver for seg helst). :love:

Hmm.. Noe enkle eksempler på OOP skal jeg nok få til, men er redd jeg ikke er så dreven på template-systemer så den må du nok lese deg opp på selv, for eksempel her:

http://www.codewalkers.com/c/a/Display-Tut...-System-in-PHP/

OOP eksemplene kommer nok ikke før senere i dag, men det kan du kanskje leve med? ^^

Ta en titt på denne klassen jeg har laget i mellomtiden: http://www.phpclasses.org/browse/file/17240.html.

Hvis du ser bort ifra make() funksjonen så tror jeg den skal være ganske oversiktlig...

 

 

Hmm.. Det blir vel mer en side, men jeg kan peke deg i riktig retning på hvordan jeg ville gjort det..

1. Sjekk om brukeren er logget inn

2. Hvis brukeren er logget inn, vis en liste over prosjekter som man kan klikke seg inn på og en knapp hvor det står "Nytt prosjekt"

3. Dersom brukeren klikker på "nytt prosjekt" så kommer han/hun inn på en side med et form med en enkel inputboks hvor han/hun kan skrive inn navnet på prosjektet, et textarea til å fylle ut en beskrivelse, og Bilde Upload appleten du finenr her: http://jupload.sourceforge.net/ med uploadPolicy = 'PictureUploadPolicy' og formdata = 'navnet_på_formen_nevnt_over'. Her kan brukeren dra inn bilder og klikke på 'Upload'. Da sendes bildene og informasjonen til samme PHP side som du kom fra, og alle bildene plasseres inn i $_FILES arrayen som om de var blitt lastet opp med en vanlig form. Så kan du håndtere dem sånn som vist her: http://www.webdeveloper.com/forum/showthread.php?t=101466 etter der hvor det står '// filename: upload.processor.php'. Du flytter filene til en mappe som du kaller 'prosjektbilder' for eksempel, og så legger du inn i en table i MySQL informasjonen om prosjektet med en unik ID, og så legger du inn hver av navnene til bildene i en annen table med referanse til den iunike IDen til prosjektet (prosjektID for eksempel)..

4. Dersom brukeren klikket på et av navnene så gjør du AKKURAT det samme som i 3, bortsett fra at de to boksene er ferdigutfylt med info fra MySQL og at han/hun også får opp en liste over bildene som nå er med i prosjektet, hver med med en slett knapp. Her kan du bruke AJAX til å oppdatere MySQL med endringene, eller du kan gjøre det med en "Oppdater prosjekt" knapp..

5. Til slutt, dersom man ikke er inne på side 3 eller 4, så printes linker til alle prosjektene ut med et av bildene fra hver.

6. Dersom man nå klikker på en av dem så kommer man inn på prosjektet hvor alle bildene vises (hentet ut fra MySQL)

 

Håper det hjalp litt ^^

Lenke til kommentar

Vel, tja... Sitter og fikler litt med en error handler. Om du kunne tenke deg og gjøre den bedre kunne jo det vært flott! =D

 

Klikk for å se/fjerne innholdet nedenfor

ini_set('error_reporting', E_ALL);

function myErrorHandler($errno, $errstr, $errfile, $errline)

{

global $qerror;

switch ($errno)

{

case E_WARNING:

$qerror[] = "<b>E_WARNING</b> [$errno] $errstr (in $errfile on line $errline)<br><br>";

break;

 

case E_PARSE:

$qerror[] = "<b>E_PARSE</b> [$errno] $errstr (in $errfile on line $errline)<br><br>";

break;

 

case E_NOTICE:

$qerror[] = "<b>E_NOTICE</b> [$errno] $errstr (in $errfile on line $errline)<br><br>";

break;

 

case E_CORE_ERROR:

$qerror[] = "<b>E_CORE_ERROR</b> [$errno] $errstr (in $errfile on line $errline)<br><br>";

break;

 

case E_CORE_WARNING:

$qerror[] = "<b>E_CORE_WARNING</b> [$errno] $errstr (in $errfile on line $errline)<br><br>";

break;

 

case E_COMPILE_ERROR:

$qerror[] = "<b>E_COMPILE_ERROR</b> [$errno] $errstr (in $errfile on line $errline)<br><br>";

break;

 

case E_COMPILE_WARNING:

$qerror[] = "<b>E_COMPILE_WARNING</b> [$errno] $errstr (in $errfile on line $errline)<br><br>";

break;

 

case E_USER_ERROR:

$qerror[] = "<b>E_USER_ERROR</b> [$errno] $errstr (in $errfile on line $errline)<br><br>";

break;

 

case E_USER_WARNING:

$qerror[] = "<b>E_USER_WARNING</b> [$errno] $errstr (in $errfile on line $errline)<br><br>";

break;

 

case E_USER_NOTICE:

$qerror[] = "<b>E_USER_NOTICE</b> [$errno] $errstr (in $errfile on line $errline)<br><br>";

break;

 

case E_STRICT:

$qerror[] = "<b>E_STRICT</b> [$errno] $errstr (in $errfile on line $errline)<br><br>";

break;

 

case E_RECOVERABLE_ERROR:

$qerror[] = "<b>E_RECOVERABLE_ERROR</b> [$errno] $errstr (in $errfile on line $errline)<br><br>";

break;

 

default:

$qerror[] = "<b>Unknown</b> [$errno] $errstr (in $errfile on line $errline)<br><br>";

break;

}

return true;

}

$old_error_handler = set_error_handler("myErrorHandler");

Det som er tanken er og få alle feilmeldinger inn i ett array istedet for at dem blir printet til skjerm (som forsåvit funker allerede). Men kunne tenke meg at istedet for at den printer samme feilmeldinga 8 ganger (noe som den av og til vil finne på og gjøre) så bude den heller kunne outputte "8x [feilmelding]" (Selvfølgelig kun om alt er like, inkludert $errno, $errstr, $errfile og $errline).

 

Det neste som hadde vært flott er om den hadde hatt ett valg for og ta hensyn til om det står en @ foran det som genererer feilmeldingen, og isåfall ikke ta den med.

Endret av pulse
Lenke til kommentar
Vel, tja... Sitter og fikler litt med en error handler. Om du kunne tenke deg og gjøre den bedre kunne jo det vært flott! =D

Your wish is my command, se vedlegg =P

 

Nå kommer alle errorene i en array hvor hvert element er en hash med to verdier:

$querror[error_nummer]['str'] = Feilmeldingen

$querror[error_nummer]['count'] = Antall ganger feilmeldingen har kommet

 

Noe sånt du var ute etter?

 

Det med phpBB3 tror jeg blir vrient.. Har ikke nok kjennskaper til det, dessverre :)

error_handler.zip

Lenke til kommentar
Noe sånt du var ute etter?

o.O nice! Er ikke lenge til ikveld jeg blir online. Men dette ser jo ut som noe man kan lage en masse gøy ut av! =D

 

Edit:

Vet ikke helt hva du mente med E_STRICT, men jeg har i alle fall 148 E_STRICT meldinger på den ene siden jeg jobber med nuh :s

Endret av pulse
Lenke til kommentar
Jeg hadde gjort omtrent hva som helst for noen veeldig enkle eksempeer på OOP og templating (hver for seg helst). :love:

Se vedlegg, håper det hjelper =)

 

Pulse: Skal se på det, men må lage kjøttboller først :p

 

Må takke for denne jeg også =) driver å leser en php bok nå, men skjønte fint lite av oop kapittelet, så jeg hoppet over det neste (avansert oop), men skjønte en del nå så skal lese det omigjen, og se om jeg føler meg klar for neste kapittel =)

 

et lite spm, mener jeg leste at hvis man har en funksjon i klassen som heter det samme som klassen, så er dette det samme som __construct?

 

edit:leif

Endret av jokkakim
Lenke til kommentar
et lite spm, mener jeg leste at hvis man har en funksjon i klassen som heter det samme som klassen, så er dette det samme som __construct?

 

Nå er jeg ikke mester i OOP, men dette tror jeg ikke stemmer. Jeg tror fungerte det slik i PHP4. Altså om du kaller funksjonen det samme som klassen fungerer dette som __construct(), vel og merke i PHP4. I PHP5 ble denne måten erstattet med __construct().

 

Om du bruker begge måtene i PHP5 i samme klassen vil __construct() bli brukt.

Endret av BigJackW
Lenke til kommentar

En constructor er en metode som blir kjørt når du lager en instans av klassen (med new).

 

I PHP 4 var det en funksjon som het det samme som klassen, mens i PHP 5 heter den __construct. Det er fremdeles mulig å bruke navnet på klassen på grunn av bakoverkompatibilitet, men __construct er anbefalt.

Lenke til kommentar
Vet ikke helt hva du mente med E_STRICT, men jeg har i alle fall 148 E_STRICT meldinger på den ene siden jeg jobber med nuh :s

Det jeg skrev i comment var hentet direkte fra php.net/set_error_handler.. Det betyr ganske enkelt at din egendefinerte error handler noen ganger ikke kan håndtere E_STRICT meldinger som oppstår i samme fil som error_handleren.

 

Dette kan du jo omgå ved å beholde case E_STRICT: i filen din, og så legge error handling funksjonen din i en separat fil =) (BTW; Er error handling funksjon i ett, to eller tre ord, og med eller uten bindestrek? :p)

 

 

Kunne gjerne ha tenkt meg et script som gjør at du kan sortere noe som står i en tabell i alfabetisk rekkefølge og gjerne etter dato.

Uhm.. Står i en tabell som i en MySQL tabell eller en HTML tabell..

For MySQL er det enkelt, ORDER BY name ASC, dato DESC

For HTML så må du vel bruke JavaScript for å sortere tabellen direkte.. Ta en titt her:

http://www.google.com/search?q=javascript+table+sort

 

Fint du fikk svar på spørsmålet ditt jokkakim, tror itsmebth ga det beste svaret, men alle hadde rett ^^

Lenke til kommentar

Aller først, tusen takk for en ordentlig god forklaring på hvordan oop/klasser fungerer. Denne hjalp veldig! :)

 

Nytt spørsmål:

Jeg har sett forskjellige måter å inkludere filer på.

blandt annet; require, include, require_once og include_once.

Hva er egentlig forskjellen på disse? Jeg har fått en liten forklaring før, men jeg ble bare forvirret og skjønte lite.

Jeg pleier bare å inkludere filene enkelt include("ads.php"); og det funker utmerket.

 

På forhånd takk!

Lenke til kommentar

hovedforskjellen på require() og include() er at om man bruker require(), og php feiler med å inkludere filen (f.eks at filen ikke finnes), vil scriptet stoppe, mens med include() så ville scriptet ha fortsatt.

 

og det med include_once() og require_once() vil først sjekke om filen har blitt inkludert før, har den det så fortsetter scriptet uten å inkludere filene engang til, finnes de ikke blir de inkludert.

 

edit: crappy php-book :\

Endret av jokkakim
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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...