Fout if/else
Jeroen - 03/09/2004 21:41 (laatste wijziging 03/09/2004 21:46)
Onbekend
Heej,
Na een uur lopen te zoeken geef ik het op! Ik kan de oplossing niet vinden! Hij zegt dat er een else teveel is. En dat klopt! maar hoe moet ik hem anders plaatsen? Het zou fijn zijn als je de code wilt verbeteren met een citaat wat je verbeterd hebt.
Fout pagina:
http://www.real...melden.php
aanmelden.php
<?php
session_start(); //Sessies starten
include"config.php"; // Hier staan alle gegevens in
include"functions.php"; // Alle functies, Datum enz
// Html voor de fout pagina
echo '<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#F1F5F6\" class=\"menu\">
<tr>
<td bgcolor=\"7894AE\"><p class=\"submenu\">» Fout!</p>
</td>
</tr>
<tr>
<td class=\"content1\">';
// Paar controles of velden leeg zijn
if(empty($_SESSION['session_id'])) {
if(isSet($_POST['submit'])) {
if(empty($_POST['gebruikersnaam']))
{ // In gebruikersnaam
echo '<li>U heeft geen gebruikersnaam ingevult!';
} // Uit gebruikersnaam
if(empty($_POST['mail']))
{ // In email
echo '<li>U heeft uw email adres niet ingevult!';
} // Uit email
if(empty($_POST['wachtwoord']))
{ // In wachtwoord
echo '<li>U heeft uw wachtwoord niet ingevult!';
} // Uit wachtwoord
if(empty($_POST['wachtwoord2']))
{ // In wachtwoord2
echo '<li>U heeft uw wachtwoord ter bevestiging niet ingevult!';
} // Uit wachtwoord 2
if($_POST['wachtwoord'] != $_POST['wachtwoord2']) {
{ // In wachtwoorden controleren
echo '<li>Uw ingevulde wachtwoorden komen niet overeen! Zorg ervoor dat de wachtwoorden exact hetzelfde zijn';
} // Uit wachtwoorden controleren
else {
// Gebruikersnaam controleren of hij al bestaat
$select = "SELECT * FROM leden WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'";
$sql = mysql_query($select);
$aant = mysql_num_rows($sql);
if($aant == 1) {
echo '<li>De door uw gekozen gebruikersnaam staat al in onze database! Probeer het opnieuw met een ander gebruikersnaam!';
}
}
else {
// In de database gooien
$insert = "INSERT INTO leden (id, gebruikersnaam, mail, wachtwoord, msn, icq, aim, yahoo, website, woonplaats, beroep, hobbys, interesses, type, ip, datum) VALUE
('', '".$_POST['gebruikersnaam']."','".$_POST['mail']."','".$_POST['wachtwoord']."','".$_POST['msn']."','".$_POST['icq']."','".$_POST['aim']."','".$_POST['yahoo']."','".$_POST['website']."','".$_POST['beroep']."','".$_POST['hobbys']."','".$_POST['interesses']."','".$_POST['types']."','"_SERVER['REMOTE_ADDR']."','".$datum."')";
$query = mysql_query($insert)or die(mysql_error());
// Afsluiting van de html pagina
echo '</td>
</tr>
</table>';
}
} // Afsluiting van in database gooien
} // Afsluiting submit
} // Afsluiting session_id
// Normale html pagina
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link type="text/css" rel="stylesheet" href="style.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Aanmelden</title>
</head>
<body>
<form method="post" action="'.$_SERVER['PHP_SELF'].'">
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#F1F5F6" class="menu">
<tr>
<td bgcolor="7894AE"><p class="submenu">» Aanmeld informatie </p>
</td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="content1">
<td width="23%"><SPAN class=gen>Gebruikersnaam: *</SPAN></td>
<td width="74%"><input name="gebruikersnaam" type="text" id="gebruikersnaam" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Email adres: *</SPAN></td>
<td><input name="mail" type="password" id="mail" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Wachtwoord: * </SPAN></td>
<td><input name="wachtwoord" type="password" id="wachtwoord" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Bevestig wachtwoord: * </SPAN></td>
<td><input name="wachtwoord2" type="password" id="wachtwoord2" size="30"></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="submenu">» Profiel informatie </td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="content1">
<td width="23%"><SPAN class=gen>ICQ Nummer:</SPAN></td>
<td width="74%"><input name="icq" type="text" id="icq" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>AIM Naam:</SPAN></td>
<td><input name="aim" type="text" id="aim" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>MSN Messenger:</SPAN></td>
<td><input name="msn" type="text" id="msn" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Yahoo Messenger:</SPAN></td>
<td><input name="yahoo" type="text" id="yahoo" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Website:</SPAN></td>
<td><input name="website" type="text" id="website" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Woonplaats:</SPAN></td>
<td><input name="woonplaats" type="text" id="woonplaats" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Beroep:</SPAN></td>
<td><input name="beroep" type="text" id="beroep" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Hobbys:</SPAN></td>
<td><input name="hobbys" type="text" id="hobbys" size="30"></td>
</tr>
<tr class="content1">
<td valign="top"><SPAN class=gen>Interesses:</SPAN></td>
<td><textarea name="interesses" cols="40" rows="5"></textarea></td>
</tr>
</table> </td>
</tr>
<tr>
<td class="grijs_streep"> </td>
</tr>
<tr>
<td align="center"><input type="submit" name="submit" value="Aanmelden!">
<input type="reset" value="Leeg velden"></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html> ';
?>
<?php
include "config.php" ; // Hier staan alle gegevens in
include "functions.php" ; // Alle functies, Datum enz
// Html voor de fout pagina
echo '<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#F1F5F6\" class=\"menu\"> <tr>
<td bgcolor=\"7894AE\"><p class=\"submenu\">» Fout!</p>
</td>
</tr>
<tr>
<td class=\"content1\">' ;
// Paar controles of velden leeg zijn
if ( empty ( $_SESSION [ 'session_id' ] ) ) {
if ( isSet ( $_POST [ 'submit' ] ) ) { if ( empty ( $_POST [ 'gebruikersnaam' ] ) ) { // In gebruikersnaam
echo '<li>U heeft geen gebruikersnaam ingevult!' ; } // Uit gebruikersnaam
if ( empty ( $_POST [ 'mail' ] ) ) { // In email
echo '<li>U heeft uw email adres niet ingevult!' ; } // Uit email
if ( empty ( $_POST [ 'wachtwoord' ] ) ) { // In wachtwoord
echo '<li>U heeft uw wachtwoord niet ingevult!' ; } // Uit wachtwoord
if ( empty ( $_POST [ 'wachtwoord2' ] ) ) { // In wachtwoord2
echo '<li>U heeft uw wachtwoord ter bevestiging niet ingevult!' ; } // Uit wachtwoord 2
if ( $_POST [ 'wachtwoord' ] != $_POST [ 'wachtwoord2' ] ) {
{ // In wachtwoorden controleren
echo '<li>Uw ingevulde wachtwoorden komen niet overeen! Zorg ervoor dat de wachtwoorden exact hetzelfde zijn' ; } // Uit wachtwoorden controleren
else {
// Gebruikersnaam controleren of hij al bestaat
$select = "SELECT * FROM leden WHERE gebruikersnaam = '" . $_POST [ 'gebruikersnaam' ] . "'" ;
if ( $aant == 1 ) {
echo '<li>De door uw gekozen gebruikersnaam staat al in onze database! Probeer het opnieuw met een ander gebruikersnaam!' ; }
}
else {
// In de database gooien
$insert = "INSERT INTO leden (id, gebruikersnaam, mail, wachtwoord, msn, icq, aim, yahoo, website, woonplaats, beroep, hobbys, interesses, type, ip, datum) VALUE
('', '" . $_POST [ 'gebruikersnaam' ] . "','" . $_POST [ 'mail' ] . "','" . $_POST [ 'wachtwoord' ] . "','" . $_POST [ 'msn' ] . "','" . $_POST [ 'icq' ] . "','" . $_POST [ 'aim' ] . "','" . $_POST [ 'yahoo' ] . "','" . $_POST [ 'website' ] . "','" . $_POST [ 'beroep' ] . "','" . $_POST [ 'hobbys' ] . "','" . $_POST [ 'interesses' ] . "','" . $_POST [ 'types' ] . "','" _SERVER[ 'REMOTE_ADDR' ] . "','" . $datum . "')" ;
// Afsluiting van de html pagina
</tr>
</table>' ;
}
} // Afsluiting van in database gooien
} // Afsluiting submit
} // Afsluiting session_id
// Normale html pagina
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link type="text/css" rel="stylesheet" href="style.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Aanmelden</title>
</head>
<body>
<form method="post" action="' . $_SERVER [ 'PHP_SELF' ] . '">
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#F1F5F6" class="menu">
<tr>
<td bgcolor="7894AE"><p class="submenu">» Aanmeld informatie </p>
</td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="content1">
<td width="23%"><SPAN class=gen>Gebruikersnaam: *</SPAN></td>
<td width="74%"><input name="gebruikersnaam" type="text" id="gebruikersnaam" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Email adres: *</SPAN></td>
<td><input name="mail" type="password" id="mail" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Wachtwoord: * </SPAN></td>
<td><input name="wachtwoord" type="password" id="wachtwoord" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Bevestig wachtwoord: * </SPAN></td>
<td><input name="wachtwoord2" type="password" id="wachtwoord2" size="30"></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="submenu">» Profiel informatie </td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="content1">
<td width="23%"><SPAN class=gen>ICQ Nummer:</SPAN></td>
<td width="74%"><input name="icq" type="text" id="icq" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>AIM Naam:</SPAN></td>
<td><input name="aim" type="text" id="aim" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>MSN Messenger:</SPAN></td>
<td><input name="msn" type="text" id="msn" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Yahoo Messenger:</SPAN></td>
<td><input name="yahoo" type="text" id="yahoo" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Website:</SPAN></td>
<td><input name="website" type="text" id="website" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Woonplaats:</SPAN></td>
<td><input name="woonplaats" type="text" id="woonplaats" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Beroep:</SPAN></td>
<td><input name="beroep" type="text" id="beroep" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Hobbys:</SPAN></td>
<td><input name="hobbys" type="text" id="hobbys" size="30"></td>
</tr>
<tr class="content1">
<td valign="top"><SPAN class=gen>Interesses:</SPAN></td>
<td><textarea name="interesses" cols="40" rows="5"></textarea></td>
</tr>
</table> </td>
</tr>
<tr>
<td class="grijs_streep"> </td>
</tr>
<tr>
<td align="center"><input type="submit" name="submit" value="Aanmelden!">
<input type="reset" value="Leeg velden"></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html> ' ;
?>
14 antwoorden
Gesponsorde links
CelestialCelebi - 03/09/2004 21:58
PHP gevorderde
Oke, normaal doe ik dit niet.. Maar wacht even op de edit.
BigTeddy - 03/09/2004 22:05 (laatste wijziging 04/09/2004 00:30)
PHP gevorderde
Hier pas dit even gewoon aan.
Vanaf het begint tot "// Normale html pagina" dan zou het moeten werken. Er stonden enkel {} verkeerd en de remote_addr was niet volledig. OOk heb je de fout tabel verplaatst naar binnen in, want zoals deze stond, kreeg je altijd een stukje te zien van de fout ookal was het niet fout. ;)
'"_SERVER['REMOTE_ADDR']."' => '".$_SERVER['REMOTE_ADDR']."'
'"_SERVER[' REMOTE_ADDR']."' => '".$_SERVER[' REMOTE_ADDR']."'
Je zou wel een aantal dingen anders kunnen schrijven maar daar heb ik nu niets aanveranderd ;)
<?
<?php
session_start(); //Sessies starten
include"config.php"; // Hier staan alle gegevens in
include"functions.php"; // Alle functies, Datum enz
// Paar controles of velden leeg zijn
if(empty($_SESSION['session_id'])) {
if(isSet($_POST['submit']))
{
// Html voor de fout pagina
echo '<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#F1F5F6\" class=\"menu\">
<tr>
<td bgcolor=\"7894AE\"><p class=\"submenu\">» Fout!</p>
</td>
</tr>
<tr>
<td class=\"content1\">';
if(empty($_POST['gebruikersnaam']))
{ // In gebruikersnaam
echo '<li>U heeft geen gebruikersnaam ingevult!';
} // Uit gebruikersnaam
if(empty($_POST['mail']))
{ // In email
echo '<li>U heeft uw email adres niet ingevult!';
} // Uit email
if(empty($_POST['wachtwoord']))
{ // In wachtwoord
echo '<li>U heeft uw wachtwoord niet ingevult!';
} // Uit wachtwoord
if(empty($_POST['wachtwoord2']))
{ // In wachtwoord2
echo '<li>U heeft uw wachtwoord ter bevestiging niet ingevult!';
} // Uit wachtwoord 2
if($_POST['wachtwoord'] != $_POST['wachtwoord2'])
{ // In wachtwoorden controleren
echo '<li>Uw ingevulde wachtwoorden komen niet overeen! Zorg ervoor dat de wachtwoorden exact hetzelfde zijn';
} // Uit wachtwoorden controleren
else
{
// Gebruikersnaam controleren of hij al bestaat
$select = "SELECT * FROM leden WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'";
$sql = mysql_query($select);
$aant = mysql_num_rows($sql);
if($aant == 1)
{
echo '<li>De door uw gekozen gebruikersnaam staat al in onze database! Probeer het opnieuw met een ander gebruikersnaam!';
}
else
{
// In de database gooien
$insert = "INSERT INTO leden (id, gebruikersnaam, mail, wachtwoord, msn, icq, aim, yahoo, website, woonplaats, beroep, hobbys, interesses, type, ip, datum) VALUE ('', '".$_POST['gebruikersnaam']."','".$_POST['mail']."','".$_POST['wachtwoord']."','".$_POST['msn']."','".$_POST['icq']."','".$_POST['aim']."','".$_POST['yahoo']."','".$_POST['website']."','".$_POST['beroep']."','".$_POST['hobbys']."','".$_POST['interesses']."','".$_POST['types']."','".$_SERVER['REMOTE_ADDR']."','".$datum."')";
$query = mysql_query($insert)or die(mysql_error());
}
} // Afsluiting van in database gooien
} // Afsluiting submit
} // Afsluiting session_id
// Afsluiting van de html pagina
echo "</td>
</tr>
</table>";
?>
<?
<?php
include "config.php" ; // Hier staan alle gegevens in
include "functions.php" ; // Alle functies, Datum enz
// Paar controles of velden leeg zijn
if ( empty ( $_SESSION [ 'session_id' ] ) ) { if ( isSet ( $_POST [ 'submit' ] ) ) {
// Html voor de fout pagina
echo '<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#F1F5F6\" class=\"menu\"> <tr>
<td bgcolor=\"7894AE\"><p class=\"submenu\">» Fout!</p>
</td>
</tr>
<tr>
<td class=\"content1\">' ;
if ( empty ( $_POST [ 'gebruikersnaam' ] ) ) { // In gebruikersnaam
echo '<li>U heeft geen gebruikersnaam ingevult!' ; } // Uit gebruikersnaam
if ( empty ( $_POST [ 'mail' ] ) ) { // In email
echo '<li>U heeft uw email adres niet ingevult!' ; } // Uit email
if ( empty ( $_POST [ 'wachtwoord' ] ) ) { // In wachtwoord
echo '<li>U heeft uw wachtwoord niet ingevult!' ; } // Uit wachtwoord
if ( empty ( $_POST [ 'wachtwoord2' ] ) ) { // In wachtwoord2
echo '<li>U heeft uw wachtwoord ter bevestiging niet ingevult!' ; } // Uit wachtwoord 2
if ( $_POST [ 'wachtwoord' ] != $_POST [ 'wachtwoord2' ] )
{ // In wachtwoorden controleren
echo '<li>Uw ingevulde wachtwoorden komen niet overeen! Zorg ervoor dat de wachtwoorden exact hetzelfde zijn' ; } // Uit wachtwoorden controleren
else
{
// Gebruikersnaam controleren of hij al bestaat
$select = "SELECT * FROM leden WHERE gebruikersnaam = '" . $_POST [ 'gebruikersnaam' ] . "'" ;
if ( $aant == 1 )
{
echo '<li>De door uw gekozen gebruikersnaam staat al in onze database! Probeer het opnieuw met een ander gebruikersnaam!' ; }
else
{
// In de database gooien
$insert = "INSERT INTO leden (id, gebruikersnaam, mail, wachtwoord, msn, icq, aim, yahoo, website, woonplaats, beroep, hobbys, interesses, type, ip, datum) VALUE ('', '" . $_POST [ 'gebruikersnaam' ] . "','" . $_POST [ 'mail' ] . "','" . $_POST [ 'wachtwoord' ] . "','" . $_POST [ 'msn' ] . "','" . $_POST [ 'icq' ] . "','" . $_POST [ 'aim' ] . "','" . $_POST [ 'yahoo' ] . "','" . $_POST [ 'website' ] . "','" . $_POST [ 'beroep' ] . "','" . $_POST [ 'hobbys' ] . "','" . $_POST [ 'interesses' ] . "','" . $_POST [ 'types' ] . "','" . $_SERVER [ 'REMOTE_ADDR' ] . "','" . $datum . "')" ;
}
} // Afsluiting van in database gooien
} // Afsluiting submit
} // Afsluiting session_id
// Afsluiting van de html pagina
</tr>
</table>" ;
?>
DRUNK - 03/09/2004 22:08 (laatste wijziging 03/09/2004 22:09)
PHP gevorderde
dit is ook nog niet helemaal goed, en waarschijnlijk al helemaal niet meer wat je bedoeling was maar dit is wat ik er in korte tijd van gemaakt heb....
succes verder!
<?php session_start();
include("config.php");
include("functions.php");
if(empty($_SESSION['session_id'])) {
if(!isSet($_POST['submit'])) {
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link type="text/css" rel="stylesheet" href="style.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Aanmelden</title>
</head>
<body>
<form method="post" action="'.$_SERVER['PHP_SELF'].'">
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#F1F5F6" class="menu">
<tr>
<td bgcolor="7894AE"><p class="submenu">» Aanmeld informatie </p>
</td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="content1">
<td width="23%"><SPAN class=gen>Gebruikersnaam: *</SPAN></td>
<td width="74%"><input name="gebruikersnaam" type="text" id="gebruikersnaam" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Email adres: *</SPAN></td>
<td><input name="mail" type="password" id="mail" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Wachtwoord: * </SPAN></td>
<td><input name="wachtwoord" type="password" id="wachtwoord" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Bevestig wachtwoord: * </SPAN></td>
<td><input name="wachtwoord2" type="password" id="wachtwoord2" size="30"></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="submenu">» Profiel informatie </td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="content1">
<td width="23%"><SPAN class=gen>ICQ Nummer:</SPAN></td>
<td width="74%"><input name="icq" type="text" id="icq" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>AIM Naam:</SPAN></td>
<td><input name="aim" type="text" id="aim" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>MSN Messenger:</SPAN></td>
<td><input name="msn" type="text" id="msn" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Yahoo Messenger:</SPAN></td>
<td><input name="yahoo" type="text" id="yahoo" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Website:</SPAN></td>
<td><input name="website" type="text" id="website" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Woonplaats:</SPAN></td>
<td><input name="woonplaats" type="text" id="woonplaats" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Beroep:</SPAN></td>
<td><input name="beroep" type="text" id="beroep" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Hobbys:</SPAN></td>
<td><input name="hobbys" type="text" id="hobbys" size="30"></td>
</tr>
<tr class="content1">
<td valign="top"><SPAN class=gen>Interesses:</SPAN></td>
<td><textarea name="interesses" cols="40" rows="5"></textarea></td>
</tr>
</table> </td>
</tr>
<tr>
<td class="grijs_streep"> </td>
</tr>
<tr>
<td align="center"><input type="submit" name="submit" value="Aanmelden!">
<input type="reset" value="Leeg velden"></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>
<?php
} else {
if(empty($_POST['gebruikersnaam'])) {
echo '<li>U heeft geen gebruikersnaam ingevult!';
exit;
}
if(empty($_POST['mail'])) {
echo '<li>U heeft uw email adres niet ingevult!';
exit;
}
if(empty($_POST['wachtwoord'])) {
echo '<li>U heeft uw wachtwoord niet ingevult!';
exit;
}
if(empty($_POST['wachtwoord2'])) {
echo '<li>U heeft uw wachtwoord ter bevestiging niet ingevult!';
exit;
}
if($_POST['wachtwoord'] != $_POST['wachtwoord2']) {
echo '<li>Uw ingevulde wachtwoorden komen niet overeen! Zorg ervoor dat de wachtwoorden exact hetzelfde zijn';
exit;
}
// Gebruikersnaam controleren of hij al bestaat
$select = mysql_query("SELECT * FROM leden WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'");
if(mysql_num_rows($select)) {
echo '<li>De door uw gekozen gebruikersnaam staat al in onze database! Probeer het opnieuw met een ander gebruikersnaam!';
exit;
}
// In de database gooien
$insert = "INSERT INTO leden (id, gebruikersnaam, mail, wachtwoord, msn, icq, aim, yahoo, website, woonplaats, beroep, hobbys, interesses, type, ip, datum) VALUES ('', '".$_POST['gebruikersnaam']."','".$_POST['mail']."','".$_POST['wachtwoord']."','".$_POST['msn']."','".$_POST['icq']."','".$_POST['aim']."','".$_POST['yahoo']."','".$_POST['website']."','".$_POST['beroep']."','".$_POST['hobbys']."','".$_POST['interesses']."','".$_POST['types']."','"$_SERVER['REMOTE_ADDR']."','".$datum."')";
if (!mysql_query($insert)) {
die('inset query falied: ' . mysql_error());
}
echo 'gegevens succesvol!';
}
}
else {
echo '............';
}
?>
include ( "config.php" ) ;
include ( "functions.php" ) ;
if ( empty ( $_SESSION [ 'session_id' ] ) ) { if ( ! isSet ( $_POST [ 'submit' ] ) ) {
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link type="text/css" rel="stylesheet" href="style.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Aanmelden</title>
</head>
<body>
<form method="post" action="'.$_SERVER['PHP_SELF'].'">
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#F1F5F6" class="menu">
<tr>
<td bgcolor="7894AE"><p class="submenu">» Aanmeld informatie </p>
</td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="content1">
<td width="23%"><SPAN class=gen>Gebruikersnaam: *</SPAN></td>
<td width="74%"><input name="gebruikersnaam" type="text" id="gebruikersnaam" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Email adres: *</SPAN></td>
<td><input name="mail" type="password" id="mail" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Wachtwoord: * </SPAN></td>
<td><input name="wachtwoord" type="password" id="wachtwoord" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Bevestig wachtwoord: * </SPAN></td>
<td><input name="wachtwoord2" type="password" id="wachtwoord2" size="30"></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="submenu">» Profiel informatie </td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="content1">
<td width="23%"><SPAN class=gen>ICQ Nummer:</SPAN></td>
<td width="74%"><input name="icq" type="text" id="icq" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>AIM Naam:</SPAN></td>
<td><input name="aim" type="text" id="aim" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>MSN Messenger:</SPAN></td>
<td><input name="msn" type="text" id="msn" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Yahoo Messenger:</SPAN></td>
<td><input name="yahoo" type="text" id="yahoo" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Website:</SPAN></td>
<td><input name="website" type="text" id="website" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Woonplaats:</SPAN></td>
<td><input name="woonplaats" type="text" id="woonplaats" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Beroep:</SPAN></td>
<td><input name="beroep" type="text" id="beroep" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Hobbys:</SPAN></td>
<td><input name="hobbys" type="text" id="hobbys" size="30"></td>
</tr>
<tr class="content1">
<td valign="top"><SPAN class=gen>Interesses:</SPAN></td>
<td><textarea name="interesses" cols="40" rows="5"></textarea></td>
</tr>
</table> </td>
</tr>
<tr>
<td class="grijs_streep"> </td>
</tr>
<tr>
<td align="center"><input type="submit" name="submit" value="Aanmelden!">
<input type="reset" value="Leeg velden"></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>
<?php
} else {
if ( empty ( $_POST [ 'gebruikersnaam' ] ) ) { echo '<li>U heeft geen gebruikersnaam ingevult!' ; }
if ( empty ( $_POST [ 'mail' ] ) ) { echo '<li>U heeft uw email adres niet ingevult!' ; }
if ( empty ( $_POST [ 'wachtwoord' ] ) ) { echo '<li>U heeft uw wachtwoord niet ingevult!' ; }
if ( empty ( $_POST [ 'wachtwoord2' ] ) ) { echo '<li>U heeft uw wachtwoord ter bevestiging niet ingevult!' ; }
if ( $_POST [ 'wachtwoord' ] != $_POST [ 'wachtwoord2' ] ) {
echo '<li>Uw ingevulde wachtwoorden komen niet overeen! Zorg ervoor dat de wachtwoorden exact hetzelfde zijn' ; }
// Gebruikersnaam controleren of hij al bestaat
$select = mysql_query ( "SELECT * FROM leden WHERE gebruikersnaam = '" . $_POST [ 'gebruikersnaam' ] . "'" ) ; echo '<li>De door uw gekozen gebruikersnaam staat al in onze database! Probeer het opnieuw met een ander gebruikersnaam!' ; }
// In de database gooien
$insert = "INSERT INTO leden (id, gebruikersnaam, mail, wachtwoord, msn, icq, aim, yahoo, website, woonplaats, beroep, hobbys, interesses, type, ip, datum) VALUES ('', '" . $_POST [ 'gebruikersnaam' ] . "','" . $_POST [ 'mail' ] . "','" . $_POST [ 'wachtwoord' ] . "','" . $_POST [ 'msn' ] . "','" . $_POST [ 'icq' ] . "','" . $_POST [ 'aim' ] . "','" . $_POST [ 'yahoo' ] . "','" . $_POST [ 'website' ] . "','" . $_POST [ 'beroep' ] . "','" . $_POST [ 'hobbys' ] . "','" . $_POST [ 'interesses' ] . "','" . $_POST [ 'types' ] . "','" $_SERVER [ 'REMOTE_ADDR' ] . "','" . $datum . "')" ;
}
echo 'gegevens succesvol!' ; }
}
else {
}
?>
CelestialCelebi - 03/09/2004 22:14 (laatste wijziging 03/09/2004 22:16)
PHP gevorderde
<?php
session_start(); //Sessies starten
include"config.php"; // Hier staan alle gegevens in
include"functions.php"; // Alle functies, Datum enz
/* WAAROM GEBRUIK JE HIERONDER ECHO VAN PHP? WAAROM NIET GEWOON BUITEN PHP SPRINGEN? */
?>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#F1F5F6" class="menu">
<tr>
<td bgcolor="7894AE"><p class="submenu">» Fout!</p>
</td>
</tr>
<tr>
<td class="content1">
<?php
/* HEY, OOK GEEN GEESCAPE MEER.. EN DAT WAS TOCH AL NIET NODIG, OMDAT JE ENKELE QUOTES GEBRUIKTE BIJ ECHO */
// Paar controles of velden leeg zijn
if(empty($_SESSION['session_id']))
{
if($_SERVER['REQUEST_METHOD'] == 'POST') /* JA, DEZE GEBRUIKEN JA, ZO WEET JE _ZEKER_ DAT ER EEN POST IS EN DAT DIE OOK ECHT EEN FORMULIER BEVATTE */
if($_POST['gebruikersnaam'] == '') /* JA, NIET MET EMPTY(), MAAR GEWOON == '' GEBRUIKEN, OMDAT '0' en 'false' OOK EMPTY() ZIJN */
{ // In gebruikersnaam
echo '<li>U heeft geen gebruikersnaam ingevuld!'; /* HEHE, GEINIG: INGEVULD MOET MET EEN D :-) */
} // Uit gebruikersnaam
if(empty($_POST['mail'])) /* HIER OOK == '' GEBRUIKEN */
{ // In email
echo '<li>U heeft uw email adres niet ingevult!';
} // Uit email
if(empty($_POST['wachtwoord'])) /* HIER OOK == '' GEBRUIKEN */
{ // In wachtwoord
echo '<li>U heeft uw wachtwoord niet ingevult!';
} // Uit wachtwoord
if(empty($_POST['wachtwoord2']))
{ // In wachtwoord2
echo '<li>U heeft uw wachtwoord ter bevestiging niet ingevult!';
} // Uit wachtwoord 2
if($_POST['wachtwoord'] != $_POST['wachtwoord2'])
{ /* WAT DOET DIE ACCOLADE HIER?????? */
{ // In wachtwoorden controleren
echo '<li>Uw ingevulde wachtwoorden komen niet overeen! Zorg ervoor dat de wachtwoorden exact hetzelfde zijn';
} // Uit wachtwoorden controleren
else
{
/* HIER LIEP HET AL FOUT AF :-) ZIE JE DE FOUT NU? */
// Gebruikersnaam controleren of hij al bestaat
$select = "SELECT * FROM leden WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'";
$sql = mysql_query($select);
$aant = mysql_num_rows($sql);
if($aant == 1) {
echo '<li>De door uw gekozen gebruikersnaam staat al in onze database! Probeer het opnieuw met een ander gebruikersnaam!';
}
}
else {
// In de database gooien
$insert = "INSERT INTO leden (id, gebruikersnaam, mail, wachtwoord, msn, icq, aim, yahoo, website, woonplaats, beroep, hobbys, interesses, type, ip, datum) VALUE
('', '".$_POST['gebruikersnaam']."','".$_POST['mail']."','".$_POST['wachtwoord']."','".$_POST['msn']."','".$_POST['icq']."','".$_POST['aim']."','".$_POST['yahoo']."','".$_POST['website']."','".$_POST['beroep']."','".$_POST['hobbys']."','".$_POST['interesses']."','".$_POST['types']."','"_SERVER['REMOTE_ADDR']."','".$datum."')";
$query = mysql_query($insert)or die(mysql_error());
// Afsluiting van de html pagina
echo '</td>
</tr>
</table>';
}
} // Afsluiting van in database gooien
} // Afsluiting submit
} // Afsluiting session_id
// Normale html pagina
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link type="text/css" rel="stylesheet" href="style.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Aanmelden</title>
</head>
<body>
<form method="post" action="'.$_SERVER['PHP_SELF'].'">
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#F1F5F6" class="menu">
<tr>
<td bgcolor="7894AE"><p class="submenu">» Aanmeld informatie </p>
</td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="content1">
<td width="23%"><SPAN class=gen>Gebruikersnaam: *</SPAN></td>
<td width="74%"><input name="gebruikersnaam" type="text" id="gebruikersnaam" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Email adres: *</SPAN></td>
<td><input name="mail" type="password" id="mail" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Wachtwoord: * </SPAN></td>
<td><input name="wachtwoord" type="password" id="wachtwoord" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Bevestig wachtwoord: * </SPAN></td>
<td><input name="wachtwoord2" type="password" id="wachtwoord2" size="30"></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="submenu">» Profiel informatie </td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="content1">
<td width="23%"><SPAN class=gen>ICQ Nummer:</SPAN></td>
<td width="74%"><input name="icq" type="text" id="icq" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>AIM Naam:</SPAN></td>
<td><input name="aim" type="text" id="aim" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>MSN Messenger:</SPAN></td>
<td><input name="msn" type="text" id="msn" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Yahoo Messenger:</SPAN></td>
<td><input name="yahoo" type="text" id="yahoo" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Website:</SPAN></td>
<td><input name="website" type="text" id="website" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Woonplaats:</SPAN></td>
<td><input name="woonplaats" type="text" id="woonplaats" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Beroep:</SPAN></td>
<td><input name="beroep" type="text" id="beroep" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Hobbys:</SPAN></td>
<td><input name="hobbys" type="text" id="hobbys" size="30"></td>
</tr>
<tr class="content1">
<td valign="top"><SPAN class=gen>Interesses:</SPAN></td>
<td><textarea name="interesses" cols="40" rows="5"></textarea></td>
</tr>
</table> </td>
</tr>
<tr>
<td class="grijs_streep"> </td>
</tr>
<tr>
<td align="center"><input type="submit" name="submit" value="Aanmelden!">
<input type="reset" value="Leeg velden"></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html> ';
?>
<?php
include "config.php" ; // Hier staan alle gegevens in
include "functions.php" ; // Alle functies, Datum enz
/* WAAROM GEBRUIK JE HIERONDER ECHO VAN PHP? WAAROM NIET GEWOON BUITEN PHP SPRINGEN? */
?>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#F1F5F6" class="menu">
<tr>
<td bgcolor="7894AE"><p class="submenu">» Fout!</p>
</td>
</tr>
<tr>
<td class="content1">
<?php
/* HEY, OOK GEEN GEESCAPE MEER.. EN DAT WAS TOCH AL NIET NODIG, OMDAT JE ENKELE QUOTES GEBRUIKTE BIJ ECHO */
// Paar controles of velden leeg zijn
if ( empty ( $_SESSION [ 'session_id' ] ) ) {
if ( $_SERVER [ 'REQUEST_METHOD' ] == 'POST' ) /* JA, DEZE GEBRUIKEN JA, ZO WEET JE _ZEKER_ DAT ER EEN POST IS EN DAT DIE OOK ECHT EEN FORMULIER BEVATTE */
if ( $_POST [ 'gebruikersnaam' ] == '' ) /* JA, NIET MET EMPTY(), MAAR GEWOON == '' GEBRUIKEN, OMDAT '0' en 'false' OOK EMPTY() ZIJN */
{ // In gebruikersnaam
echo '<li>U heeft geen gebruikersnaam ingevuld!' ; /* HEHE, GEINIG: INGEVULD MOET MET EEN D :-) */ } // Uit gebruikersnaam
if ( empty ( $_POST [ 'mail' ] ) ) /* HIER OOK == '' GEBRUIKEN */ { // In email
echo '<li>U heeft uw email adres niet ingevult!' ; } // Uit email
if ( empty ( $_POST [ 'wachtwoord' ] ) ) /* HIER OOK == '' GEBRUIKEN */ { // In wachtwoord
echo '<li>U heeft uw wachtwoord niet ingevult!' ; } // Uit wachtwoord
if ( empty ( $_POST [ 'wachtwoord2' ] ) ) { // In wachtwoord2
echo '<li>U heeft uw wachtwoord ter bevestiging niet ingevult!' ; } // Uit wachtwoord 2
if ( $_POST [ 'wachtwoord' ] != $_POST [ 'wachtwoord2' ] )
{ /* WAT DOET DIE ACCOLADE HIER?????? */
{ // In wachtwoorden controleren
echo '<li>Uw ingevulde wachtwoorden komen niet overeen! Zorg ervoor dat de wachtwoorden exact hetzelfde zijn' ; } // Uit wachtwoorden controleren
else
{
/* HIER LIEP HET AL FOUT AF :-) ZIE JE DE FOUT NU? */
// Gebruikersnaam controleren of hij al bestaat
$select = "SELECT * FROM leden WHERE gebruikersnaam = '" . $_POST [ 'gebruikersnaam' ] . "'" ;
if ( $aant == 1 ) {
echo '<li>De door uw gekozen gebruikersnaam staat al in onze database! Probeer het opnieuw met een ander gebruikersnaam!' ; }
}
else {
// In de database gooien
$insert = "INSERT INTO leden (id, gebruikersnaam, mail, wachtwoord, msn, icq, aim, yahoo, website, woonplaats, beroep, hobbys, interesses, type, ip, datum) VALUE
('', '" . $_POST [ 'gebruikersnaam' ] . "','" . $_POST [ 'mail' ] . "','" . $_POST [ 'wachtwoord' ] . "','" . $_POST [ 'msn' ] . "','" . $_POST [ 'icq' ] . "','" . $_POST [ 'aim' ] . "','" . $_POST [ 'yahoo' ] . "','" . $_POST [ 'website' ] . "','" . $_POST [ 'beroep' ] . "','" . $_POST [ 'hobbys' ] . "','" . $_POST [ 'interesses' ] . "','" . $_POST [ 'types' ] . "','" _SERVER[ 'REMOTE_ADDR' ] . "','" . $datum . "')" ;
// Afsluiting van de html pagina
</tr>
</table>' ;
}
} // Afsluiting van in database gooien
} // Afsluiting submit
} // Afsluiting session_id
// Normale html pagina
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link type="text/css" rel="stylesheet" href="style.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Aanmelden</title>
</head>
<body>
<form method="post" action="' . $_SERVER [ 'PHP_SELF' ] . '">
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#F1F5F6" class="menu">
<tr>
<td bgcolor="7894AE"><p class="submenu">» Aanmeld informatie </p>
</td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="content1">
<td width="23%"><SPAN class=gen>Gebruikersnaam: *</SPAN></td>
<td width="74%"><input name="gebruikersnaam" type="text" id="gebruikersnaam" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Email adres: *</SPAN></td>
<td><input name="mail" type="password" id="mail" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Wachtwoord: * </SPAN></td>
<td><input name="wachtwoord" type="password" id="wachtwoord" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Bevestig wachtwoord: * </SPAN></td>
<td><input name="wachtwoord2" type="password" id="wachtwoord2" size="30"></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="submenu">» Profiel informatie </td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="content1">
<td width="23%"><SPAN class=gen>ICQ Nummer:</SPAN></td>
<td width="74%"><input name="icq" type="text" id="icq" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>AIM Naam:</SPAN></td>
<td><input name="aim" type="text" id="aim" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>MSN Messenger:</SPAN></td>
<td><input name="msn" type="text" id="msn" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Yahoo Messenger:</SPAN></td>
<td><input name="yahoo" type="text" id="yahoo" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Website:</SPAN></td>
<td><input name="website" type="text" id="website" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Woonplaats:</SPAN></td>
<td><input name="woonplaats" type="text" id="woonplaats" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Beroep:</SPAN></td>
<td><input name="beroep" type="text" id="beroep" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Hobbys:</SPAN></td>
<td><input name="hobbys" type="text" id="hobbys" size="30"></td>
</tr>
<tr class="content1">
<td valign="top"><SPAN class=gen>Interesses:</SPAN></td>
<td><textarea name="interesses" cols="40" rows="5"></textarea></td>
</tr>
</table> </td>
</tr>
<tr>
<td class="grijs_streep"> </td>
</tr>
<tr>
<td align="center"><input type="submit" name="submit" value="Aanmelden!">
<input type="reset" value="Leeg velden"></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html> ' ;
?>
Oke, dit moet je gebruiken:
1. Uitlijning.
2. HTML buiten PHP zetten (vooral de HELE grote stukken (zoals daar bovenaan en onderaan)).
3. if($_SERVER['REQUEST_METHOD'] == 'POST') in plaats van if(isset($_POST['...'])). Waarom? Omdat, als men op enter drukt, de pagina wel wordt gepost, maar die button niet bestaat. Ook bij lege formulieren werkt het dan niet meer...
4. Uitlijning.
5. $... == '' ipv. empty($...) gebruiken. 0 en false zijn ook empty().
6. Geen onnodige variabelen gebruiken. Dus $aant kan weg, omdat je die maar 1 keer gebruikt in je script. Maak daar dus niet:
<?php
$aant = mysql_num_rows($sql);
if($aant == 1)
{
?>
, maar:
<?php
if(mysql_num_rows($sql) == 1)
{
?>
Die variabele is maar één keer nodig, dus gebruik je hem niet, maar roep je direct de waarde aan.
7. Uitlijning.
8. addslashes() gebruiken bij querys op de database (alleen bij strings). Waarom? Omdat als je een ' intypt, je een foutmelding krijgt. SQL injection heet dat dus. Voorbeeldje? Komt ie:
<?php
$var = 'hallo';
mysql_query("INSERT INTO leden (gebruikersnaam) VALUES ('" . $var . "')", $rDatabaseConnection);
// wordt:
mysql_query("INSERT INTO leden (gebruikersnaam) VALUES ('hallo')", $rDatabaseConnection);
// dit is nu nog goed, maar als mensen zelf iets in kunnen typen, kunnen ze dus ook een ' intypen. En dan krijg je een fout, kijk maar:
mysql_query("INSERT INTO leden (gebruikersnaam) VALUES ('hallo'hoi')", $rDatabaseConnection);
// en met addslashes() niet:
mysql_query("INSERT INTO leden (gebruikersnaam) VALUES ('" . addslashes($var) . "')", $rDatabaseConnection);
// wordt:
mysql_query("INSERT INTO leden (gebruikersnaam) VALUES ('hallo\'hoi')", $rDatabaseConnection);
?>
<?php
$var = 'hallo' ;
mysql_query ( "INSERT INTO leden (gebruikersnaam) VALUES ('" . $var . "')" , $rDatabaseConnection ) ; // wordt:
mysql_query ( "INSERT INTO leden (gebruikersnaam) VALUES ('hallo')" , $rDatabaseConnection ) ; // dit is nu nog goed, maar als mensen zelf iets in kunnen typen, kunnen ze dus ook een ' intypen. En dan krijg je een fout, kijk maar:
mysql_query ( "INSERT INTO leden (gebruikersnaam) VALUES ('hallo'hoi')" , $rDatabaseConnection ) ; // en met addslashes() niet:
mysql_query ( "INSERT INTO leden (gebruikersnaam) VALUES ('" . addslashes ( $var ) . "')" , $rDatabaseConnection ) ; // wordt:
mysql_query ( "INSERT INTO leden (gebruikersnaam) VALUES ('hallo\'hoi')" , $rDatabaseConnection ) ; ?>
Zie je? Dat is efficiënt scripten.
9. Gebruik de connection identifier van MySQL bij je querys en overal waar het kan, want eens zul je hem toch nodig hebben.. Als je meerdere database verbindingen gaat draaien, zul je hem ALTIJD mee moeten geven, omdat PHP moet weten welke database je bedoelt... Dus doe dat nu ook vast en leer jezelf dat aan.
10. Uitlijnen, had ik dat al gezegd? ;)
EDIT:
11. En NATUURLIJK geen or die(mysql_error()) gaan gebruiken he.. Je wilt natuurlijk wel netjes de error in een tekstbestandje hebben staan, zodat je weet wat er fout ging.. Hackers vinden het trouwens ook fijn om te zien wat voor fouten jij maakt, zodat ze beter het systeem binnen kunnen komen.
CelestialCelebi - 03/09/2004 22:37
PHP gevorderde
@BigTeddy: Nee. Er wordt niet gecontroleerd of er iets leeg is, want er wordt gecontroleerd of iets gelijk is aan 0, gelijk is aan false of gelijk is aan leeg. En dat is weer iets heel anders.
BigTeddy - 03/09/2004 22:58
PHP gevorderde
Dat weet ik, maar ik heb er dan ook bijgezet dat ik niets aan het script zelf heb aangepast, enkel ervoor gezorgd dat de fout niet langer wordt getoond.
Want zo zou je ook nog kunnen aanpassen
<?
$select = "SELECT * FROM leden WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'";
$sql = mysql_query($select);
$aant = mysql_num_rows($sql);
?>
<?
$select = "SELECT * FROM leden WHERE gebruikersnaam = '" . $_POST [ 'gebruikersnaam' ] . "'" ;
?>
aan
<?
$select = "SELECT COUNT(`id`) AS `aantal` FROM `leden` WHERE `gebruikersnaam` = '".$_POST['gebruikersnaam']."'";
$sql = mysql_query($select);
$array = mysql_fetch_array($sql);
$aant = $array['aantal'];
?>
<?
$select = "SELECT COUNT(`id`) AS `aantal` FROM `leden` WHERE `gebruikersnaam` = '" . $_POST [ 'gebruikersnaam' ] . "'" ;
$aant = $array [ 'aantal' ] ;
?>
Want je moet enkel maar tellen hoeveel er zijn hé.
Dus waarom alles gaan selecteren, maar dit is vindt ik wel gewoon de dingen die een scriptje ietje sneller laat gaan. Maar dit hoeft natuurlijk niet echt want wat maakt nu een 1000 of meer van een seconde nu uit? ;)
Scott - 03/09/2004 23:03
PHP ver gevorderde
Werkt dit ?
<?php
session_start(); //Sessies starten
include"config.php"; // Hier staan alle gegevens in
include"functions.php"; // Alle functies, Datum enz
// Html voor de fout pagina
echo '<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#F1F5F6\" class=\"menu\">
<tr>
<td bgcolor=\"7894AE\"><p class=\"submenu\">» Fout!</p>
</td>
</tr>
<tr>
<td class=\"content1\">';
// Paar controles of velden leeg zijn
if(empty($_SESSION['session_id'])) {
if(isSet($_POST['submit'])) {
if(empty($_POST['gebruikersnaam']))
{ // In gebruikersnaam
echo '<li>U heeft geen gebruikersnaam ingevult!';
} // Uit gebruikersnaam
if(empty($_POST['mail']))
{ // In email
echo '<li>U heeft uw email adres niet ingevult!';
} // Uit email
if(empty($_POST['wachtwoord']))
{ // In wachtwoord
echo '<li>U heeft uw wachtwoord niet ingevult!';
} // Uit wachtwoord
if(empty($_POST['wachtwoord2']))
{ // In wachtwoord2
echo '<li>U heeft uw wachtwoord ter bevestiging niet ingevult!';
} // Uit wachtwoord 2
if($_POST['wachtwoord'] != $_POST['wachtwoord2']) {
{ // In wachtwoorden controleren
echo '<li>Uw ingevulde wachtwoorden komen niet overeen! Zorg ervoor dat de wachtwoorden exact hetzelfde zijn';
}
else {
// Gebruikersnaam controleren of hij al bestaat
$select = "SELECT * FROM leden WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'";
$sql = mysql_query($select);
$aant = mysql_num_rows($sql);
if($aant == 1) {
echo '<li>De door uw gekozen gebruikersnaam staat al in onze database! Probeer het opnieuw met een ander gebruikersnaam!';
}
}
else {
// In de database gooien
$insert = "INSERT INTO leden (id, gebruikersnaam, mail, wachtwoord, msn, icq, aim, yahoo, website, woonplaats, beroep, hobbys, interesses, type, ip, datum) VALUE
('', '".$_POST['gebruikersnaam']."','".$_POST['mail']."','".$_POST['wachtwoord']."','".$_POST['msn']."','".$_POST['icq']."','".$_POST['aim']."','".$_POST['yahoo']."','".$_POST['website']."','".$_POST['beroep']."','".$_POST['hobbys']."','".$_POST['interesses']."','".$_POST['types']."','"_SERVER['REMOTE_ADDR']."','".$datum."')";
$query = mysql_query($insert)or die(mysql_error());
// Afsluiting van de html pagina
echo '</td>
</tr>
</table>';
}
} // Afsluiting van in database gooien
} // Afsluiting submit
} // Afsluiting session_id
// Normale html pagina
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link type="text/css" rel="stylesheet" href="style.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Aanmelden</title>
</head>
<body>
<form method="post" action="'.$_SERVER['PHP_SELF'].'">
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#F1F5F6" class="menu">
<tr>
<td bgcolor="7894AE"><p class="submenu">» Aanmeld informatie </p>
</td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="content1">
<td width="23%"><SPAN class=gen>Gebruikersnaam: *</SPAN></td>
<td width="74%"><input name="gebruikersnaam" type="text" id="gebruikersnaam" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Email adres: *</SPAN></td>
<td><input name="mail" type="password" id="mail" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Wachtwoord: * </SPAN></td>
<td><input name="wachtwoord" type="password" id="wachtwoord" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Bevestig wachtwoord: * </SPAN></td>
<td><input name="wachtwoord2" type="password" id="wachtwoord2" size="30"></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="submenu">» Profiel informatie </td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="content1">
<td width="23%"><SPAN class=gen>ICQ Nummer:</SPAN></td>
<td width="74%"><input name="icq" type="text" id="icq" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>AIM Naam:</SPAN></td>
<td><input name="aim" type="text" id="aim" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>MSN Messenger:</SPAN></td>
<td><input name="msn" type="text" id="msn" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Yahoo Messenger:</SPAN></td>
<td><input name="yahoo" type="text" id="yahoo" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Website:</SPAN></td>
<td><input name="website" type="text" id="website" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Woonplaats:</SPAN></td>
<td><input name="woonplaats" type="text" id="woonplaats" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Beroep:</SPAN></td>
<td><input name="beroep" type="text" id="beroep" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Hobbys:</SPAN></td>
<td><input name="hobbys" type="text" id="hobbys" size="30"></td>
</tr>
<tr class="content1">
<td valign="top"><SPAN class=gen>Interesses:</SPAN></td>
<td><textarea name="interesses" cols="40" rows="5"></textarea></td>
</tr>
</table> </td>
</tr>
<tr>
<td class="grijs_streep"> </td>
</tr>
<tr>
<td align="center"><input type="submit" name="submit" value="Aanmelden!">
<input type="reset" value="Leeg velden"></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html> ';
?>
<?php
include "config.php" ; // Hier staan alle gegevens in
include "functions.php" ; // Alle functies, Datum enz
// Html voor de fout pagina
echo '<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#F1F5F6\" class=\"menu\"> <tr>
<td bgcolor=\"7894AE\"><p class=\"submenu\">» Fout!</p>
</td>
</tr>
<tr>
<td class=\"content1\">' ;
// Paar controles of velden leeg zijn
if ( empty ( $_SESSION [ 'session_id' ] ) ) {
if ( isSet ( $_POST [ 'submit' ] ) ) { if ( empty ( $_POST [ 'gebruikersnaam' ] ) ) { // In gebruikersnaam
echo '<li>U heeft geen gebruikersnaam ingevult!' ; } // Uit gebruikersnaam
if ( empty ( $_POST [ 'mail' ] ) ) { // In email
echo '<li>U heeft uw email adres niet ingevult!' ; } // Uit email
if ( empty ( $_POST [ 'wachtwoord' ] ) ) { // In wachtwoord
echo '<li>U heeft uw wachtwoord niet ingevult!' ; } // Uit wachtwoord
if ( empty ( $_POST [ 'wachtwoord2' ] ) ) { // In wachtwoord2
echo '<li>U heeft uw wachtwoord ter bevestiging niet ingevult!' ; } // Uit wachtwoord 2
if ( $_POST [ 'wachtwoord' ] != $_POST [ 'wachtwoord2' ] ) {
{ // In wachtwoorden controleren
echo '<li>Uw ingevulde wachtwoorden komen niet overeen! Zorg ervoor dat de wachtwoorden exact hetzelfde zijn' ; }
else {
// Gebruikersnaam controleren of hij al bestaat
$select = "SELECT * FROM leden WHERE gebruikersnaam = '" . $_POST [ 'gebruikersnaam' ] . "'" ;
if ( $aant == 1 ) {
echo '<li>De door uw gekozen gebruikersnaam staat al in onze database! Probeer het opnieuw met een ander gebruikersnaam!' ; }
}
else {
// In de database gooien
$insert = "INSERT INTO leden (id, gebruikersnaam, mail, wachtwoord, msn, icq, aim, yahoo, website, woonplaats, beroep, hobbys, interesses, type, ip, datum) VALUE
('', '" . $_POST [ 'gebruikersnaam' ] . "','" . $_POST [ 'mail' ] . "','" . $_POST [ 'wachtwoord' ] . "','" . $_POST [ 'msn' ] . "','" . $_POST [ 'icq' ] . "','" . $_POST [ 'aim' ] . "','" . $_POST [ 'yahoo' ] . "','" . $_POST [ 'website' ] . "','" . $_POST [ 'beroep' ] . "','" . $_POST [ 'hobbys' ] . "','" . $_POST [ 'interesses' ] . "','" . $_POST [ 'types' ] . "','" _SERVER[ 'REMOTE_ADDR' ] . "','" . $datum . "')" ;
// Afsluiting van de html pagina
</tr>
</table>' ;
}
} // Afsluiting van in database gooien
} // Afsluiting submit
} // Afsluiting session_id
// Normale html pagina
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link type="text/css" rel="stylesheet" href="style.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Aanmelden</title>
</head>
<body>
<form method="post" action="' . $_SERVER [ 'PHP_SELF' ] . '">
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#F1F5F6" class="menu">
<tr>
<td bgcolor="7894AE"><p class="submenu">» Aanmeld informatie </p>
</td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="content1">
<td width="23%"><SPAN class=gen>Gebruikersnaam: *</SPAN></td>
<td width="74%"><input name="gebruikersnaam" type="text" id="gebruikersnaam" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Email adres: *</SPAN></td>
<td><input name="mail" type="password" id="mail" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Wachtwoord: * </SPAN></td>
<td><input name="wachtwoord" type="password" id="wachtwoord" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Bevestig wachtwoord: * </SPAN></td>
<td><input name="wachtwoord2" type="password" id="wachtwoord2" size="30"></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="submenu">» Profiel informatie </td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="content1">
<td width="23%"><SPAN class=gen>ICQ Nummer:</SPAN></td>
<td width="74%"><input name="icq" type="text" id="icq" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>AIM Naam:</SPAN></td>
<td><input name="aim" type="text" id="aim" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>MSN Messenger:</SPAN></td>
<td><input name="msn" type="text" id="msn" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Yahoo Messenger:</SPAN></td>
<td><input name="yahoo" type="text" id="yahoo" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Website:</SPAN></td>
<td><input name="website" type="text" id="website" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Woonplaats:</SPAN></td>
<td><input name="woonplaats" type="text" id="woonplaats" size="30"></td>
</tr>
<tr class="content1">
<td><SPAN class=gen>Beroep:</SPAN></td>
<td><input name="beroep" type="text" id="beroep" size="30"></td>
</tr>
<tr class="content2">
<td><SPAN class=gen>Hobbys:</SPAN></td>
<td><input name="hobbys" type="text" id="hobbys" size="30"></td>
</tr>
<tr class="content1">
<td valign="top"><SPAN class=gen>Interesses:</SPAN></td>
<td><textarea name="interesses" cols="40" rows="5"></textarea></td>
</tr>
</table> </td>
</tr>
<tr>
<td class="grijs_streep"> </td>
</tr>
<tr>
<td align="center"><input type="submit" name="submit" value="Aanmelden!">
<input type="reset" value="Leeg velden"></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html> ' ;
?>
CelestialCelebi - 04/09/2004 07:56
PHP gevorderde
BigTeddy:
Dat kan nòg sneller:
<?
$select = "SELECT COUNT(1) FROM leden WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'";
$sql = mysql_query($select, $rDatabaseConnection);
if(mysql_result($sql, 0) == 0)
{
// er waren 0 rijen
}
else
{
// er waren er wel gevonden
}
?>
<?
$select = "SELECT COUNT(1) FROM leden WHERE gebruikersnaam = '" . $_POST [ 'gebruikersnaam' ] . "'" ;
{
// er waren 0 rijen
}
else
{
// er waren er wel gevonden
}
?>
En ja, ik lijk nu een miereneuker, maar je moet het altijd zo snel mogelijk doen, want die laadtijd maakt voor jou NU niks uit, maar als je wat meer gaat doen dat dit gaat dat dus echt WEL uitmaken hoor...
DRUNK - 04/09/2004 11:31
PHP gevorderde
<?php
if(mysql_result(mysql_query("SELECT COUNT(1) FROM leden WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'", $rDatabaseConnection ), 0) == 0) {
//0 rijen
}
else {
// > 0 rijen
}
?>
<?php
if ( mysql_result ( mysql_query ( "SELECT COUNT(1) FROM leden WHERE gebruikersnaam = '" . $_POST [ 'gebruikersnaam' ] . "'" , $rDatabaseConnection ) , 0 ) == 0 ) { //0 rijen
}
else {
// > 0 rijen
}
?>
CelestialCelebi - 04/09/2004 11:40
PHP gevorderde
Hehe *lol*
En wat doe je nu als die query mislukt? Er moet namelijk ook nog een if/else in om te kijken of die query wel / niet lukt:
Zo doe ik het trouwens meestal:
<?php
$sSqlGetCount = "SELECT COUNT(1) FROM leden WHERE gebruikersnaam = '" . addslashes($_POST['gebruikersnaam']) . "'";
if(!$rSqlGetCount = @mysql_query($sSqlGetCount, $rDatabaseConnection))
{
// de query is mislukt
// ga hier de fout loggen
trigger_error('Query at line ' . (__LINE__ - 5) . ' of file ' . __FILE__ . ' failed. Parsed query string: ' . $sSqlGetCount . '. MySQL returned ' . mysql_error(), E_USER_WARNING);
// en ja, trigger_error() ja, want je hebt natuurlijk set_error_handler() gebruikt.. :)
}
else
{
// hij is wel gelukt:
if(mysql_result($rSqlGetCount, 0) == 0)
{
// er zijn 0 rijen, doe wat
}
else
{
// toch niet, doe iets anders
}
}
?>
<?php
$sSqlGetCount = "SELECT COUNT(1) FROM leden WHERE gebruikersnaam = '" . addslashes ( $_POST [ 'gebruikersnaam' ] ) . "'" ; if ( ! $rSqlGetCount = @ mysql_query ( $sSqlGetCount , $rDatabaseConnection ) ) {
// de query is mislukt
// ga hier de fout loggen
trigger_error ( 'Query at line ' . ( __LINE__ - 5 ) . ' of file ' . __FILE__ . ' failed. Parsed query string: ' . $sSqlGetCount . '. MySQL returned ' . mysql_error ( ) , E_USER_WARNING ) ; // en ja, trigger_error() ja, want je hebt natuurlijk set_error_handler() gebruikt.. :)
}
else
{
// hij is wel gelukt:
{
// er zijn 0 rijen, doe wat
}
else
{
// toch niet, doe iets anders
}
}
?>
:D I love PHP.
Insane - 04/09/2004 11:49
Onbekend
i LOVE it to!:D
cowbeast - 04/09/2004 12:33
Onbekend
Pff probeer wel eens wat structuur in je if/else spullen te brengen dat is gemakelijker op het te volgen!
DRUNK - 04/09/2004 13:45
PHP gevorderde
nou ja gewoon wat structuur in deze code zou ook geen overbodige luxe zijn...
Gesponsorde links
Dit onderwerp is gesloten .