danielsn Skrevet 30. juli 2007 Del Skrevet 30. juli 2007 Noen som kunne fortelle meg hvordan jeg kan få et filetternavn inn i en variabel? Sliter litt nå Lenke til kommentar
Peter Skrevet 30. juli 2007 Del Skrevet 30. juli 2007 (endret) Fra kommentarene for strrpos() på php.net: <?phpfunction filename_extension($filename) { $pos = strrpos($filename, '.'); if($pos===false) { return false; } else { return substr($filename, $pos+1); } } ?> Bare husk at filendelse ikke nødvendigvis samsvarer med filtypen dersom det er opp til hvermansen å laste opp. Endret 30. juli 2007 av Nazgul Lenke til kommentar
Gjest Slettet+142 Skrevet 30. juli 2007 Del Skrevet 30. juli 2007 (endret) Trur du har misforstått mariyo. Hashing er ikke for å beskytte deg mot slike tilfeller, men mot rainbow-attacks. Da gjør du det mye vanskeligere om crackeren må finne ut en unik streng i tillegg; enda vanskeligere blir det om du har én statisk salt, pluss én basert på dynamiske verdier. For å knekke en hasha string uten å bruke rainbow-tables/dictionary-attacks skal det (for å kraftig underdrive) jævlig mye til, både i tid og prosessorkraft. Når du i tillegg dobbeltsalter stringen din, blir det nærmest umulig. 9173664[/snapback] Hmm. Bah Endret 30. juli 2007 av Slettet+142 Lenke til kommentar
Anders Moen Skrevet 31. juli 2007 Del Skrevet 31. juli 2007 Trenger hjelp med en nettbutikk jeg lager: På en side, handlekurven, så hentes alle produktene man har lagt til i handlekurven sin ut. Altså, legges litt info om produktet i en tabell i databasen sammen med IP'en til en person - så hentes produktene ut med WHERE ip = '$ip' hvis dere skjønner. Pris er også et av feltene i tabellen. Etter while løkka hvor produktene hentes ut vil jeg gjerne at det skal stå en samlet pris. Tabellen: CREATE TABLE `tempcart` ( `id` int(11) NOT NULL auto_increment, `ip` varchar(255) NOT NULL, `product` varchar(255) NOT NULL, `productid` varchar(255) NOT NULL, `price` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ; Trenger dere koden som jeg bruker til while-løkka og sånt for å hjelpe? Takker! Ville vært kjempefint om noen kunne hjulpet meg (Si ifra om dere ikke helt skjønte det her. Vet det ble litt merkelig skrevet) Lenke til kommentar
dabear Skrevet 31. juli 2007 Del Skrevet 31. juli 2007 Kan du ikke bare kjøre en select SUM('price') i spørringa? Eventuelt med php: <?php $total=0; while($row=...) { /*foo's, baz', spam and eggs here*/ $total += $row['price']; } echo 'totalprisen er på ', $total, ' kroner'; ?> Lenke til kommentar
Peter Skrevet 31. juli 2007 Del Skrevet 31. juli 2007 (endret) EDIT: Ok, må slutte å svare på tråder uten å refreshe når man har vært borte en kort tur... $sum = 0.0; while( $row = mysql_fetch_assoc( $result ) ) { //skriv ut produktene $sum += $row['price']; } echo $sum; Finnes også en egen funksjon i mysql som kan summere, men ettersom du allerede henter ut alle radene, kan du like gjerne summere manuelt. Endret 31. juli 2007 av Nazgul Lenke til kommentar
Anders Moen Skrevet 31. juli 2007 Del Skrevet 31. juli 2007 Takker for svar, men fikk ikke helt til. $ip = $_SERVER['REMOTE_ADDR']; $cart2 = mysql_query("SELECT * FROM tempcart WHERE ip = '$ip' ORDER BY id DESC"); <?php $total=0; while($row = mysql_fetch_array($cart2)) { $total += $row['price']; } echo 'totalprisen er på ', $total, ' kroner'; ?> Tror ikke jeg fikk til helt, for nå har jeg 20 produkter i handlekurven min og hvert av de produktene koster 1595,- (bare på testing) og totalprisen ble på 0,- (Hvis det skulle ha vært riktig, ville de jeg lager nettbutikken for tapt mye penger ;p) Noe jeg har gjort galt der, eller..? Lenke til kommentar
Runar0 Skrevet 31. juli 2007 Del Skrevet 31. juli 2007 Har du skjekka at whilen looper 20 ganger? Kanskje queryen ikkje virker som den skal, eller at 'price' ikkje er satt i $row. Vil anbefale å bruke ip + session id for å identifisere ein brukar slik at fleire brukara fra samme hus kan vere på nettbutikken samtidig. Lenke til kommentar
Anders Moen Skrevet 31. juli 2007 Del Skrevet 31. juli 2007 Nå fikk jeg til! Jeg bare lagde en ny query lenger nede med et annet variabelnavn og så skifta jeg på mysql_fetch_array($cart2) til $count2 hvis dere skjønner og da gikk det hvis 1595 + 1595 = 3190 (stemmer det?) Lenke til kommentar
dabear Skrevet 31. juli 2007 Del Skrevet 31. juli 2007 (endret) $ip = $_SERVER['REMOTE_ADDR']; $cart2 = mysql_query("SELECT * FROM tempcart WHERE ip = '$ip' ORDER BY id DESC"); Den der er fyfy. Det er faktisk mulig å forfalske REMOTE_ADDR (men hackeren vil da ikke få noe respons i retur), slik at den SQLen er åpen er exploits. Tenk deg en god hacker som kunne satt sin REMOTE_ADDR til noe ala $_SERVER['REMOTE_ADDR'] = "1' or ip IS NOT NULL #"; som vil føre til følgende spørring: SELECT * FROM tempcart WHERE ip = '1' or ip IS NOT NULL #' ORDER BY id DESC" var det mest banal eksemplet jeg kom på, men viser at du alltid må validere input fra brukeren, sjekke at det virkelig er en ip, i dette tilfellet. Endret 31. juli 2007 av dabear Lenke til kommentar
jorgis Skrevet 31. juli 2007 Del Skrevet 31. juli 2007 NB! Dette er ikke ment som en support-tråd, hvis du trenger hjelp til noe oppretter du en egen tråd i PHP-forumet. Lenke til kommentar
Anders Moen Skrevet 31. juli 2007 Del Skrevet 31. juli 2007 Å ja, Jorgis. Skal huske det til neste gang Dabear: Hvordan kan jeg fikse det? Er det nok å bruke...mysql_real_escape_string på den? Lenke til kommentar
Gjest Slettet+142 Skrevet 31. juli 2007 Del Skrevet 31. juli 2007 (endret) Det skal være nok for sikkerheten. Men du kan jo alltids lage en funksjon som valider om det faktisk er en ipadresse eller ikke. Hvis du lager en slik funksjon, og funksjonen skulle oppdage at "ipadressen" ikke er en ekte ipadresse, har du jo f.eks muligheten til å logge dette, skrive output som om f.eks at fake IP er oppdaget, og så avslutte utførelsen av programmet Her er en validIP-funksjon jeg fant her function Val_ip ($String) { // Check that given string is a valid IP number. if (long2ip (ip2long ($String)) != $String) { // Wasn't, return error. return false; } // Everything was OK, return string. return $String; } Endret 31. juli 2007 av Slettet+142 Lenke til kommentar
Gjest Slettet+6132 Skrevet 1. august 2007 Del Skrevet 1. august 2007 Her er en validIP-funksjon jeg fantFor å gjøre det helt korrekt burde man vel også ha en sjekk i den funksjonen som returnerer false på 127.0.0.0/8, 169.254.0.0/16, evt. 10.0.0.0/8, 172.16.0.0/12 og 192.168.0.0/16 (kanskje også 224.0.0.0/4 (klasse D-iper som er for multicast). Disse IPene vil i de fleste tilfeller ikke bli brukt mot en webserver (med mindre du surfer over LAN selvsagt), og burde da gjelde som false. Noen som er enige? Kilde for loopback (127.0.0.0/8) Kilde for private IPer (10.0.0.0/8, 172.16.0.0/12 og 192.168.0.0/16) Kilde for zeroconf (også dekket av private IPer) (169.254.0.0/16) Kilde for multicast-IPer (224.0.0.0/4) Lenke til kommentar
Gjest Slettet+142 Skrevet 1. august 2007 Del Skrevet 1. august 2007 Jau. Kan iaf ikke si meg uenig. Du må gjerne fikse funksjonen så den gjør det Lenke til kommentar
Gjest Slettet+6132 Skrevet 1. august 2007 Del Skrevet 1. august 2007 Du må gjerne fikse funksjonen så den gjør det Erhm, klokken er 03:20, utorrent.exe suger 3.1MB/s med data, ETA er 30 sec ... and I'm off to watch a certain movie Lenke til kommentar
Gjest Slettet+142 Skrevet 1. august 2007 Del Skrevet 1. august 2007 Bah. Jeg gidder ikke prøve meg på å fikse den engang ^^ Skal sove nå Men uansett.. Innleggstelleren din viser (1)666 Lenke til kommentar
jeg_lyver_mye Skrevet 10. august 2007 Del Skrevet 10. august 2007 TAB eller mellomrom... hva bruker du når du koder? Lenke til kommentar
Peter Skrevet 10. august 2007 Del Skrevet 10. august 2007 TAB eller mellomrom... hva bruker du når du koder? 9248732[/snapback] TAB, da kan folk velge tabstørrelse selv når de jobber med koden, uten at det går utover andres syntaks. Lenke til kommentar
jeg_lyver_mye Skrevet 10. august 2007 Del Skrevet 10. august 2007 Mhm, og så tar ikke scriptet så mye plass. Jeg bruker tab, da kan folk rett og slett velge selv hva de liker. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå