PHP create new page?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ronny -

Ronny -

08/10/2012 18:53:04
Quote Anchor link
Hallo PHPHulpers,

Of het mogelijk is weet ik niet maar, voor een project zoek ik een functie van PHP waarmee ik een nieuwe pagina aan kan maken of een pagina met wat inhoud kan kopieren.

Ik ben al wat wezen googlen maar ik kom niet op antwoorden uit die mijn vraag beantwoord.

Om het wat specifieker uit te leggen.
Ik wil gebruikers foto albums aan laten maken. Deze foto albums moeten aparte pagina's worden. fotoalbum1.php, fotoalbum2.php, fotoalbum3.php etc.
Als ze dus op de knop 'Maak foto album' aan zouden klikken moet er een pagina aangemaakt worden. Die pagina moet de naam hebben van de door hun ingevoerde titel.

Is zoiets überhaupt mogelijk met PHP of moet ik daar iets anders voor aanroepen?
Iemand enig idee waarop ik hiervoor moet googlen oid? Ik heb namelijk geen idee hoe ik dit zou moeten beschrijven om tot de juiste zoekresultaten te komen.

Waar ik wel op uit ben gekomen is de copy functie van PHP de copy functie van PHP .

Echter heb ik zelf nog geen ervaring met deze functie en weet ik ook nog niet wat alle mogelijkheden hiervoor zijn.
Ik zou het namelijk ook prima vinden als ik een bestand maak die dan gekopieerd word maar met een andere naam.

Ik hoor graag jullie suggesties en tips :)

Bij voorbaat dank!
 
PHP hulp

PHP hulp

21/11/2024 21:37:09
 
Frank Nietbelangrijk

Frank Nietbelangrijk

08/10/2012 19:01:20
Quote Anchor link
google eens op PHP fopen, fwrite, fread en fclose

:-)

Mocht je er niet uitkomen dan laat je dat maar weten.

Frank
 
Flip --

Flip --

08/10/2012 19:46:33
Quote Anchor link
niet per gebruiker een php bestand aanmaken.

Gebruik apache mod_rewrite je kan dan links maken zoals:
domein.com/gebruikersnaam/album

dat dan wordt omgeschreven intern naar:
domein.com/index.php?username=gebruikersnaam&page=album

zodat je in je script kan gebruiken:
if ($_GET['username'] == 'piet') {
// haal piet uit op database
// laad de plaatjes van piet in
}
 
Ronny -

Ronny -

08/10/2012 20:04:32
Quote Anchor link
Bedankt voor jullie reacties!
Aan de optie van Frank heb ik genoeg aangezien het niet nodig is dat elke gebruiker een album kan aanmaken echter alleen de admin.

Ik heb er wat over gelezen en ben ermee aan de slag gegaan.
Nu heb ik de volgende code ervan gemaakt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php      
        $errors
= array( );
        ini_set( 'display_errors', 1 );
        error_reporting( E_ALL );
        
        if (isset($_POST['submit_create'])) {
            $fileName = $_POST['fileName'];
            
            echo "<form action='admin.php' method='post'>
                        <p><label>Pagina titel:</label><br>
                        <input type='text' name='fileName' class='field' value='' /></p>
                        <input type='submit' class='opslaan' name='submit_create' value='Aanmaken' />
                  </form>"
;    
            
            if (is_file(''.$fileName.'.php'))    {
                echo "<p class='error'>Er bestaat al een pagina met deze naam! <span class='close'>X</span></p>";
            }
else {
                $li_query = "INSERT INTO albums (link) VALUES ('$fileName')";
                $li_result = mysql_query($li_query) or die ("<p class='error'>Error in query: $li_query.<span class='close'>X</span></p>".mysql_error());
                
                $fileHandle = fopen(''.$fileName.'.php', 'w') or die("<p class='error'>Het bestand kan niet aangemaakt worden.<span class='close'>X</span></p>");
                fwrite($fileHandle, '<?php include "include/doctype.php"; ?><br /><?php include "include/footer.php"; ?>');
                fclose($fileHandle);
                echo "<p class='update'>De pagina is toegevoegd <span class='close'>X</span></p>";
            }    
        }
else {
            echo "<form action='dmin.php' method='post'>
                        <p><label>Pagina titel:</label><br>
                        <input type='text' name='fileName' class='field' value='' /></p>
                        <input type='submit' class='opslaan' name='submit_create' value='Aanmaken' />
                  </form>"
;        
        }

 ?>


Deze code doet prima wat het moet doen en maakt een nieuwe pagina aan als dat kan met de includes erbij.
De $fileName word opgeslagen in de database in de rij 'link'.
Op mijn index.php heb ik de volgende code staan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
        $p_query
= "SELECT src, alt, title FROM top";
        $p_result = mysql_query($p_query);
        
        while($p_row = mysql_fetch_array($p_result)) {
            echo "<div class='project'>
                     <img src='/"
.$p_row['src']."' alt='".$p_row['alt']."' />    
                     <a href='kieboom.php' title='"
.$p_row['alt']."'><div class='item-title'>".$p_row['title']."</div></a>    
                  </div>"
;                                                                
        }

?>


Op de plaats waar nu kieboom.php staat moet de link komen.
Echter heb ik me hier een beetje op verkeken. Want op de homepage zijn 4 afbeeldingen die geladen worden uit de tabel 'top'. Echter moet het juiste plaatje uit de tabel top wel de juiste link uit de rij link krijgen van de tabel albums.

Hier kom ik niet uit, maar ergens heb ik ook het idee dat ik hier veel te lastig over denk?!

Suggesties of tips? :)
 
Flip --

Flip --

08/10/2012 20:34:08
Quote Anchor link
per gebruiker een directory maken voor plaatjes
en dan iets verzinnen dat die directory kan worden geopened met informatie die je uit de database haalt.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

08/10/2012 21:53:12
Quote Anchor link
tabel top:
id INT (autoincrement, primary index)
id_albums INT (index) <= deze kolom bewaard het id van albums
...

tabel albums:
id INT (autoincrement, primary index)
link
...


en dan
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$query
="SELECT * FROM top, albums WHERE top.id = albums.id_albums;";
$restult = mysql_query($query, $connection);
while($row = mysql_fetch_assoc($result)) {
    echo "<a href='".$row['link']."'><img alt='een plaatje' src='pad/naar/foto.jpg' /></a>";
}

?>
Gewijzigd op 08/10/2012 22:52:56 door Frank Nietbelangrijk
 
Ronny -

Ronny -

09/10/2012 12:45:51
Quote Anchor link
Bedankt voor jullie reacties! En bedankt Frank!
Het is me nu gelukt, in plaats van ID gebruik ik alleen wel een andere waarde omdat het verschil tussen ID enorm is altijd.
Ik wist alleen niet hoe je in een query meerdere dingen kan selecteren en aanduiden. Maar dat is met jou hulp prima gelukt, bedankt!
 
Ronny -

Ronny -

10/10/2012 23:09:58
Quote Anchor link
Is het mogelijk om met de fwrite() optie iets te schrijven na een specifiek gedeelte in het bestand dat geopend word?

Ik heb namelijk de volgende code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$fileHandle
= fopen(''.$pagina.'.php', 'w') or die("<p class='error'>Het bestand kan niet geopend worden.<span class='close'>X</span></p>");
fwrite($fileHandle, '<?php include "include/doctype.php"; ?><br />');
fclose($fileHandle);    ?>


En ik wil dat wat ik met fwrite schrijf na de div content zetten in het bestand ($pagina.php) zetten.
Is dit mogelijk? Want ik heb ernaar gegoogled maar kon er niets over vinden. Heb ook de fwrite en fopen manuals van PHP zelf scannent doorgelezen daarop, maar kon er zo snel ook geen bruikbare informatie vinden.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.