chri-ot Skrevet 3. juli 2013 Del Skrevet 3. juli 2013 Hei Hei Jeg driver for tiden å lærer meg PHP, jeg får til uten noe problem å lage tabeller, og hente frem info i disse (mysql), men hvordan kan jeg automatisk lage en egen side? La meg forklare nærmere. F.eks på finn.no kommer det opp mange resultater, dersom man trykker på en av disse resultatene kommer det opp en egen side for dette resultatet, med mer informasjon osv. Hvordan kan jeg få til det samme? Hva heter dette? Jeg klarer ikke finne noe nyttig på google. Lenke til kommentar
MikkelRev Skrevet 3. juli 2013 Del Skrevet 3. juli 2013 Er mange måter å gjøre dette på. Med én php-fil kan du gjøre det f.eks. slik: <?php if($page==1) { echo "Du er på side 1"; } elseif($page==2) { echo "Du er på side 2"; } else { echo "Bø!"; } Kall filen for test.php og prosjektet for minside. Prøv å gå til http://localhost/minside/test.php Prøv å gå til http://localhost/minside/test.php?page=1 Prøv å gå til http://localhost/minside/test.php?page=2 Ellers foreslår jeg å gå gjennom noen php-tutorials og/eller bok. Lenke til kommentar
chri-ot Skrevet 3. juli 2013 Forfatter Del Skrevet 3. juli 2013 Jeg driver som sagt å lærer, så har lest litt tutorials, men jeg liker best å prøve å feile. Nå etter noen timers prøving, og med utgangspunkt i koden fra denne siden, har jeg klart det. Jeg har fått til slik at man kan skrive inn og legge inn bilder via CKedit, også postes det automatisk til en side som tar utgangspunkt i template jeg har for resten av siden. I morgen skal jeg få lagt til mulighet til å legge inn kategorier og annet snacks, for å lære meg videre. Lenke til kommentar
chri-ot Skrevet 5. juli 2013 Forfatter Del Skrevet 5. juli 2013 (endret) Hei igjen Nå har jeg sittet i rundt ni timer, uten å komme lengre.... Jeg får som jeg skrev i går til å poste mot databasen, og opprette nye filer ved hjelp av koden jeg linket til. Problemet er at jeg ikke får langt til flere "kategorier" inn i databasen, jeg får de inn i selve siden dog...jeg har prøvd mye med dato, når jeg trykker submit så kommer dato og alt riktig inn på den nye siden, men i databasen vises ikke datoen i det hele tatt, og i tillegg så skrives ikke ting inn i databasen etter kategoriene "overskrift" "beskjed" osv, nei de legger seg hulter til bulter...slik at overskrift blir skrevet til "beskjed" i databasen, og "beskjed" (=hoved innhold) legger seg i Dato kategorien, og url adressa legger seg i "annet". Det er åpenbart noe galt med koden, men nå etter utrolig mye forsøk og googling så klarer ikke mine utrente øyne å se hvor feilen ligger. Så nå snur jeg meg vekk fra pcen, og vender mot kjøkkenet for en stund, og håper noen her inne klarer å hjelpe meg med å se feilen Det er nok her feilen ligger..jeg har prøvd å copy paste, og bare bytte ut med dato, men da vises ingen ting. Jeg har også prøvd å skrive det helt på nytt, med "min" egen formulering fra w3schools osv, i tillegg har jeg copy pasta fra andre koder jeg har skrevet før, som jeg vet fungerer, og bare bytta ut det som må byttes ut, men ingen ting virker mysql_query('INSERT into matoppskrift (`overskrift`,`beskjed`,`dato`,`url`) VALUES("","'.mysql_real_escape_string(html_entity_decode($_POST['overskrift'])).'", "'.mysql_real_escape_string(html_entity_decode($_POST['beskjed'])).'", "'.$pagename.'")'); <?php $template = <<<EOD <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link href="../style.css" rel="stylesheet" type="text/css" title="default"/> <link rel="icon" type="image/png" href="../icon.png" /> <title><!--overskrift--></title> </head> <body> <?php include('../meny.php'); ?> <div id="hoved"> <div id="tekstforside1"> <!--beskjed--> <!--dato--> <?php include('../server.php'); ?> </div> </div> <?php include('../footer.php'); ?> </body> </html> EOD; //handle the posted form if(isset($_POST['overskrift'])&&isset($_POST['beskjed'])&&isset($_POST['dato'])){ //replace the areas of the template with the posted values $page = str_replace('<!--overskrift-->',html_entity_decode($_POST['overskrift']),$template); $page = str_replace('<!--beskjed-->',html_entity_decode($_POST['beskjed']),$page); $page = str_replace('<!--dato-->',html_entity_decode($_POST['dato']),$page); //create a name for the new page $pagename = ($_POST['overskrift']).'.php'; include('server.php'); //check if page already exists $result = mysql_query('SELECT url from matoppskrift WHERE url="'.mysql_real_escape_string($pagename).'"'); if(mysql_num_rows($result)>=1){ $notice = '<p>Page already created <b>./oppskrifter/'.$pagename.'</b></p>'; }else{ //inset new page into db mysql_query('INSERT into matoppskrift (`overskrift`,`beskjed`,`dato`,`url`) VALUES("","'.mysql_real_escape_string(html_entity_decode($_POST['overskrift'])).'", "'.mysql_real_escape_string(html_entity_decode($_POST['beskjed'])).'", "'.$pagename.'")'); //put the created content to file file_put_contents('./oppskrifter/'.$pagename,$page); //make a notice to show the user $notice = '<p>New Page created <b>./oppskrifter/'.$pagename.'</b></p>'; } } ?> <script src="../ckeditor/ckeditor.js"></script> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Language" content="en-gb"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Make page example</title> </head> <body> <?php //if the notice is set then display it if(isset($notice)){echo $notice;} ?> <form method="POST" action=""> <p>URL navn:<input type="text" name="url" size="32"></p> <p>Overskrift:<input type="text" name="overskrift" size="32"></p> <p>beskjed:</p> <p><textarea rows="30" name="beskjed" cols="100"></textarea></p> <script> CKEDITOR.replace( 'beskjed' ); </script> <input type="text" name="dato" value="<?php date_default_timezone_set('Europe/Oslo'); echo date("d/m/Y H:i:s"); ?>" ></input> <p><input type="submit" value="Submit"></p> </form> </body> </html> Endret 5. juli 2013 av chri-ot Lenke til kommentar
KRIZx Skrevet 27. juli 2013 Del Skrevet 27. juli 2013 (endret) Du har ett par feil i den sql spørringen din. Jeg fikset opp i feilene dine (tror jeg?), du kan prøve med denne her: mysql_query("INSERT INTO matoppskrift (`overskrift`,`beskjed`,`dato`,`url`) VALUES("'.$overskrift.'", "'.$beskjed.'", "", "'.$pagename.'")"); Endret 27. juli 2013 av KRIZx 1 Lenke til kommentar
chri-ot Skrevet 28. juli 2013 Forfatter Del Skrevet 28. juli 2013 Du har ett par feil i den sql spørringen din. Jeg fikset opp i feilene dine (tror jeg?), du kan prøve med denne her: mysql_query("INSERT INTO matoppskrift (`overskrift`,`beskjed`,`dato`,`url`) VALUES("'.$overskrift.'", "'.$beskjed.'", "", "'.$pagename.'")"); Tusen takk, skal prøve etterpå! Jeg sitter på mobilen nå. Lenke til kommentar
KRIZx Skrevet 28. juli 2013 Del Skrevet 28. juli 2013 (endret) Tusen takk, skal prøve etterpå! Jeg sitter på mobilen nå. Jeg tror jeg så igjennom koden litt fort å gæli, men du kan prøve det jeg skrev over her. Hvis ikke kan du prøve dette: mysql_query('INSERT INTO matoppskrift (`overskrift`,`beskjed`,`dato`,`url`) VALUES("'.mysql_real_escape_string(html_entity_decode($_POST['overskrift'])).'", "'.mysql_real_escape_string(html_entity_decode($_POST['beskjed'])).'", "", "'.$pagename.'")'); Endret 28. juli 2013 av KRIZx 1 Lenke til kommentar
chri-ot Skrevet 28. juli 2013 Forfatter Del Skrevet 28. juli 2013 Måtte nesten dra frem pcen å prøve med en gang, jeg hadde egentlig gitt opp hele greia, men jeg har veldig lyst til å få det til Desverre fungerte det ikke, den siste jeg la inn var "kaffe", og den oppførte seg på samme måte som alt annet tull jeg har skrevet inn. Jeg tror jeg så igjennom koden litt fort å gæli, men du kan prøve det jeg skrev over her. Hvis ikke kan du prøve dette: mysql_query('INSERT INTO matoppskrift (`overskrift`,`beskjed`,`dato`,`url`) VALUES("'.mysql_real_escape_string(html_entity_decode($_POST['overskrift'])).'", "'.mysql_real_escape_string(html_entity_decode($_POST['beskjed'])).'", "", "'.$pagename.'")'); Så ikke at du skrev det, skal teste det nå, takk Lenke til kommentar
chri-ot Skrevet 28. juli 2013 Forfatter Del Skrevet 28. juli 2013 Jeg tror jeg så igjennom koden litt fort å gæli, men du kan prøve det jeg skrev over her. Hvis ikke kan du prøve dette: mysql_query('INSERT INTO matoppskrift (`overskrift`,`beskjed`,`dato`,`url`) VALUES("'.mysql_real_escape_string(html_entity_decode($_POST['overskrift'])).'", "'.mysql_real_escape_string(html_entity_decode($_POST['beskjed'])).'", "", "'.$pagename.'")'); Det fungerte helt toppers! Nå trenger jeg bare å få lagt til dato så fungerer endelig koden. Skulle ønske det gikk ann å gi mer en +1 Lenke til kommentar
chri-ot Skrevet 28. juli 2013 Forfatter Del Skrevet 28. juli 2013 For å legge til dato har jeg gjort slik: mysql_query('INSERT INTO matoppskrift (`overskrift`,`beskjed`,`dato`,`url`) VALUES("'.mysql_real_escape_string(html_entity_decode($_POST['overskrift'])).'", "'.mysql_real_escape_string(html_entity_decode($_POST['beskjed'])).'", "'.mysql_real_escape_string$_POST['dato']).'", "", "'.$pagename.'")'); Men det fungerer ikke, siden blir bare hvit, så noe må være galt med koden. Jeg klarer ikke se det..Hva kan det være? Lenke til kommentar
Thomas. Skrevet 28. juli 2013 Del Skrevet 28. juli 2013 For å legge til dato har jeg gjort slik: mysql_query('INSERT INTO matoppskrift (`overskrift`,`beskjed`,`dato`,`url`) VALUES("'.mysql_real_escape_string(html_entity_decode($_POST['overskrift'])).'", "'.mysql_real_escape_string(html_entity_decode($_POST['beskjed'])).'", "'.mysql_real_escape_string$_POST['dato']).'", "", "'.$pagename.'")'); Men det fungerer ikke, siden blir bare hvit, så noe må være galt med koden. Jeg klarer ikke se det..Hva kan det være? Du mangler en ( og har en "", for mye. Prøv dette: http://pastebin.com/i7JpCyqc Anbefaler og skru på feil-rapportering øverst i koden din (se nedenfor), og bruk en editor med syntax-highlighting, f.eks netbeans ini_set('display_errors', 1); error_reporting(E_ALL); 1 Lenke til kommentar
KRIZx Skrevet 28. juli 2013 Del Skrevet 28. juli 2013 (endret) <?php include('../meny.php'); ?> <div id="hoved"> <div id="tekstforside1"> <!--beskjed--> <!--dato--> <?php include('../server.php'); ?> </div> </div> <?php include('../footer.php'); ?> <?php //handle the posted form if(isset($_POST['overskrift'])&&isset($_POST['beskjed'])&&isset($_POST['dato'])){ //replace the areas of the template with the posted values $page = str_replace('<!--overskrift-->',html_entity_decode($_POST['overskrift']),$template); $page = str_replace('<!--beskjed-->',html_entity_decode($_POST['beskjed']),$page); $page = str_replace('<!--dato-->',html_entity_decode($_POST['dato']),$page); //create a name for the new page $pagename = ($_POST['overskrift']).'.php'; include('server.php'); //check if page already exists $result = mysql_query('SELECT url from matoppskrift WHERE url="'.mysql_real_escape_string($pagename).'"'); if(mysql_num_rows($result)>=1){ $notice = '<p>Page already created <b>./oppskrifter/'.$pagename.'</b></p>'; }else{ //inset new page into db mysql_query('INSERT into matoppskrift (`overskrift`,`beskjed`,`dato`,`url`) VALUES("","'.mysql_real_escape_string(html_entity_decode($_POST['overskrift'])).'", "'.mysql_real_escape_string(html_entity_decode($_POST['beskjed'])).'", "'.$pagename.'")'); //put the created content to file file_put_contents('./oppskrifter/'.$pagename,$page); //make a notice to show the user $notice = '<p>New Page created <b>./oppskrifter/'.$pagename.'</b></p>'; } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link href="../style.css" rel="stylesheet" type="text/css" title="default"/> <link rel="icon" type="image/png" href="../icon.png" /> <meta http-equiv="Content-Language" content="en-gb"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="../ckeditor/ckeditor.js"></script> <title>Make page example</title> </head> <body> <?php //if the notice is set then display it if(isset($notice)){echo $notice;} ?> <form method="POST" action=""> <p>URL navn:<input type="text" name="url" size="32"></p> <p>Overskrift:<input type="text" name="overskrift" size="32"></p> <p>beskjed:</p> <p><textarea rows="30" name="beskjed" cols="100"></textarea></p> <script> CKEDITOR.replace( 'beskjed' ); </script> <input type="text" name="dato" value="<?php date_default_timezone_set('Europe/Oslo'); echo date("d/m/Y H:i:s"); ?>" ></input> <p><input type="submit" value="Submit"></p> </form> </body> </html> Prøv dette Endret 28. juli 2013 av KRIZx Lenke til kommentar
chri-ot Skrevet 28. juli 2013 Forfatter Del Skrevet 28. juli 2013 Du mangler en ( og har en "", for mye. Prøv dette: http://pastebin.com/i7JpCyqc Anbefaler og skru på feil-rapportering øverst i koden din (se nedenfor), og bruk en editor med syntax-highlighting, f.eks netbeans ini_set('display_errors', 1); error_reporting(E_ALL); Tusen takk, nå fungerer det. Takk for tipset, det skal absolutt gjøres 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å