Rigo Skrevet 6. april 2012 Del Skrevet 6. april 2012 Jeg har nylig lastet ned et bilde uploading script. Det funker helt fint på demoen hans, men så fort jeg laster det ned og legger det over på xampp får jeg en hel del av disse: Notice: Undefined index: username in C:\xampp\htdocs\opplaster\top_content.php on line 7 top_content.php ser sånn her ut: <div class="top_con"> <div class="top_hol"> <div class="top_navi"> <?php if ($_SESSION['username']) { echo ' <a href="index">ImageLocks</a> <a href="contact">Contact</a> <a href="logout">Logout</a> '; }else { echo ' <a href="index">ImageLocks</a> <a href="login">Login</a> <a href="register">Register</a> '; } ?> </div> <div class="logo"><a href="index"><img src="img/logo.png" /></a></div> </div> </div> <div class="main_navi"> <div class="main_hol"> <div class="main_links"> <?php if ($_SESSION['username']) { echo ' <a href="index">Upload</a> <a href="images">My Images</a> <a href="edit">Edit Account</a> '; }else { echo ' <a href="">Welcome to ImageLocks.</a> '; } ?> </div> </div> </div> Jeg får mange lignende på flere forskjellige andre sider som register.php. Du kan laste ned scriptet her: http://ryangibbo.com/zips/UPLOADER.zip Lenke til kommentar
MikkelRev Skrevet 6. april 2012 Del Skrevet 6. april 2012 hva gir print_r($_SESSION); ? Lenke til kommentar
PureDarkness Skrevet 6. april 2012 Del Skrevet 6. april 2012 Gir Array ( ) Dette er fordi du ikke har angitt $_SESSION['username'], slik at denne er tom. "Undefined index: username" betyr dermed at $_SESSION['username'] er udefinert. Det du kan midlertidig gjøre er følgende: session_start(); $_SESSION['username'] = 'Brukernavn'; eller eventuelt plassere følgende øverst på siden i php tags: error_reporting(0); Lenke til kommentar
Rigo Skrevet 6. april 2012 Forfatter Del Skrevet 6. april 2012 Takk for svar! Er som sagt ikke jeg som har laget/skrevet koden og det kommer ikke opp lignende på demoen. Kan egentlig ikke definere brukernavnet, ettersom den sjekker om man er pålogget eller ei, men å skru av error reporting burde gjøre jobben! Lenke til kommentar
PureDarkness Skrevet 6. april 2012 Del Skrevet 6. april 2012 (endret) Takk for svar! Er som sagt ikke jeg som har laget/skrevet koden og det kommer ikke opp lignende på demoen. Kan egentlig ikke definere brukernavnet, ettersom den sjekker om man er pålogget eller ei, men å skru av error reporting burde gjøre jobben! Det du da kan gjøre er å sette $_SESSION['username'] = true; Dette burde også gjøre susen. Da vil du gå som "pålogget", men den måten jeg skrev tidligere vil også fungere, sålenge $_SESSION['username'] er definert enten som 1/true eller med brukernavn vil det skriptet du har lagt ut øverst i tråden godta det som "pålogget". :-) For if ($_SESSION['username']) sjekker kun om denne sessionen eksisterer, dvs at den trenger kun å ha en verdi for å gå igjennom. Håper det er til hjelp. Endret 6. april 2012 av PureDarkness Lenke til kommentar
MikkelRev Skrevet 6. april 2012 Del Skrevet 6. april 2012 Å manuelt manipulere sessionvariabelen er å legge lokk på problemet, og det er da fare for at alle kan laste opp bilder, noe som kanskje ikke er meningen? Får du logget inn egentlig, eller er det en innloggingsskjerm i det hele tatt? Lenke til kommentar
PureDarkness Skrevet 6. april 2012 Del Skrevet 6. april 2012 (endret) Å manuelt manipulere sessionvariabelen er å legge lokk på problemet, og det er da fare for at alle kan laste opp bilder, noe som kanskje ikke er meningen? Får du logget inn egentlig, eller er det en innloggingsskjerm i det hele tatt? Det er klart, er derfor jeg skrev, og jeg siterer Det du kan midlertidig gjøre Man bør aldri gjøre noe slikt permanent. Jeg burde vel ha skrevet litt mer utdypende så der får jeg bare beklage. Uansett så fikk jeg forklart problemet, hvordan han løser det er en annen sak. Endret 6. april 2012 av PureDarkness Lenke til kommentar
Rigo Skrevet 7. april 2012 Forfatter Del Skrevet 7. april 2012 Takker for svar. Er ikke helt sikker på om jeg ble klokere av dette. Rask oppsumering: jeg burde ikke gjøre det på den måten PureDarkness foreslår, eller er det en grei løsning? Jeg ønsker ikke at enhver skal kunne laste opp bilder - kun de som er pålogget skal kunne dette. Lenke til kommentar
MikkelRev Skrevet 7. april 2012 Del Skrevet 7. april 2012 Det beste er nok å fikse årsaken ja. Han skrev jo selv at hans løsning var en midlertidig løsning. Når du åpner siden, hva er adressen du bruker? http://localhost/opplaster/top_content.php ? Jeg mistenker du kanskje åpner feil fil. Nå har jeg ikke prøvd dennne opplasteren, men du bør nok først gå til innloggingsvinduet. Når du har logget inn, så blir sessionvariabelen satt på riktig måte. 1 Lenke til kommentar
PureDarkness Skrevet 7. april 2012 Del Skrevet 7. april 2012 (endret) Skal dette gjøres på korrekt måte så må du ordne et innloggingscript som henter brukerinformasjon fra f.eks en database og som setter variablen. Deretter må du ha et utloggingscript som stopper og sletter session ved loggut. Husk at den løsningen jeg oppga var for å vise samt demonstrere for deg hvorfor du fikk den feilmeldingen du fikk, verken mer eller mindre. Om du ønsker en mer permanent løsning og er usikker på hvordan du skal gjøre dette så kan jeg hjelpe deg med det, bare send meg en PM i såfall. Endret 7. april 2012 av PureDarkness Lenke til kommentar
Rigo Skrevet 7. april 2012 Forfatter Del Skrevet 7. april 2012 Jeg går inn på riktig fil - det er jeg rimelig sikker på. Vet ikke om dere har lyst til å prøve å laste ned pakken å teste skriptet selv, men kan prøve å kort forklare hvordan det funker. Om man ikke er pålogget skal det komme en annen meny enn når man er innlogget. Er rimelig ny med PHP så problemet som er tidligere nevnt oppstår av en rar grunn. Greien er at skriptet som er helt likt som det som brukes her http://ryangibbo.com/files/imagelocksnew/ gir feilmeldinger. Dere kan forsåvidt gå inn på den nettsiden der å se hvordan det skal funke/se ut. Pakken er den nettsiden der, så det er vel lettere å forstå det når dere får sett hvordan det skal være. Lenke til kommentar
molty Skrevet 8. april 2012 Del Skrevet 8. april 2012 Sjekket om den eksisterer? Istedenfor if($_SESSION['username']){ skriv if(isset($_SESSION['username'])){ Da sjekker den om den eksisterer, eller er satt. Ellers bare sjekker du om den har en verdi, og siden selve session indexen ikke eksisterer (og får feilmelding) har ikke den noe verdi heller. 1 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å