Multidesk.be » Forums » Programmeren algemeen » PHP en MySQL registratie

  • Pagina
  • 1 van 1
0 gasten lezen dit onderwerp.
^ Onderwerp geschreven door een gast op woensdag 28 september 2011 om 18:07:21.
Ik ben bezig met een 'registration form', die nu even in plain text wordt opgeslagen. Het probleem is dat er niets in de database wordt opgeslagen. Dit is mijn code:

PHP code:
PHP
  1.  
  2. <?php
  3.         ini_set( 'display_errors', 1 );
  4.         error_reporting( E_ALL );
  5.         $con = mysql_connect( "localhost","root","my_password" );
  6.         if( !$con )
  7.         {
  8.                 die( 'Could not connect: ' . mysql_error( ) );
  9.         }
  10.  
  11.         mysql_select_db( "database", $con );
  12.  
  13.         $username = $_POST[username];
  14.         $password = $_POST[password];
  15.         $repeat   = $_POST[repeat];
  16.  
  17.         if( $password == $repeat )
  18.         {
  19.                 $sql = "INSERT INTO tabel ( username, password )
  20.                                 VALUES ( '$username','$password' )";
  21.         } else {
  22.                 echo "<a href="/register">Fout</a>";
  23.         }
  24.  
  25.         if( !mysql_query( $sql,$con ) )
  26.         {
  27.                 die( 'Error: ' . mysql_error( ) );
  28.         }
  29.         echo "You're successfully registered";
  30.  
  31.         mysql_close( $con );
  32. ?>
  33.  


Een stukje HTML
CODE
  1.  
  2. <p>Registration form:</p>
  3. <form action="/registratie.php" method="post">
  4.         Username: <input type="text" name="username" />
  5.         <br />
  6.         Password: <input type="password" name="password" />
  7.         <br />
  8.         Repeat password: <input type="password" name="repeat" />
  9.         <input type="submit" value="Register"/>
  10.  


Alvast bedankt,
Rob
^ Reactie #1 geschreven door thekid op woensdag 28 september 2011 om 20:20:30.
thekid's avatar
Multiviteit: 5273
Moderator
ik heb er dit van gemaakt, en met aanpassing dat het bestand index.php noemde werkte dit bij mij perfect

PHP
  1. <?php
  2.   ini_set( 'display_errors', 1 );
  3.   error_reporting( E_ALL );
  4.   if (isset($_POST["username"]))
  5.   {
  6.     $con = mysql_connect( "localhost","root","" );
  7.     if( !$con )
  8.     {
  9.     die( 'Could not connect: ' . mysql_error( ) );
  10.     }
  11.    
  12.     mysql_select_db( "multidesk", $con );
  13.    
  14.     $username = $_POST["username"];
  15.     $password = $_POST["password"];
  16.     $repeat   = $_POST["repeat"];
  17.    
  18.     if( $password != '' && $password == $repeat )
  19.     {
  20.       $sql = "INSERT INTO registration ( UserName, Password )
  21.       VALUES ( '$username','$password' )";
  22.       if( !mysql_query( $sql,$con ) )
  23.       {
  24.       die( 'Error: ' . mysql_error( ) );
  25.       }
  26.       echo '<p style="color: green;">You are successfully registered</p>';
  27.     }
  28.     else
  29.     {
  30.       if ($password == "")
  31.         echo '<p style="color: red;">You need to add a password!</p>';
  32.       else
  33.         echo '<p style="color: red;">Your password and repeat password do not match!</p>';
  34.     }   
  35.    
  36.     mysql_close( $con );
  37.   }
  38. ?>
  39. <form action="./index.php" method="post">
  40.   Username: <input type="text" name="username" value=<?php echo isset($_POST["username"]) ? $_POST["username"] : "" ?> />
  41.         <br />
  42.         Password: <input type="password" name="password" />
  43.         <br />
  44.         Repeat password: <input type="password" name="repeat" />
  45.   <input type="submit" value="Register"/>
  46. </form>
  47.  


ik heb uw ifs wat geherstructureerd, en via een check op de post waarden zie ik of de form wel degelijk is doorgegeven, je kan evt wel nog een escape doen op de set van de input value username, anders heb je kans dat een " in de naam wat raars oplevert :D

ook nog kijken natuurlijk om je insert query aan te passen zodat deze geen injectie kan krijgen natuurlijk
*edit*
zie hier http://www.learnphponline.com/security/sql-injection-prevention-mysql-php
Deze tekst werd het laatst bewerkt voor 2.39 % door thekid op woensdag 28 september 2011 om 20:24:36.
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #2 geschreven door een gast op donderdag 29 september 2011 om 19:04:34.
_O_Heel erg bedankt. Het werkt!

Met vriendelijke groet,
Rob
  • Pagina
  • 1 van 1

Snel-antwoordformulier
Toon uitgebreid antwoordformulier Bericht nalezen Bericht plaatsen