[php]form informatie invoegen in database

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 102419

Topicstarter
Ik ben bezig met een registratiesysteem, alleen ik loop nu al vast...
Ik wil de informatie die een gebruiker invult opslaan in de tabel user maar op een of andere manier gebeurt er niets als ik op submit druk, behalve dat hij de ingevulde username weergeeft. Als ik echter in de database kijk dan vind ik daar niet de gegevens die er zouden moeten staan.


code:
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
34
35
36
    <?php
    if(isset($Submit)==0){
    ?>
    <form id="form1" name="form1" method="post" action="">
          <label>
       &nbsp;<input name="username" type="text" id="username" />
        </label>
      Username
      <p align="center">
        <input name="password" type="password" id="password" />
      Password</p>
      
         <p>
           <input name="email" type="text" id="email" />
           Email&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
         <p>
           <label>
           <input type="submit" name="Submit" value="Register" />
           <span class="style6">---------</span> </label>
           <input name="Clear" type="reset" id="Clear" value="Clear" />
           <span class="style6">---------</span></p>
        </form>
<?php

        } else {
        $db = mysql_connect("localhost", "ubsoc", "") or
        die ("Database Failure");
        mysql_select_db("ubduel_uk_db", $db);
        $query = "INSERT INTO user ";
        $query .= "(username, password, email)";
        $query .= " values('$user','$password','$email')";
        mysql_close();

        echo "Hello $username";
        }
        ?>


Kan iemand me vertellen wat ik mis doe ?
Ik krijg ook geen foutmelding of iets dergelijks dus ik zou het echt niet weten(ben nieuw met php)

Acties:
  • 0 Henk 'm!

  • Justifier
  • Registratie: December 2004
  • Laatst online: 06-04-2024
isset($submit) == 0 kan volgens mij helemaal niet dan moet je kiezen of isset of $submit == 0. En die hele if else constructie kan niet want je hebt geen else nodig. Ook kan ik nergens vinden waar jij jouw variable definieerd.

[ Voor 42% gewijzigd door Justifier op 28-01-2006 23:32 ]


Acties:
  • 0 Henk 'm!

  • Orion84
  • Registratie: April 2002
  • Nu online

Orion84

Admin General Chat / Wonen & Mobiliteit

Fotogenie(k)?

Zou je die query ook niet es uitvoeren, ipv alleen maar opstellen :P 8)7

The problem with common sense is that it's not all that common. | LinkedIn | Flickr


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Anoniem: 102419 schreef op zaterdag 28 januari 2006 @ 23:29:
Kan iemand me vertellen wat ik mis doe ?
Ik krijg ook geen foutmelding of iets dergelijks dus ik zou het echt niet weten(ben nieuw met php)
PHP:
1
2
3
4
        $query = "INSERT INTO user ";
        $query .= "(username, password, email)";
        $query .= " values('$user','$password','$email')";
        mysql_close();


misschien is het handig om die query ook uit te voeren?

Acties:
  • 0 Henk 'm!

  • sjhgvr
  • Registratie: Januari 2004
  • Laatst online: 17-06 22:12
Misschien ook ff handig om mee te nemen: register_globals staat (sinds al enige tijd) standaard uit.

oisd.nl


Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
if(isset($Submit)==0)
Maak liever gebruik van de superglobals.
Ofwel

PHP:
1
if (isset($_POST['Submit']))


of

PHP:
1
if ($_SERVER['REQUEST_METHOD'] == 'POST')

[ Voor 37% gewijzigd door XWB op 28-01-2006 23:57 ]

March of the Eagles


Acties:
  • 0 Henk 'm!

  • sjhgvr
  • Registratie: Januari 2004
  • Laatst online: 17-06 22:12
Hacku schreef op zaterdag 28 januari 2006 @ 23:48:
PHP:
1
if (isset($_POST['submit'])
Hacku bedoeld dit: ;)
PHP:
1
if (isset($_POST['Submit']))

oisd.nl


Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Ja, een hoofdletter en een extra ) dus ;) Maar mijn punt blijft hetzelfde.

March of the Eagles


Acties:
  • 0 Henk 'm!

Anoniem: 102419

Topicstarter
Hacku, kun je me vertellen waarom jouw code beter te gebruiken is dan die van mij ?

code:
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
34
35
    <?php
    if (isset($_POST['Submit'])) {
        $username = $_POST["username"];
        $password = $_POST["password"];
        $email = $_POST["email"];
        $db = mysql_connect("localhost", "ubsoc", "") or
        die ("Database Failure");
        mysql_select_db("ubsoc_uk_db", $db);
        $SQL_statement = "INSERT INTO user(user_ID, username, password, email) VALUES ('', '$username, $password, $email)";
        mysql_query($SQL_statement);
        mysql_close();
            
    } else { ?>
    <form id="form1" name="form1" method="post" action="">
          <label>
       &nbsp;<input name="username" type="text" id="username" />
        </label>
      Username
      <p align="center">
        <input name="password" type="password" id="password" />
      Password</p>
      
         <p>
           <input name="email" type="text" id="email" />
           Email&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
         <p>
           <label>
           <input type="submit" name="Submit" value="Register" />
           <span class="style6">---------</span> </label>
           <input name="Clear" type="reset" id="Clear" value="Clear" />
           <span class="style6">---------</span></p>
        </form>
            <?php 
            }
            ?>


Ik heb nu dit, maar er gebeurt nog steeds niets :?
En niet lachen he, ik ben een beginner :P

Als ik het zelf zo bekijk dan denk ik dat na het drukken van submit de query uitgevoerd moet worden, misschien dat daar de fout ligt?

[ Voor 26% gewijzigd door Anoniem: 102419 op 29-01-2006 00:07 ]


Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Hacku, kun je me vertellen waarom jouw code beter te gebruiken is dan die van mij ?
Neem het artikel op P&W FAQ - PHP eens door ;)

March of the Eagles


Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Try:

PHP:
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
<?php
$db = mysql_connect('localhost', 'ubsoc', '') or die ('Database Failure');
mysql_select_db('ubsoc_uk_db', $db);

if (isset($_POST['Submit'])) 
{
        $username = $_POST['username'];
        $password = $_POST['password'];
        $email = $_POST['email'];
        
        $sql = "INSERT INTO user(username, password, email) VALUES ('$username', '$password', '$email')";
        mysql_query($sql);     
} 
?>

<form id="form1" name="form1" method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
    <p>
        Username: <input name="username" type="text" id="username" />
        Password: <input name="password" type="password" id="password" />
        Email: <input name="email" type="text" id="email" />
    </p>
    <p>
       <input type="submit" name="Submit" value="Register" />
       <input name="Clear" type="reset" id="Clear" value="Clear" />
    </p>
</form>


Opmaak kan je best zelf wel ;) En vergeet geen invoer controle te doen.

[ Voor 84% gewijzigd door XWB op 29-01-2006 00:18 ]

March of the Eagles


Acties:
  • 0 Henk 'm!

Anoniem: 102419

Topicstarter
Hacku,
Ik heb jouw code even geprobeerd , maar van de ingevoerde gevens kan ik nog steeds niets terugvinden in de database .. Zou het misschien aan de database oid liggen?

En het veld user_ID kan ik weglaten begrijp ik uit jouw code ?

Bedankt iig voor de moeite ;)

[ Voor 15% gewijzigd door Anoniem: 102419 op 29-01-2006 00:35 ]


Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
user_ID is je primaire sleutel en als die auto increment is wordt de waarde vanzelf ingevuld. Hoe ziet je db structuur eruit?

En ga ook eens debuggen enzo:

PHP:
1
2
3
        $sql = "INSERT INTO user(username, password, email) VALUES ('$username', '$password', '$email')";
        echo $sql;
        exit;


Wat krijg je dan te zien?

[ Voor 12% gewijzigd door XWB op 29-01-2006 00:42 ]

March of the Eagles


Acties:
  • 0 Henk 'm!

Anoniem: 102419

Topicstarter
INSERT INTO user(username, password, email) VALUES ('hi', '', '')

Dit krijg ik te zien als ik als username hi invul.

--> database http://www.xs4all.nl/~petrus23/db1.JPG

Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Ziet er goed uit tot nu toe. Vul nu ook de andere velden eens in.

March of the Eagles


Acties:
  • 0 Henk 'm!

Anoniem: 102419

Topicstarter
Als ik alle velden invul->

INSERT INTO user(username, password, email) VALUES ('blabla', 'blaa', 'bal@bla.com')

Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Dat zou het moeten doen. En er komt echt niks in de db? Je tabel ziet er trouwens goed uit.

Zet anders error_reporting(E_ALL) eens bovenaan je script en kijk of je geen warnings krijgt:

PHP:
1
2
3
4
<?php
error_reporting(E_ALL);
$db = mysql_connect('localhost', 'ubsoc', '') or die ('Database Failure');
mysql_select_db('ubsoc_uk_db', $db);


/edit

Ik heb juist je script hier eens getest, en alles werkt zoals het zou moeten.

[ Voor 20% gewijzigd door XWB op 29-01-2006 00:57 ]

March of the Eagles


Acties:
  • 0 Henk 'm!

Anoniem: 102419

Topicstarter
Toegevoegd maar ik krijg geen warnings of iets dergelijks..
En nee, ik krijg niets in my database :(

Zou t niet iets met lycos kunnen zijn ofzo ?

[ Voor 20% gewijzigd door Anoniem: 102419 op 29-01-2006 01:05 ]


Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Hier werkt het perfect, heb alles exact nagemaakt. Je db gegevens zijn toch juist he?

PHP:
1
2
$db = mysql_connect('localhost', 'ubsoc', '') or die ('Database Failure');
mysql_select_db('ubsoc_uk_db', $db);

March of the Eagles


Acties:
  • 0 Henk 'm!

Anoniem: 102419

Topicstarter
Your database information:

Name: ubsoc_uk_db
Username: ubsoc
Password: no password needed
Host: localhost

Ik heb het ook nog even geprobeerd op een database van mn andere account maar wederom zonder resultaat...

Maar zou ik niet een foutmelding moeten krijgen als het connecten met de database failed?

[ Voor 18% gewijzigd door Anoniem: 102419 op 29-01-2006 01:12 ]


Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Maar zou ik niet een foutmelding moeten krijgen als het connecten met de database failed?
Ja, maar misschien heb je meerdere databases en had je info van een verkeerde db vast ofzo.

Vaag probleem, je kan me altijd adden op msn, email staat in m'n profiel :)

March of the Eagles


Acties:
  • 0 Henk 'm!

  • TheLunatic
  • Registratie: April 2001
  • Laatst online: 25-02 08:57

TheLunatic

Ouwe boxen.

voer je query eens zo uit:

PHP:
1
$result = mysql_query($sql_statement) or die(mysql_error());


Dan krijg je iig een foutmelding terug als het bij het inserten mis gaat.

Plus dat dit...
code:
1
INSERT INTO user(username, password, email) VALUES ('hi', '', '')

...niet gaat werken als je values niet null mogen zijn. Hoewel ik niet helemaal zeker durf te zeggen of '' gelijk is aan null, maar zolang je aan het testen bent zou ik gewoon overal even data invullen.

[ Voor 46% gewijzigd door TheLunatic op 29-01-2006 01:46 ]

Mother, will they like this song?


Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
De query werkt gewoon. Ik ben er even met aan het spelen, en mysql_affected_rows() geeft telkens -1 terug.

March of the Eagles


Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Probleem opgelost, blijkbaar kan je bij lycos geen tabelnaam 'user' gebruiker 8)7

March of the Eagles


Acties:
  • 0 Henk 'm!

Anoniem: 102419

Topicstarter
Jah, thread kan dicht dankzij Hacku zijn hulp _/-\o_
Rest ook bedankt natuurlijk.

[ Voor 23% gewijzigd door Anoniem: 102419 op 29-01-2006 02:11 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-06 00:38

NMe

Quia Ego Sic Dico.

Hacku schreef op zondag 29 januari 2006 @ 02:10:
Probleem opgelost, blijkbaar kan je bij lycos geen tabelnaam 'user' gebruiker 8)7
Kan wel, als je netjes backticks om je tabelnaam heen zet. ;)
TheLunatic schreef op zondag 29 januari 2006 @ 01:44:
Plus dat dit...
code:
1
INSERT INTO user(username, password, email) VALUES ('hi', '', '')

...niet gaat werken als je values niet null mogen zijn. Hoewel ik niet helemaal zeker durf te zeggen of '' gelijk is aan null, maar zolang je aan het testen bent zou ik gewoon overal even data invullen.
Een lege string is inderdaad niet gelijk aan NULL, dus die kun je altijd invullen.

@Topicstarter: zoek eens op wat SQL injectie is. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • sjhgvr
  • Registratie: Januari 2004
  • Laatst online: 17-06 22:12
En met
PHP:
1
<?php $_SERVER['PHP_SELF'] ?>
bedoeld Hacku:
PHP:
1
<?= $_SERVER['PHP_SELF'] ?>
:)

[ Voor 26% gewijzigd door sjhgvr op 31-01-2006 03:48 ]

oisd.nl

Pagina: 1