Opmaak pagina weg door login?

Status
Niet open voor verdere reacties.

bas007gsm

Gebruiker
Lid geworden
4 jan 2002
Berichten
394
Register scrip kan niet invoeren in database??

register script geeft van tevoren al aan dat Het invoeren in de database is mislukt wat gaat er mis? volgens mij klopt alles wel aardig!

Dit is het php bestand (register.php):

PHP:
<FORM ACTION="register.php" METHOD="post"> 
  <div align="center"> 
    <p> 
      <INPUT TYPE="hidden" NAME="submit" VALUE="maakt_niet_uit"> 
      <font face="Verdana, Arial, Helvetica, sans-serif">Voer de gebruikersnaam 
      in:</font><BR> 
      <INPUT TYPE="text" NAME="gebruikersnaam" SIZE=20 MAXLENGTH=20> 
    </p> 
    <p><font face="Verdana, Arial, Helvetica, sans-serif">Voer een wachtwoord in:</font>: 
      <BR> 
      <INPUT TYPE="password" NAME="password" SIZE=10 MAXLENGTH=20> 
    </p> 
  </div> 
  <P align="center"><BR> 
   
  <P align="center"> 
    <INPUT TYPE="submit" VALUE="Gebruiker toevoegen"> 
</FORM> 




<?php 
if ($submit){ 

   // Maak verbinding met server 
   mysql_connect ("localhost","bas007gsm", "wachtwoord")
   or die ('FOUT : verbinden met server mislukt'); 

   // Selecteer database 
  mysql_select_db("bas007gsm_guestbook")
  or die ('FOUT : openen Database mislukt'); 
  
   // Maak query om gegevens in tabel te stoppen 
   $query = "INSERT INTO gebruikers (gebruikersnaam, password) VALUES ('$gebruikersnaam','$password')"
   or die ('FOUT : maken query mislukt'); 

   // Voer query uit 
	mysql_query($sql) or die ("Het invoeren in de database is mislukt"); 
    echo 'Je bent geregistreerd. Klik <a href="login.php">hier</a> om in te loggen.';
}
?>
 
Laatst bewerkt:
Hi :)

2 tips:
- Zet je codes volgende keer tussen [php ] en [/ php] (zonder spatie in [php ])
- Zet geen wachtwoorden in je post :p

Probeer dit scriptje eens:
PHP:
<FORM ACTION="register.php" METHOD="post">
<div align="center">
<p>
<font face="Verdana, Arial, Helvetica, sans-serif">Voer de gebruikersnaam
in:</font><BR>
<INPUT TYPE="text" NAME="gebruikersnaam" SIZE=20 MAXLENGTH=20>
</p>
<p><font face="Verdana, Arial, Helvetica, sans-serif">Voer een wachtwoord in:</font>:
<BR>
<INPUT TYPE="password" NAME="password" SIZE=10 MAXLENGTH=20>
</p>
</div>
<P align="center"><BR>

<P align="center">
<INPUT TYPE="submit" VALUE="Gebruiker toevoegen">
</FORM>
En:
PHP:
<?php
if ((isset($_POST['gebruikersnaam']) == TRUE) AND (isset($_POST['password']) == TRUE))
{
// Maak verbinding met server
mysql_connect ("localhost","bas007gsm", "je_wachtwoord") or die ('FOUT : verbinden met server mislukt'); // Wachtwoord hier nog ff invullen

// Selecteer database
mysql_select_db("bas007gsm_guestbook") or die ('FOUT : openen Database mislukt');

// Data opvragen
  if(get_magic_quotes_gpc() == FALSE)
  {
  $gebruikersnaam = addslashes($_POST['gebruikersnaam']);
  $wachtwoord = addslashes($_POST['password']);
  }
  else
  {
  $gebruikersnaam = $_POST['gebruikersnaam'];
  $wachtwoord = $_POST['password'];
  }

// Maak query om gegevens in tabel te stoppen
$query = 'INSERT INTO gebruikers (gebruikersnaam, password) VALUES (\'' . $gebruikersnaam . '\',\'' . $password . '\')';
$result = @mysql_query($query); or die ('FOUT : maken query mislukt');
  if(mysql_affected_rows() == 0)
  {
  echo 'Kon om onbekende redenen de gegevens niet in de tabel stoppen';
  }
  else
  {
  echo 'Je bent geregistreerd. Klik <a href="login.php">hier</a> om in te loggen.';
  }
?>
Goeie dingen die ik opmerkte:
- Error opvanging: Alle query's, hoe klein de kans ook is, kunnen fout gaan. Ik zag bij elke query een erroropvangsysteem (or die(...)), goedzo :)
- Notities: Tis handig om bij grote stukken code notities te maken. Iets minder mag bij dit kleine stukje echter wel :p

Slecht:
- Geen gebruik van superglobals
- Geen isset(), alleen een slechte if($submit)

Succes d'rmee :thumb:

// Edit: Kleine fout met bbcodes in post gefixed :p
 
Laatst bewerkt:
Kijk dat is nu echt iets waar ik iets aan heb! Aangezien ik net begonnen ben met PHPen kan ik elke vorm van commentaar erg goed gebruiken! ik ga er mee verder en laat horen hoe het er bij staat!!!
 
Bij de code zoals jij die opgaf krijg ik alleen een error:

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/bas007gsm/domains/nathalzen.nl/public_html/cms/1/register.php on line 43

code is nu zo:

PHP:
 <FORM ACTION="register.php" METHOD="post">
<div align="center">
<p>
<font face="Verdana, Arial, Helvetica, sans-serif">Voer de gebruikersnaam
in:</font><BR>
<INPUT TYPE="text" NAME="gebruikersnaam" SIZE=20 MAXLENGTH=20>
</p>
<p><font face="Verdana, Arial, Helvetica, sans-serif">Voer een wachtwoord in:</font>:
<BR>
<INPUT TYPE="password" NAME="password" SIZE=10 MAXLENGTH=20>
</p>
</div>
<P align="center"><BR>

<P align="center">
<INPUT TYPE="submit" VALUE="Gebruiker toevoegen">
</FORM>



<?php
if ((isset($_POST['gebruikersnaam']) == TRUE) AND (isset($_POST['password']) == TRUE))
{
// Maak verbinding met server
mysql_connect ("localhost","bas007gsm", "wachtwoord") or die ('FOUT : verbinden met server mislukt'); 

// Selecteer database
mysql_select_db("bas007gsm_guestbook") or die ('FOUT : openen Database mislukt');

// Data opvragen
  if(get_magic_quotes_gpc() == FALSE)
  {
  $gebruikersnaam = addslashes($_POST['gebruikersnaam']);
  $wachtwoord = addslashes($_POST['password']);
  }
  else
  {
  $gebruikersnaam = $_POST['gebruikersnaam'];
  $wachtwoord = $_POST['password'];
  }

// Maak query om gegevens in tabel te stoppen
$query = 'INSERT INTO gebruikers (gebruikersnaam, password) VALUES ('' . $gebruikersnaam . '','' . $password . '')';
$result = @mysql_query($query); or die ('FOUT : maken query mislukt');
  if(mysql_affected_rows() == 0)
  {
  echo 'Kon om onbekende redenen de gegevens niet in de tabel stoppen';
  }
  else
  {
  echo 'Je bent geregistreerd. Klik <a href="login.php">hier</a> om in te loggen.';
  }
?>

En hier zou de fout in moeten zitten
PHP:
$query = 'INSERT INTO gebruikers (gebruikersnaam, password) VALUES ('' . $gebruikersnaam . '','' . $password . '')';

En wat houdt dit in? get_magic_quotes_gpc
 
Geplaatst door bas007gsm
Bij de code zoals jij die opgaf krijg ik alleen een error:

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/bas007gsm/domains/nathalzen.nl/public_html/cms/1/register.php on line 43

[..]

En hier zou de fout in moeten zitten

PHP:
$query = 'INSERT INTO gebruikers (gebruikersnaam, password) VALUES ('' . $gebruikersnaam . '','' . $password . '')';
En daar zit hij ook. Helpmij vernaggeld mijn code weer eens :rolleyes:
Maak d'r ff dit van:
PHP:
$query = "INSERT INTO gebruikers (gebruikersnaam, password) VALUES ('" . $gebruikersnaam . "','" . $password . "')";
Helpmij werkt echt tegen met mijn code ... *zucht* ...
En wat houdt dit in? get_magic_quotes_gpc
*klik*
 
Laatst bewerkt:
dus het eerste zat 'm in de " " maar daarna kreeg ik nog steeds een foutmelding namelijk:

Parse error: parse error, unexpected T_LOGICAL_OR in /home/bas007gsm/domains/nathalzen.nl/public_html/cms/1/register.php on line 44

Volgens mij kwam dit door:

PHP:
$result = @mysql_query($query); or die ('FOUT : maken query mislukt');

dit moet zijn (; staat overbodig):
PHP:
$result = @mysql_query($query) or die ('FOUT : maken query mislukt');

nu is deze foutmelding weg!

Maar nu kreeg ik een nieuwe:
Parse error: parse error, unexpected $ in /home/bas007gsm/domains/nathalzen.nl/public_html/cms/1/register.php on line 57

deze heb ik ook opgelost er ontbrak namelijk de } van het if statement aan het begin!

en nu werkt ie naar behoren!!

THX
:thumb: :thumb:
 
Geplaatst door bas007gsm
dus het eerste zat 'm in de " " [...]
Nou, nee, eiglijk in de regular expressions van Helpmij. Die gaan niet helemaal goed om met PHP codes die meerdere \ achterelkaar bevatten, wat in die query 't geval was ;)
Ik heb nu ff " gebruikt, maar ik raad aan om de ' te gebruiken, deze is namelijk ietsjes sneller :)
[...] maar daarna kreeg ik nog steeds een foutmelding namelijk: [...] nu is deze foutmelding weg!

Maar nu kreeg ik een nieuwe: [...] deze heb ik ook opgelost er ontbrak namelijk de } van het if statement aan het begin!

en nu werkt ie naar behoren!!
Jemig :8-0:
Veel fouten van mijn kant, volgende keer toch wat beter opletten wat ik typ :o
Voor een n00b, wat je zelf aangaf btw :p, los je die errors goed op ;)

Graag gedaan iig :p
 
'k heb in de tussen tijd het rigistratie formulier uitgebreid, bij deze post ik hem, misschien dat iemand er iets aan heeft!

register.php

PHP:
<html>
<title>Registeren</title>
<body>

Om gebruik te maken van alle functies van deze website dient u zich eerst te registreren als gebruiker, na invulling van onderstaand formulier kunt u gebruik maken van de website.
<FORM ACTION="register.php" METHOD="post">
<table>
	<TR>
		<TD>Naam:</TD>
		<TD><INPUT TYPE="text" NAME="name" SIZE="25" MAXLENGHT="25"></TD>
	</TR>
	<TR>
		<TD>Adres:</TD>
		<TD><INPUT TYPE="text" NAME="adress" SIZE="25" MAXLENGHT="25"></TD>
	</TR>
	<TR>
		<TD>Postcode:</TD>
		<TD><INPUT TYPE="text" NAME="zipcode" SIZE="7" MAXLENGHT="7"></TD>
	</TR>
	<TR>
		<TD>Woonplaats</TD>
		<TD><INPUT TYPE="text" NAME="city" SIZE="25" MAXLENGHT="25"></TD>
	</TR>
	<TR>
		<TD>&nbsp;</TD>
	</TR>
	<TR>
		<TD>E-mail adres:</TD>
		<TD><INPUT TYPE="text" NAME="email" SIZE="25" MAXLENGTH="25"></TD>
		<TD>Is tevens uw gebruikers naam!</TD>
	</TR>
	<TR>
		<TD>Voer een wachtwoord in:</TD>
		<TD><INPUT TYPE="password" NAME="password" SIZE="20" MAXLENGTH="25"></TD>
	</TR>
	<TR>
		<TD><INPUT TYPE="submit" VALUE="Registreren"></TD>
		<TD><INPUT TYPE="reset" VALUE="Reset formulier"></TD></TR>
</table>
</FORM>



<?php
if ((isset($_POST['name']) == TRUE) 
AND (isset($_POST['adress']) == TRUE) 
AND (isset($_POST['zipcode']) == TRUE)
AND (isset($_POST['city']) == TRUE) 
AND (isset($_POST['email']) == TRUE) 
AND (isset($_POST['password']) == TRUE))
{
// Maak verbinding met server
mysql_connect ("localhost","***", "***") or die ('FOUT : verbinden met server mislukt'); 

// Selecteer database
mysql_select_db("bas007gsm_guestbook") or die ('FOUT : openen Database mislukt');

// Data opvragen kijken of er gebruik wordt gemaakt van slashes
  if(get_magic_quotes_gpc() == FALSE)
  {
  $name = addslashes($_POST['name']);
  $adress = addslashes($_POST['adress']);
  $zipcode = addslashes($_POST['zipcode']);
  $city = addslashes($_POST['city']);
  $email = addslashes($_POST['email']);
  $wachtwoord = addslashes($_POST['password']);
  }
  else
  {
  $name = $_POST['name'];
  $adress = $_POST['adress'];
  $zipcode = $_POST['zipcode'];
  $city = $_POST['city'];
  $gebruikersnaam = $_POST['email'];
  $wachtwoord = $_POST['password'];
  }

// Maak query om gegevens in tabel te stoppen
$query = "INSERT INTO gebruikers (name, adress, zipcode, city, email, password) VALUES ('". $name ."','". $adress ."','". $zipcode ."','" .$city. "','". $email . "','" . $password . "')" or die ('FOUT : Query maken mislukt');
$result = @mysql_query($query) or die ('FOUT : uitvoeren query mislukt');
  if(mysql_affected_rows() == 0)
  {
  echo 'Kon om onbekende redenen de gegevens niet in de tabel stoppen';
  }
  else
  {echo 'Je bent nu geregistreerd. je kunt je links boven in direct inloggen!';
  }
  
 }
?>
</body>
</html>
 
Nu alleen nog een ander punt, wat is de beste manier om de velden te conrtoleren, op inhoud en natuurlijk e-mail??
 
Zie string functies voor controle op inhoud. Een emailadres valt ook onder inhoud, met een paar strstr() kun je erachter komen of 't een geldige adres is. Je kan ook voor een reguliere expressie gaan, echter deze zijn traaaaaaaag.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan