manmob Skrevet 1. november 2004 Del Skrevet 1. november 2004 (endret) Heisann Er det noen guruer her inne som kan hjelpe meg? Er en fersking på PHP og kan ikke stort. Prøvde å mikse sammen noe helt enkelt for å få et administrasjonssystem på min personlige side. Her skal man kun kunne legge til nyheter. Opprettet en logginn.php der man har en form for å logge seg inn. Det gikk greit. Så opprettet jeg admin.php hvor man kommer hvis man har skrevet riktig brukernavn og passord på logginn.php. På admin.php kan man skrive inn i to inputts-bokser, en for overskrift og en for brødtekst. Så vil jeg at dette skal sendes til en siste side som jeg har kalt nyheter.php. I nyheter skal det ikke ligge en eneste PHP-kode, hvis jeg har forstått dette riktig. I nyheter.php skal nyhtene bare legge seg under hverandre. Alt skal styres via admin.php. Prøvde meg på noe fopen og fputs, men vet ikke om jeg har forstatt det med å ta i mot variabler. Link: http://www.stavegabrielsen.com/index.php?side=logginn Brukernavn: hei Passord: heisann Tenker jeg mer på PHP nå, går det helt rundt for meg. logginn.php <?php <form method="post" action="index.php?side=admin"> <table border="0"> <tr><td>Brukernavn:</td><td><input type="text" name="brukernavn" size="27"></td></tr><tr><td> Passord:</td><td><input type="password" name="passord" size="27"></td></tr><tr><td></td><td> <input type="submit" value="Logg inn"> <input type="reset" value="Tøm feltene"> </td></tr></table> </form> ?> admin.php <?php if ($brukernavn == "hei" && $passord == "heisann") { echo "Du er nå innlogget!<br><br> <form method='post' action='index.php?side=admin'> <table border='0'><tr><td></td><td><b>Legg til en nyhet:</b></td></tr> <tr><td>Overskrift</td><td><input type='text' size='60' name='overskrift'></td></tr> <tr><td>Brødtekst</td><td><textarea name='brodtekst' rows='10' cols='45'></textarea> </td></tr> <tr><td></td><td><input type='submit' value='Legg til'> <input type='reset' value='Tøm feltene'> </td></tr></table> </form> "; } else { echo "Feil brukernavn eller passord!" } if (!$of = fopen("nyheter.php","a")) { echo "Beklager, men kunne ikke opne denne fila!"; } else { fputs ($of,$overskrift); fclose($of); ?> Endret 1. november 2004 av manmob Lenke til kommentar
Gilbert Skrevet 2. november 2004 Del Skrevet 2. november 2004 (endret) } else { echo "Feil brukernavn eller passord!" } Du mangler et semikolon: } else { echo "Feil brukernavn eller passord!"; } Tenker jeg mer på PHP nå, går det helt rundt for meg. Flere på forumet her som burde føle det slik Endret 2. november 2004 av fjartan Lenke til kommentar
Mattlakk Skrevet 3. november 2004 Del Skrevet 3. november 2004 Hei du... jeg bruker det scriptet der.. men Den kommer inn på samme siden Uansett hva du skriver.. Du kommer til og med inn på siden hvis du ikke skriver no.. bare trykker.. Hva er feil da ? Lenke til kommentar
manmob Skrevet 3. november 2004 Forfatter Del Skrevet 3. november 2004 Hei igjen, forandret litt på admin.php: <?php if ($brukernavn == "hei" && $passord == "heisann") { echo "Du er nå innlogget!<br><br> <form method='post' action='index.php?side=admin'> <table border='0'><tr><td></td><td><b>Legg til en nyhet:</b></td></tr> <tr><td>Overskrift</td><td><input type='text' size='60' name='overskrift'></td></tr> <tr><td>Brødtekst</td><td><textarea name='brodtekst' rows='10' cols='45'></textarea> </td></tr> <tr><td></td><td><input type='submit' value='Legg til'> <input type='reset' value='Tøm feltene'> </td></tr></table> </form> "; } else { echo "Feil brukernavn eller passord! Gå <a href='index.php?side=logginn'>tilbake</a> og prøv igjen."; } ?> Nå kan folk og fe logge seg inn, men problemet er hvordan jeg skal klare å legge til nyheter. Min kunnskap om PHP er desverre ikke stor nok. Noen som kan hjelpe. Lenke til kommentar
_Xander Skrevet 3. november 2004 Del Skrevet 3. november 2004 jeg tok og la inn ett innlegg på siden din med det scriptet der, og jeg synes det ser veldig ut som om det fungerer. Det kom ihvertfall opp en nyhet på siden din, test ifra meg liksom. Good Luck! Lenke til kommentar
manmob Skrevet 4. november 2004 Forfatter Del Skrevet 4. november 2004 (endret) jeg tok og la inn ett innlegg på siden din med det scriptet der, og jeg synes det ser veldig ut som om det fungerer. Det kom ihvertfall opp en nyhet på siden din, test ifra meg liksom. Good Luck!Hei, fikk endelig til scriptet mitt i går, og det var en deilig følelse for en nybegynner innen PHP Nå er det bare en ting som mangler. Når man nå legge til nyheter vil den nyeste nyhetene hele tiden leggest nederst. Jeg vil ha det motsatt, de nye øverst, men hvordan? Kodene ser nå slik ut: admin.php: <?php if ($brukernavn == "hei" && $passord == "heisann") { echo "Du er nå innlogget!<br><br> <form method='post' action='index.php?side=nyheter'> <table border='0'><tr><td></td><td><b>Legg til en nyhet:</b></td></tr> <tr><td>Overskrift</td><td><input type='text' size='60' name='overskrift'></td></tr> <tr><td>Brødtekst</td><td><textarea name='brodtekst' rows='10' cols='45'></textarea> </td></tr> <tr><td></td><td><input type='submit' value='Legg til'> <input type='reset' value='Tøm feltene'> </td></tr></table> </form> "; } else { echo "Feil brukernavn eller passord! Gå <a href='index.php?side=logginn'>tilbake</a> og prøv igjen."; } ?> og nyheter.php: <?php $overskrift = "<h2>$overskrift</h2>"; $of = fopen("/home/stave/public_html/php_filer/nyheter.php","a"); fputs ($of,$overskrift); fputs ($of,$brodtekst); fclose($of); ?> Endret 4. november 2004 av manmob Lenke til kommentar
kakkle Skrevet 4. november 2004 Del Skrevet 4. november 2004 Du kan foreksempel lese inn hele innholdet av filen, og legge til den nye nyheten på begynnelsen, for så å skrive hele det nye innholdet til filen. Husk da å brke fopen("file.txt", "w") for å skrive over det som står der fra før. $nyttinlegg = $overskrift.$brodtekst; $gammelfil = implode("", file("/home/stave/public_html/php_filer/nyheter.php")); $nyfil = $nyttinnlegg.$gammelfil; $of = fopen("/home/stave/public_html/php_filer/nyheter.php","w"); fputs ($of, $nyfil); fclose($of); OBS! Koden er ikke testes, men skal fungere i prinsippet, trur jeg. /Kakkle Lenke til kommentar
manmob Skrevet 4. november 2004 Forfatter Del Skrevet 4. november 2004 (endret) Takk for koden kakkle, men får det ikke til å fungere. Når jeg prøver å legge til en nyhet, vises ingen nyhet, men heller ingen feilmelding, så dette er litt snodig. Har dette noe med array's å gjøre. Slo nemlig opp i manualen på implode. Hadde satt STOR pris på om du hadde lagt inn noen forklaringer i koden. Endret 4. november 2004 av manmob Lenke til kommentar
kakkle Skrevet 5. november 2004 Del Skrevet 5. november 2004 Her er litt forklaring og eksempel på implode og file() Implode lager et array av ting til en streng, med seperatoren som er i første argument som skille mellom dem. Eksempel: $array = array("hei", "på", "deg"); $streng = implode(" ", $array); // $streng vil nå bli: hei på deg $streng2 = implode("*", $array); // $streng2 blir hei*på*deg $streng3 = implode("", $array); // $streng3 blir heipådeg file() leser innholdet av en fil, og legger hver linje inn som et element i et array: fil.txt: hei på deg Dette står i filen lesfil.php: $readfile = file("fil.txt"); print "<pre>"; print_r($readfile); print "</pre>"; // Vil skrive ut array $helefilen = implode("", $readfile); print helefilen; // vil skrive ut filen slik den ser ut over i fil.txt Kan du poste admin.php og nyheter.php, slik det ser ut nå ? Tror kanskje det ikke er så lurt å skrive til filen nyhter.php fra filen nyheter.php, egentlig:-) /Kakkle Lenke til kommentar
manmob Skrevet 5. november 2004 Forfatter Del Skrevet 5. november 2004 Veldig flotte forklaringer kakkle! Tusen takk Slik ser filene mine ut akkurat nå: admin.php: <?php if ($brukernavn == "hei" && $passord == "heisann") { echo "Du er nå innlogget!<br><br> <form method='post' action='index.php?side=nyheter'> <table border='0'><tr><td></td><td><b>Legg til en nyhet:</b></td></tr> <tr><td>Overskrift</td><td><input type='text' size='60' name='overskrift'></td></tr> <tr><td>Brødtekst</td><td><textarea name='brodtekst' rows='10' cols='45'></textarea> </td></tr> <tr><td></td><td><input type='submit' value='Legg til'> <input type='reset' value='Tøm feltene'> </td></tr></table> </form> "; } else { echo "Feil brukernavn eller passord! Gå <a href='index.php?side=logginn'>tilbake</a> og prøv igjen."; } ?> nyheter.php: <?php $overskrift = "<h2>$overskrift</h2>"; $nyttinlegg = $overskrift.$brodtekst; $gammelfil = implode("", file("/home/stave/public_html/php_filer/nyheter.php")); $nyfil = $nyttinnlegg.$gammelfil; $of = fopen("/home/stave/public_html/php_filer/nyheter.php","w"); fputs ($of, $nyfil); fclose($of); ?> Lenke til kommentar
kakkle Skrevet 5. november 2004 Del Skrevet 5. november 2004 ER litt usikker på hva du har gjort her.. Hvilken fil inkluderer du for å vise nyhentene ? nyheter.php ? Isåfall så er det ikke så veldig rart at det ikke vises så veldig mye :-) bytt til .inc som endelse i nyheter.php, og inkluder inc filen der du skal vise nyhetene. Du bør også kode ut ifra at register Globals er satt til av. Det vil si at du ikke kan hente variabelnavn dirkte fra form. De hentes da med f.eks: $brodtekst = $_POST["brodtekst"]; Husk at nyheter.inc må ha lese og skrive rettigheter(chmod 0755 eller chmod 0777) nyheter.php: <?php $overskrift = $_POST["overskrift"]; $brodtekst = $_POST["brodtekst"]; $overskrift = "<h2>$overskrift</h2>"; $nyttinlegg = $overskrift.$brodtekst; $gammelfil = implode("", file("nyheter.inc")); $nyfil = $nyttinnlegg.$gammelfil; // die($nyfil); // kommenter ut denne linjen for å sjekke om filen er riktig. $of = fopen("nyheter.inc","w"); fputs ($of, $nyfil); fclose($of); ?> Husk at du skriver over alt det tidligere innholdet i filen nyheter.inc. Det kan derfor være greit de første gangene å sjekke at filen blir slik du forventer. Dette kan gjøres ved å skrive die($nyfil) før du skriver til fil. Der du vil vise nyhtene: include("nyheter.inc"); //avhengig av at den ligger i samme folder. Etter hvert kan det jo være greit at det huskes at admin er pålogget. Bruk da sessions. Les om det på php.net. Ble mye svada her, menmen... :-) 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å