Registratie script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stefan H

stefan H

12/04/2012 17:45:15
Quote Anchor link
Hoi kan iemand mij hlpen wat doe ik fout in dit script krijg een unexpected T_if op regel 75

iemand een idee ben nieuw met php kan graag wat hulp gebruiken

alvast bedankt

Quote:
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
<?php
    include ('config.php')
    
    if(isset($_POST['submit']))
      {

        $sbedrijfsnaam        =    addslashes($_POST['bedrijfsnaam']);
        $scontactpersoon      =    addslashes($_POST['contactpersoon']);
        $itelefoonnummer        =    addslashes($_POST['telefoonnummer']);
        $swachtwoord        =    addslashes($_POST['wachtwoord']);
        mysql_query("INSERT INTO members (bedrijfsnaam, contactpersoon, telefoonummer, wachtwoord) VALUES ('".$sbedrijfsnaam."', '".$scontactpersoon."', '".$itelefoonnummer."', '".s$wachtwoord."')") or die (mysql_error());
    
        echo 'Je gegevens zijn succesvol in de database geplaatst';
      }

      else
      {
    
    ?>

Velden met een * zijn verplicht...

<form method="POST" action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=$_SERVER['PHP_SELF']?>

<input type="hidden" name="submit" value="1">
Bedrijfsnaam:<br>
<input type="text" name="bedrijfsnaam" size="30"> *<br>
Contactpersoon:<br>
<input type="text" name="contactpersoon" size="30">*<br>
Telefoonnummer:<br>
<input type="text" name="telefoonnummer" size="30">*<br>
Wachtwoord:<br>
<input type="password" name="wachtwoord" size="12" maxlength="12"> *<br>
Wachtwoord [ bevestig ]:<br>
<input type="password" name="wachtwoord2" size="12" maxlength="12"> *<br>
<input type="submit" value="Aanmelden"> <input type="reset" value="Wis velden"></p>
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
    }
    ?>


Toevoeging op 12/04/2012 17:46:47:

nu even duidelijk en compleet

Quote:
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
<?php
include ('config.php')

if(isset($_POST['submit']))
  {

    $sbedrijfsnaam        =    addslashes($_POST['bedrijfsnaam']);
    $scontactpersoon      =    addslashes($_POST['contactpersoon']);
    $itelefoonnummer        =    addslashes($_POST['telefoonnummer']);
    $swachtwoord        =    addslashes($_POST['wachtwoord']);
    mysql_query("INSERT INTO members (bedrijfsnaam, contactpersoon, telefoonummer, wachtwoord) VALUES ('".$sbedrijfsnaam."', '".$scontactpersoon."', '".$itelefoonnummer."', '".s$wachtwoord."')") or die (mysql_error());
 
    echo 'Je gegevens zijn succesvol in de database geplaatst';
  }

  else
  {
?>

Velden met een * zijn verplicht...
<form method="POST" action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=$_SERVER['PHP_SELF']?>

<input type="hidden" name="submit" value="1">
Bedrijfsnaam:<br>
<input type="text" name="bedrijfsnaam" size="30"> *<br>
Contactpersoon:<br>
<input type="text" name="contactpersoon" size="30">*<br>
Telefoonnummer:<br>
<input type="text" name="telefoonnummer" size="30">*<br>
Wachtwoord:<br>
<input type="password" name="wachtwoord" size="12" maxlength="12"> *<br>
Wachtwoord [ bevestig ]:<br>
<input type="password" name="wachtwoord2" size="12" maxlength="12"> *<br>
<input type="submit" value="Aanmelden"> <input type="reset" value="Wis velden"></p>
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
}
?>
Gewijzigd op 13/04/2012 02:16:00 door Chris -
 
PHP hulp

PHP hulp

19/04/2024 11:35:16
 
Jeroen VD

Jeroen VD

12/04/2012 18:04:17
Quote Anchor link
je bent een puntkomma vergeten op lijn 2
 
- SanThe -

- SanThe -

12/04/2012 18:14:59
Quote Anchor link
Je weet dat addslashes() geen beveiliging is.
Gebruik mysql_real_escape_string().
 
Dave schaafsma

dave schaafsma

12/04/2012 18:15:28
Quote Anchor link
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
34
35
36
37
38
39
40
41
<?php

include ('config.php');





if(isset($_POST['register']))

    {


    $sbedrijfsnaam   =    mysql_real_escape_string($_POST['bedrijfsnaam']);
    $scontactpersoon =    mysql_real_escape_string($_POST['contactpersoon']);
    $itelefoonnummer =    mysql_real_escape_string($_POST['telefoonnummer']);
    $swachtwoord     =    mysql_real_escape_string($_POST['wachtwoord']);
    mysql_query("
      
    INSERT INTO
       members
            bedrijfsnaam,
            contactpersoon,
            telefoonummer,
            wachtwoord,
            )
    VALUES
        (
        '"
.$sbedrijfsnaam."',
        '"
.$scontactpersoon."',
        '"
.$itelefoonnummer."',
        '"
.$wachtwoord."',
        )
        "
);
        
 
    echo 'Je gegevens zijn succesvol in de database geplaatst';
  }

  else
  {
?>

    
Gewijzigd op 12/04/2012 18:19:12 door dave schaafsma
 
Jeroen VD

Jeroen VD

12/04/2012 18:17:19
Quote Anchor link
ik weet niet wat je met deze code wilt bereiken, maar:

- niet controleren op de submit button maar op elk veld afzonderlijk
- mysql_real_escape_string(), niet addslashes()
- foutafhandeling toevoegen
 
Stefan H

stefan H

12/04/2012 19:39:23
Quote Anchor link
bedankt voor jullie reacties
is dit wat jullie bedoelen
Quote:
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
<?php
include ('config.php');

if(isset($_POST['bedrijfsnaam'])) {
    echo " er is geen bedrijfsnaam ingevuld";
if(isset($_post['contactpersoon']))
    echo " er is geen contactpersoon ingevuld";
if(isset($_post['telefoonnummer']))
    echo " er is geen telefoonnummer ingevuld";
if(isset($_post['email']))
    echo " er is geen email adres ingevuld";
if(isset($_post['wachtwoord']))
    echo "er is geen wachtwoord ingevuld";
}
  {

    $sbedrijfsnaam        =    mysql_real_escape_string()($_POST['bedrijfsnaam']);
    $scontactpersoon      =    mysql_real_escape_string()['contactpersoon']);
    $itelefoonnummer        =    mysql_real_escape_string()($_POST['telefoonnummer']);
    $semail            =    mysql_real_escape_string()['email']);
   $swachtwoord        =    mysql_real_escape_string()['wachtwoord']);
    mysql_query("INSERT INTO members (bedrijfsnaam, contactpersoon, telefoonummer, email, wachtwoord) VALUES ('".$sbedrijfsnaam."', '".$scontactpersoon."', '".$itelefoonnummer."', '".$semail. "', '".s$wachtwoord."')") or die (mysql_error());
  
    echo 'Je gegevens zijn succesvol in de database geplaatst';
  }

  else
[/quote]
 
Obelix Idefix

Obelix Idefix

12/04/2012 21:02:23
Quote Anchor link
Nee, dat wordt niet bedoeld.

Controleren of een formulier verstuurd is doe je met:
if($_SERVER['REQUEST_METHOD'] == "POST")

Heb je dit zelf getest? Je controle klopt niet. Wat je nu doet (regel 4 - 13) is als $_POST['variabele'] bestaat (geset is), een foutmelding plaatsen.

Je kopieert op regel 16- 20 onnodig variabelen.
mysql_real_escape_string kun (/moet) je direct in je query gebruiken.
Or die is geen foutafhandeling.
Ik zou nog wel op zoek gaan naar een manier om je wachtwoord te beveiligen (zoek eens op salt + pepper)
 
Stefan H

stefan H

12/04/2012 21:49:30
Quote Anchor link
ben erg nieuw met php en wil het eerst vrij simpel voor mezelf werken hebben en dat doet het nog niet

dit heb ik nu is er kans van slagen dat dit gaat werken zo of zit ik er volkomen naast
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
include ('config.php');

if($_SERVER['REQUEST_METHOD'] == "POST")
else{
}

 ?>

Velden met een * zijn verplicht...
<form method="POST" action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=$_SERVER['PHP_SELF']?>

<input type="hidden" name="submit" value="1">
Bedrijfsnaam:<br>
<input type="text" name="bedrijfsnaam" size="30"> *<br>
Contactpersoon:<br>
<input type="text" name="contactpersoon" size="30">*<br>
Telefoonnummer:<br>
<input type="text" name="telefoonnummer" size="30">*<br>
Email adres:<br>
<input type="text" name="email" size="30">*<br>
Wachtwoord:<br>
<input type="password" name="wachtwoord" size="12" maxlength="12"> *<br>
Wachtwoord [ bevestig ]:<br>
<input type="password" name="wachtwoord2" size="12" maxlength="12"> *<br>
<input type="submit" value="Aanmelden"> <input type="reset" value="Wis velden"></p>
</form>
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
<?

if{
$query = mysql_query("SELECT * FROM memebers WHERE email = '$email'");
$result = mysql_num_rows($query);
echo " dit email adres is al in gebruik";
}

else{
    $sbedrijfsnaam        =    mysql_real_escape_string( $_POST['bedrijfsnaam']);
    $scontactpersoon      =    mysql_real_escape_string( $_POST['contactpersoon']);
    $itelefoonnummer        =    mysql_real_escape_string( $_POST['telefoonnummer']);
    $semail            =    mysql_real_escape_string( $_POST['email']);
    $swachtwoord        =    mysql_real_escape_string( $_POST['wachtwoord']);
   mysql_query("INSERT INTO memebers (bedrijfsnaam, contactpersoon, telefoonnummer, email, wachtwoord) VALUES ('".$sbedrijfsnaam."', '".$scontactpersoon."', '".$itelefoonnummer."', '".$semail. "', '".$swachtwoord."')") or 'agf-veiling.nl/nieuwegebruiker.nl';
  }

?>
 
Obelix Idefix

Obelix Idefix

12/04/2012 22:17:54
Quote Anchor link
code aub tussen code-tags.

Of het gaat werken kun je toch zelf testen?! ;-)

Gebruik liever geen short-tags, maar voluit
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
< ? php (aan elkaar)


Doorgaans: eerst php dan html.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=$_SERVER['PHP_SELF']?>
is onveilig. Beter is leeg laten of
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
action="<?php $_SERVER['SCRIPT_NAME']; ?>


variabelen buiten quotes.
Waar is je controle of $query gelukt is?
Je kopieert nog steeds onnodig variabelen --> mysql_real_escape_string in je query.
or 'agf-veiling.nl/nieuwegebruiker.nl' ????? Wat is dat?

Je laat 2x wachtwoord invullen, maar controleer je ook of dit hetzelfde is?
Zie nog niets over beveiligen wachtwoord.

begin aub met het doorlezen van een paar beginner tuts. Lees bv eens http://www.phphulp.nl/php/tutorial/overig/beginnersfouten-tegengaan/763/
Gewijzigd op 12/04/2012 22:18:46 door Obelix Idefix
 
Stefan H

stefan H

18/04/2012 19:23:08
Quote Anchor link
heeft iemand een idee op ik zo goed opweg ben om een formulier op te slaan in een database

ik krijg nog een melding

unexpected T_ELSE, expecting ',' or ';' op line 17

graag hoor ik een reactie

Quote:
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
34
<?php
include ('config.php');
{

if($_SERVER['REQUEST_METHOD'] == "POST")
if(isset($_POST['bedrijfsnaam']))
    echo "er is geen bedrijfsnaam ingevuld";
if(isset($_POST['contactpersoon']))
    echo "er is geen contactpersoon ingevuld";
if(isset($_POST['telefoonnummer']))
    echo "er is geen telefoonnummer ingevuld";
if(isset($_POST['email']))
    echo "er is geen email adres ingevuld";
if(isset($_POST['wachtwoord']))
    echo "er is geen wachtwoord ingevuld";
if($wachtwoord!=$wachtwoord2)    
    echo "de wachtwoorden zijn niet gelijk"
else{
$query = mysql_query("SELECT * FROM members WHERE email = '$email'");
$result = mysql_num_rows($query);

if($result){
echo "Dit email adres is al in gebruik"
}
else  
    $sbedrijfsnaam        =    mysql_real_escape_string( $_POST['bedrijfsnaam']);
    $scontactpersoon      =    mysql_real_escape_string( $_POST['contactpersoon']);
    $itelefoonnummer       =    mysql_real_escape_string( $_POST['telefoonnummer']);
    $semail            =    mysql_real_escape_string( $_POST['email']);
    $swachtwoord        =    mysql_real_escape_string( $_POST['wachtwoord']);
    mysql_query("INSERT INTO members (bedrijfsnaam, contactpersoon, telefoonnummer, email, wachtwoord) VALUES ('".$sbedrijfsnaam."', '".$scontactpersoon."', '".$itelefoonnummer."', '".$semail. "', '".$swachtwoord."')") or die (mysql_error());
  
    echo 'Je gegevens zijn succesvol in de database geplaatst';
}
[
/quote]
 
Jurgen B

Jurgen B

18/04/2012 19:25:42
Quote Anchor link
Als je een dergelijke foutmelding krijgt kijk je ook altijd in de regel(s) ervoor of erna als de fout niet op de regel zelf zit. Omdat deze melding ook nog aangeeft dat hij een : of ; verwacht, die er blijkbaar niet is, zou je zelf moeten kunnen zien dat er op regel 16 een ; mist aan het einde van de regel.

Als aanvulling: je kopieert onnodig de $_POST waarden naar variabelen (icm mysql_real_esacpe_string()). Door je query gewoon op meerdere regels te schrijven kan je dit ook gewoon inline doen en leesbaar houden. Ditzelfde geldt voor het wegschrijven van het aantal gevonden rijen naar een variabele, dit kan ook prima inline.
Gewijzigd op 18/04/2012 19:32:06 door Jurgen B
 
Stefan H

stefan H

18/04/2012 19:32:42
Quote Anchor link
oke bedankt had ik inderdaad kunnen zien

krijg nu een melding unexpected $end op line 53 dit is der laaste regel nu het formulier en deze regel is leeg ?

nog een idee misschien ?

alvast bedankt
 
Jurgen B

Jurgen B

18/04/2012 19:37:07
Quote Anchor link
In je geplaatste code mist ook een { op regel 24. Je sluit de else wel maar opent hem niet. Unexpected $end geeft meestal aan dat er ergens een { } mist.
 
Stefan H

stefan H

18/04/2012 20:01:39
Quote Anchor link
Jurgen B op 18/04/2012 19:25:42:
Als je een dergelijke foutmelding krijgt kijk je ook altijd in de regel(s) ervoor of erna als de fout niet op de regel zelf zit. Omdat deze melding ook nog aangeeft dat hij een : of ; verwacht, die er blijkbaar niet is, zou je zelf moeten kunnen zien dat er op regel 16 een ; mist aan het einde van de regel.

Als aanvulling: je kopieert onnodig de $_POST waarden naar variabelen (icm mysql_real_esacpe_string()). Door je query gewoon op meerdere regels te schrijven kan je dit ook gewoon inline doen en leesbaar houden. Ditzelfde geldt voor het wegschrijven van het aantal gevonden rijen naar een variabele, dit kan ook prima inline.

zou je dit op meer leek taal kunnen uitleggen ?
ik begrijp niet precies wat nu het overbodige is
alle velden moeten gecontroleerd worden of ze ingevuld zijn (hoe moet ik dit beter doen ?)
en waar zit ik dan precies mysql real escape string neer ?

alvast bedankt


Toevoeging op 18/04/2012 20:43:07:

ik heb nu dit maar krijg weer een unexpected T_else line 32

hoe moet ik deze else anders openen ?

Quote:
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
include ('config.php');
{

if($_SERVER['REQUEST_METHOD'] == "POST")
if(isset($_POST['bedrijfsnaam']))
    echo "er is geen bedrijfsnaam ingevuld";
if(isset($_POST['contactpersoon']))
    echo "er is geen contactpersoon ingevuld";
if(isset($_POST['telefoonnummer']))
    echo "er is geen telefoonnummer ingevuld";
if(isset($_POST['email']))
    echo "er is geen email adres ingevuld";
if(isset($_POST['wachtwoord']))
    echo "er is geen wachtwoord ingevuld";
if($wachtwoord!=$wachtwoord2)    
    echo "de wachtwoorden zijn niet gelijk";
if($query = mysql_query("SELECT * FROM members WHERE email = '$email'"));
$result = mysql_num_rows($query);
if($result)
echo "Dit email adres is al in gebruik";

if    ($sbedrijfsnaam        =        mysql_real_escape_string( $_POST['bedrijfsnaam']));
    (
$scontactpersoon    =       mysql_real_escape_string( $_POST['contactpersoon']));
    (
$itelefoonnummer    =       mysql_real_escape_string( $_POST['telefoonnummer']));
    (
$semail            =    mysql_real_escape_string( $_POST['email']));
    (
$swachtwoord        =       mysql_real_escape_string( $_POST['wachtwoord']));
    mysql_query("INSERT INTO members (bedrijfsnaam, contactpersoon, telefoonnummer, email, wachtwoord) VALUES
    ('"
.$sbedrijfsnaam."', '".$scontactpersoon."', '".$itelefoonnummer."', '".$semail. "', '".$swachtwoord."')") or die (mysql_error());
  
    echo "Je gegevens zijn succesvol in de database geplaatst"; }

else
{ (formulier) } [/quote]
 



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.