login  Naam:   Wachtwoord: 
Registreer je!
 Forum

include-ing zorgt dat dit niet werkt..?

Offline AN_ALIEN - 26/04/2006 19:30
Avatar van AN_ALIENGouden medaille

Grafische beginner
Hey,
ik ben een tijdje bezig geweest met een registratieformulier waarmee je kan inloggen etc. Maar ik had allemaal leuke losse pagina's en het mooie zou zijn dat het 1 totaal/website word, nou daar ben ik mee bezig en toen stuite ik op een probleem,
ik ging wat pagina include-in zoals dit:

registreer.php:
  1. <form name="register" method="post" action="<? echo($_SERVER['PHP_SELF']); ?>">
  2. Email: <input type="text" name="email" size="40" maxlength="40"><br>
  3. Wachtwoord: <input type="text" name="wachtwoord" size="40" maxlength="40"><br>
  4. <br>
  5. naam: <input type="text" name="naam" size="40" maxlength="40"><br>
  6. achternaam: <input type="text" name="achternaam" size="40" maxlength="40"><br>
  7. schooltype:
  8. <select name="schooltype">
  9. <option >HBS</option>
  10. <option>Gymnasium</option>
  11. <option>MMS</option>
  12. <option>Mulo</option>
  13. <option>Mavo</option>
  14. <option>Vmbo</option>
  15. <option>Havo</option>
  16. <option>Vwo</option>
  17. </select>
  18. <br>
  19. Examenjaar: <input type="text" name="examenjaar" size="8" maxlength="4"><br>
  20. Info/extra opmerking:<br>
  21. <textarea name="info" cols="50" rows="5"></textarea> <br>
  22. <br>
  23. <input type="submit" name="submit" value="submit">
  24. <input type="reset" name="reset" value="clear">
  25. </form>
  26.  
  27. <?php
  28. mysql_connect("****","******","*****") or die(mysql_error());
  29. mysql_select_db("******");
  30. ?>
  31. <?php
  32. if(!empty($_POST['submit']))
  33. {
  34. $email = addslashes( $_POST['email'] );
  35. $wachtwoord = addslashes( $_POST['wachtwoord'] );
  36. $naam = addslashes( $_POST['naam'] );
  37. $achternaam = addslashes( $_POST['achternaam'] );
  38. $schooltype = $_POST['schooltype'];
  39. $examenjaar = $_POST['examenjaar'];
  40. $info = addslashes( $_POST['info'] );
  41.  
  42.  
  43. $result = mysql_query("SELECT * from oud_leerlingen WHERE email='$email' ") or die(mysql_error());
  44.  
  45. if(mysql_num_rows($result) > 0)
  46. {
  47. echo("Dit emailadres is al geregistreert, klik <a href=\" ".$_SERVER['PHP_SELF']." \">hier</a> om opnieuw te registreren");
  48. }
  49. else
  50. {
  51. $query = "INSERT INTO oud_leerlingen (email, wachtwoord, naam, achternaam, schooltype, examenjaar, info) VALUES ('".$email."', '".$wachtwoord."', '".$naam."', '".$achternaam."', '".$schooltype."', '".$examenjaar."', '".$info."')";
  52. $result = mysql_query($query) or die(mysql_error());
  53. echo("U bent geregistreert!");
  54. die();
  55. }
  56.  
  57. }
  58. ?>

Alles losjes als aparte pagina's werkte dit wel, dus ik dacht laat ik dit een include-ten.

index.php:
  1. <?php
  2. mysql_connect("***","******","*****") or die(mysql_error());
  3. mysql_select_db("*******");
  4. ?>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head>
  8. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  9. <title>Untitled Document</title>
  10. <link rel="stylesheet" type="text/css" href="layout.css" />
  11. </head>
  12. <body>
  13.  
  14. <div id="page">
  15. <div id="header">Header</div>
  16. <div id="menu">
  17. menu
  18. <a href="?page=in">Informatie ofzo</a><br />
  19. <a href="?page=registreer">Registreer</a><br />
  20. </div>
  21.  
  22.  
  23. <div id="content">
  24. <?php
  25. if($_GET['page']=="login")
  26. {
  27. include("login.php");
  28. }
  29. if($_GET['page']=="registreer")
  30. {
  31. include("registreer.php");
  32. }
  33. ?>
  34.  
  35. <?php
  36. //begin beveiliging
  37. if(!isset($_SESSION['email']))
  38. {
  39. ?>
  40. Je moet ingelogd zijn om deze website te kunnen bekijken, <a href="?page=login">Klik hier om in te loggen</a>
  41. <?
  42. }
  43. else
  44. {
  45. //eind beveiliging, beging beveiligte content
  46. ?>
  47.  
  48.  
  49. <?php
  50.  
  51.  
  52. if($_GET['page']=="ingelogd")
  53. {
  54. ?>
  55. Je username is: <? echo($_SESSION['email']); ?> <br>
  56. En met het wachtwoord: <? echo($_SESSION['wachtwoord']); ?><br>
  57. <?
  58. }
  59. ?>
  60.  
  61.  
  62. <?
  63. } //eind beveiligte content
  64. ?>
  65.  
  66. </div>
  67.  
  68. </div>
  69.  
  70. </body>
  71. </html>


Komt het doordat ik include het niet meer werkt? of ligt het ergens anders aan, heeft iemand oplossingen waardoor het nog mooi overzichtelijk blijft?

tevens werke login enzo ook niet meer, maar meschien lukt het me zelf nadat dit is opgelost;-)

alvast hartelijk dank voor uw tijd

9 antwoorden

Gesponsorde links
Offline vinTage - 26/04/2006 19:33
Avatar van vinTage Nieuw lid Ik weet niet WAT er niet werkt, maar je kan wel dit veranderen
  1. <form name="register" method="post" action="<? echo($_SERVER['PHP_SELF']); ?>">

naar
  1. <form name="register" method="post" action="<?=$_SERVER['REQUEST_URI']?>">

Mischien dat dat de boosdoener is ?
Offline kokx - 26/04/2006 19:34 (laatste wijziging 26/04/2006 19:37)
Avatar van kokx Onbekend @vinTage: Dat werkt alleen met short tags op on. En de fout zal het niet zijn.

@AN_ALIEN: Gebruik geen haakjes bij echo.

Edit: Dat hoort geen probleem te zijn maar het hoort niet. Het kan zijn dat php op de strict mode staat en dan is het wel een probleem.

Edit2: Wat voor error krijg je?
Offline vinTage - 26/04/2006 19:37 (laatste wijziging 26/04/2006 19:37)
Avatar van vinTage Nieuw lid Dat weet ik ook wel dat dat alleen met shorttags enabled is, maar als hijzelf
  1. Je username is: <? echo($_SESSION['email']); ?> <br>

gebruikt, zal dat wel draaien zeker...
Offline AN_ALIEN - 26/04/2006 19:46
Avatar van AN_ALIEN Gouden medaille

Grafische beginner
Als ik registreert in index.php gebruik, dus met de include, en dat ga invullen en op submit druk krijg ik zowel GEEN mysql error en GEEN "u heeft geregistreert..."-melding, het fompje verdijnt zegmaar.(terwijl de rest er gewoon blijft)

@vintage: shorttages staat aan, want ik heb alles volledige getest toen alles losse pagina's waren die naar elkaar linkte, maar na de include werkte het niet:(
Offline vinTage - 26/04/2006 19:48
Avatar van vinTage Nieuw lid
Citaat:
het fompje verdijnt zegmaar


Ook als je dat uit mn eerste post gebruikt ?
Offline Button - 26/04/2006 19:48
Avatar van Button PHP ver gevorderde @kokx: ik heb php nog nooit weten zagen over haakjes bij echo... ben je er zeker van dat php dat ooit zou doen?
Offline kokx - 26/04/2006 19:50 (laatste wijziging 26/04/2006 19:53)
Avatar van kokx Onbekend
  1. $result = mysql_query("SELECT * from oud_leerlingen WHERE email='$email' ") or die(mysql_error());

==>
  1. $result = mysql_query("SELECT * FROM oud_leerlingen WHERE email='$email' ") or die(mysql_error());

?

Edit: In php5 heb je E_STRICT. Volgensmij mag je dan geen haakjes bij echo gebruiken. Omdat het een language-construct ofzo is.

Edit2: Waar is dit voor:
  1. ?>
  2.  
  3. <?php
Offline AN_ALIEN - 26/04/2006 20:07
Avatar van AN_ALIEN Gouden medaille

Grafische beginner
@vintage, bedankt
je $_SERVER['REQUEST_URI'] werk in plaats van $_SERVER['php_self']

kan iemand verklaren wat het verschil zit in die 2?:lamp:

iedereen bedankt die mee heeft gedacht:D
Offline vinTage - 26/04/2006 20:43 (laatste wijziging 26/04/2006 20:44)
Avatar van vinTage Nieuw lid $_SERVER['REQUEST_URI'] bekijkt de url en voert het script daar uit.

$_SERVER['php_self'] voert het script uit op DIE pagina.

k weet niet precies hoe ik het moet uitleggen, maar als je include werkt, werkt $_SERVER['REQUEST_URI'] altijd.

Er zal vast ook wel een uitzondering zijn, maar die weet ik niet omdat ik ook nog in de php leerschoenen sta 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.281s