login  Naam:   Wachtwoord: 
Registreer je!
 Forum

includen van php-pagina's in html-pagina's (Opgelost)

Offline fransh - 06/12/2008 19:44
Avatar van franshNieuw lid Ik heb enkele vragen over het includen van php-pagina's in html-pagina's.
Ik heb een startpagina in html aangemaakt.
In mijn startpagina roep ik mbv een link gastenboek.html op.
In mijn gastenboek.html wil ik een php-pagina include.
Als ik in mijn gastenboek.html de volgende verwijzing opneem <?php include("gastenboek/gastenboek.php"); ?> dan had ik verwacht dat in mijn gastenboek.html gastenboek.php werd ingelezen.

Echter het gastenboek.php-bestand wordt mi gedownload en dan krijg ik een foutmelding te zien. "Access to c:\Documents and Settings\..\gastenboek[1].php was denied"

Heb Wamp op mijn pc geinstalleerd. DB aangemaakt.
Maar waar wordt de DB opgeslagen?
Als ik deze vind moet de DB dan niet naar de server?

Ook het Includen van php-pagina neemt ie niet mee.
Als ik als test een php-pagina aanmaak (body pagina) en een pagina met footer.php en deze in alle andere pagina's wil includen gebeurt er niets.
<?php include("footer.php"); ?>


Wat gaat er niet goed of moet ik nog toevoegen/aanpassen?

16 antwoorden

Gesponsorde links
Offline skillat2 - 06/12/2008 19:59
Avatar van skillat2 HTML beginner 1.
Met wamp kan je alles met phpmyadmin beheren http://localhost/phpmyadmin (als je localhost draait). Je kan dus ook met phpmyadmin een export draaien als je deze eventueel moet overzetten naar een andere computer/server.

2.
Klopt je path wel (naar je te includen bestand)?

Maak is een php bestand aan (geen html) bijvoorbeeld test.php
  1. <?php
  2. include 'footer.php';
  3. ?>


en in footer.php bijvoorbeeld:

  1. <?php
  2. echo 'dit is de footer';
  3. ?>


Werkt dat wel?
Offline fransh - 06/12/2008 22:14
Avatar van fransh Nieuw lid Snap er niets van; doet echt helemaal niets.
de paden kloppen in beide pagina's maar er gebeurt helemaal niets.
Wat gaat er bij mij verkeert????
Offline skillat2 - 07/12/2008 15:03
Avatar van skillat2 HTML beginner Kijk is in de bron van je file. Staat er wel wat in of helemaal leeg ?

Staat je error handeling wel aan ?
  1. <?php
  2. ini_set('error_reporting', E_ALL);
  3. ?>
Offline fransh - 07/12/2008 15:30 (laatste wijziging 07/12/2008 15:32)
Avatar van fransh Nieuw lid in mijn (opstart)pagina (home.html) staat verwijzing
<?php
include 'footer.php';
?>
In mijn footer.php heb ik de footer text opgenomen.
Er gebeurt niets.

Ook niet als ik de code
<?php
ini_set('error_reporting', E_ALL);
?>
opneem in mijn pagina dan zie ik ook niets.

wie weet de oplossing van mijn probleem??????????????????
Offline kilian - 07/12/2008 17:06
Avatar van kilian Lid PHP werkt natuurlijk enkel in php files. Doe eens zoals skillat2 reeds zei en gebruik een .php bestandje.

Offline skillat2 - 07/12/2008 17:33 (laatste wijziging 07/12/2008 17:34)
Avatar van skillat2 HTML beginner Je kan wel php in html gebruiken maar dan moet je iets in je httpd config toevoegen:
Zie deze tutorial: PHP in *.html
Offline fransh - 08/12/2008 13:36 (laatste wijziging 08/12/2008 13:37)
Avatar van fransh Nieuw lid ik heb mijn httpd.config aangepast maar zag er toch wat anders uit.
kan nu local includen en gebruik maken van mijn database maar krijg een foutmelding (zie onderstaand)
Wat moet ik nog aanpassen om deze foutmelding op te lossen????

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Program Files\wamp\www\gastenboek\gastenboek.html:96) in C:\Program Files\wamp\www\gastenboek\gastenboek.php on line 10

line 10 in mijn gastenboek geeft als code:
session_start();
Is toch correct??? en toch struikelt ie daarover???


Offline zointer - 08/12/2008 13:46
Avatar van zointer HTML gevorderde veel voorkomende vraag 
http://www.sitemasters.be/FAQ/2/Foutmeldingen#faq2
Offline Martijn - 08/12/2008 13:46
Avatar van Martijn Crew PHP ja daz goed. Maar je kunt een session_start() niet doen als er al info op de pagina staat (in dit geval dus html)
Offline fransh - 08/12/2008 17:16
Avatar van fransh Nieuw lid Hoe moet ik mijn html dan opbouwen. Ik heb halverwege mijn pagina een include php-pagina gedaan.
Moet voor de include alles aangepast worden naar php???

tweede vraag:
De volgende foutmelding verschijnt ook op mijn pagina:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\Program Files\wamp\www\gastenboek\includes\functions.php on line 497

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Program Files\wamp\www\gastenboek\includes\functions.php on line 498

Heb op de helppagina gekeken (http://www.sitemasters.be/FAQ/2/Foutmeldingen#faq2)
, maar kan hier niets fout aan ontdekken.

function show_email($email, $name)
{
// Query SELECT maken en uitvoeren
$query = 'SELECT username, rank FROM admins WHERE username = "'.$name.'"';
$result = mysql_query($query);
$record = mysql_fetch_object($result);
if (mysql_num_rows($result) > 0)
{
return "<a href='mailto:".$email."' class='emailbeheerder'>".$name."</a>";
}

mag ik nog een beroep op jullie doen?
Offline skillat2 - 08/12/2008 21:53 (laatste wijziging 08/12/2008 21:54)
Avatar van skillat2 HTML beginner 1.
Je zou het beste in je index pagina (index.php oid) bovenaan een sessie beginnen.

Een voorbeeld hoe je de index zou kunnen opbouwen:

  1. <?php
  2. # sessie starten
  3.  
  4. # functies includen
  5. include 'functions.php';
  6. ?>
  7. <html>
  8. <head>
  9. <title>Je pagina titel</title>
  10. </head>
  11. <body>
  12. <?php
  13. include 'content.php';
  14. include 'footer.php';
  15. ?>
  16. </body>
  17. </html>


2.
In je functie check je alleen of de admin bestaat, in dit geval kan je beter de mysql functie COUNT gebruiken.

Ik heb je omgeving nagebootst (zover mogelijk) op m'n localhost en zo moet je functie werken:

  1. function show_email($email, $name)
  2. {
  3. $result = mysql_query('SELECT COUNT(username) FROM admins WHERE username = "'.$name.'"') or die (mysql_error());
  4. if (mysql_result($result,0) > 0)
  5. {
  6. return "<a href='mailto:".$email."' class='emailbeheerder'>".$name."</a>";
  7. }
  8. }


  1. echo show_email('test@test.nl','skillat2');


ps: je kan [code] tags gebruiken dan wordt al je code gehighlight.
Offline fransh - 09/12/2008 13:52
Avatar van fransh Nieuw lid Toppie,
Bovenstaande oplossing aangebracht en werkt perfect.
Dank daarvoor.

Alleen heb ik een vervolg vraagje.

Op mijn pc heb ik lokaal een Wamp-server geinstalleerd en daar heb ik een gastenboek aangemaakt. Gastenboek.html en diverse php-pagina's geinclude incl een database.
Lokaal werken mijn php-pagina's met de html-(start)pagina's icm mijn database correct.
Als ik de pagina's upload naar mijn Web-server dan zie ik alleen maar mijn html-pagina. Php-pagina's die ik geinclude heb werkt kennelijk niet op de Web-server.

Mijn vragen zijn:
1) Wat moet ik naast mijn gastenboek.html en enkele php-pagina's allemaal uploaden naar de Web-server.
2) Mijn lokale database moet naar de Web-server toe. Weet iemand waar dat lokaal staat. (Wat heeft de database voor een extentie)
3) Wat moet er meer gebeuren wil ik het op de Web-server lekker/foutloos draaien?

Wie weet de oplossing van mijn probleem??
Offline skillat2 - 09/12/2008 15:09 (laatste wijziging 09/12/2008 15:10)
Avatar van skillat2 HTML beginner 1)
Alles wat in je pagina geladen wordt, images / css / javascript bestanden etc.
Daarnaast moet je niet vergeten lokale verwijzingen te veranderen naar het path op de server. Voorbeeld:

  1. C:\images zal je moeten veranderen in images/


2)
Je gaat naar http://localhost/phpmyadmin/ vervolgens klik je links in het menu op jou database.
In het midden bovenaan staan er tabbladen, hier klik je op exporteer.
Hier kan je nog wat opties aan en uit zetten en vervolgens klik je op start.

Op je webserver zul je deze stap moeten herhalen maar dan moeten importen. (als deze over phpmyadmin beschikt, zo niet dan zou je naar een andere oplossing moeten kijken in je hosting pakket)

3)
Je zult net zoals je op je wamp server hebt gedaan de httpd config moeten aanpassen. Als je bij een provider (virtuele / shared hosting) zit zul je hier waarschijnlijk geen toegang voor hebben.

Als je hier geen toegang voor hebt kan je beter alles in php houden in plaats van je html (start) pagina´s.
Offline fransh - 11/12/2008 06:57
Avatar van fransh Nieuw lid Als ik mbv onderstaand code probeer in te loggen krijg ik elke keer de melding: "Dit password is niet geldig bij deze username!" terwijl in mijn database het volgende is ingevuld:
id username password email rank
------------------------------------------------
1 Naam WW email@email.nl 1

Is de routine niet helemaal correct.
Als ik de query uitlees wordt er wel (mbv alert) de juiste waarde uitgelezen.

Zie je reactie graag tegemoet.

  1. if ($_GET['action'] == "login")
  2. {
  3. // Menu content header weergeven
  4. echo show_content_header("Inloggen",$ccontentheader,$ccontent);
  5. // Controleren of formulier gepost is
  6. if (isset($_POST['submit']))
  7. {
  8. // Post variabelen opslaan
  9. $pusername = strip_tags($_POST['username']);
  10. $ppassword = strip_tags($_POST['password']);
  11. // Controleren of alle verplichte velden zijn ingevuld
  12. if (!empty($pusername) || !empty($ppassword))
  13. {
  14. // Query SELECT maken en uitvoeren
  15. $query = 'SELECT id, password, rank FROM admins WHERE username = "'.$pusername.'"';
  16. $result = mysql_query($query);
  17. $record = mysql_fetch_object($result);
  18. // Controleren of er een gebruiker gevonden is
  19. if(mysql_num_rows($result) > 0 )
  20. {
  21. // Wachtwoord hash uit de database halen
  22. $key = $record->password;
  23. // $key controleren met de hash geven via het formulier of cookie
  24. if (md5($ppassword) == $key)
  25. {
  26. // Sessie vars aanmaken
  27. $_SESSION['login'] = true;
  28. $_SESSION['rank'] = $record->rank;
  29. $_SESSION['id'] = $record->id;
  30. // Info message weergeven
  31. echo show_info_message("U bent ingelogd.","$PHP_SELF?");
  32. }
  33. // Wachtwoord ongeldig
  34. else
  35. {
  36. // Error message weergeven
  37. echo show_error_message("Dit password is niet geldig bij deze username!");
  38. // Login form weergeven
  39. echo show_login_form();
  40. }
  41. }
  42. // Gebruiker niet gevonden
  43. else
  44. {
  45. // Error message weergeven
  46. echo show_error_message("Username komt niet voor in onze database!");
  47. // Login form weergeven
  48. echo show_login_form();
  49. }
  50. }
  51. // Velden niet ingevuld
  52. else
  53. {
  54. // Error message weergeven
  55. echo show_error_message("Vul alle verplichte velden in!");
  56. // Login form weergeven
  57. echo show_login_form();
  58. }
  59. }
  60. else
  61. {
  62. // Login form weergeven
  63. echo show_login_form();
  64. }
  65. // Menu content footer weergeven
  66. echo show_content_footer();
  67. }
Offline skillat2 - 11/12/2008 13:08 (laatste wijziging 11/12/2008 13:11)
Avatar van skillat2 HTML beginner In je tabel een aanpassing maken, password veranderen naar BINARY(32) met de md5 hash daarin opgeslagen

OF:
Lijn 24 veranderen naar:

  1. if (md5($ppassword) == md5($key))


$ppasword is namelijk wel md5 encrypted (hash) maar je $key nog niet, dus dan krijg je een vergelijking die nooit TRUE kan zijn.

Er staat dan eigenlijk: 0a9b52fb6605edc74fd7d5359f34477e == WW
Offline fransh - 11/12/2008 16:45
Avatar van fransh Nieuw lid Dank je skillat2 voor jou hulp.

Het formulier "Gastenboek" werkt perfect op mijn wamp-server maar nog niet op de Web-server.
Moet daar nog mee aan de slag.
Je hebt me daar eerder over geschreven en zal dat nog uit moeten werken hoe en op wat voor manier dat dat kan.

Mocht ik nog vragen hebben maak ik een nieuw Topic aan.

Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.292s