if werkt niet..
Kan iemand mij uitleggen waarom mij if niet werkt?
Ook zou ik graag een min nummer invoer inbouwen.
Phillip
Code (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
27
28
29
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
<?php
require("dbfeatures.php");
$verbinding = connectdatabase();
opendatabase($verbinding);
$addquery = "INSERT INTO phonebook (name, nr) VALUES ('".mysql_real_escape_string($_REQUEST['addname'])."','".mysql_real_escape_string($_REQUEST['addnr'])."')";
connectdatabase();
if (is_numeric($_REQUEST['addnr']))
echo "Contact is added";
elseif (is_numeric($_REQUEST['addnr']))
mysql_query($addquery, $verbinding) or die (mysql_error() );
else
echo "Please enter a valid number";
mysql_close($verbinding);
header('Refresh: 2; url=index.html');
?>
require("dbfeatures.php");
$verbinding = connectdatabase();
opendatabase($verbinding);
$addquery = "INSERT INTO phonebook (name, nr) VALUES ('".mysql_real_escape_string($_REQUEST['addname'])."','".mysql_real_escape_string($_REQUEST['addnr'])."')";
connectdatabase();
if (is_numeric($_REQUEST['addnr']))
echo "Contact is added";
elseif (is_numeric($_REQUEST['addnr']))
mysql_query($addquery, $verbinding) or die (mysql_error() );
else
echo "Please enter a valid number";
mysql_close($verbinding);
header('Refresh: 2; url=index.html');
?>
Wat gebeurd er dan? En kies $_GET of $_POST geen $_REQUEST gebruiken.
Bedankt, hij werkt nu.
Die blokhaken moet ik dus gebruiken om aan te geven dat meerdere regels bij elkaar horen.
Weet je ook nog hoe ik kan programmeren hoe de gebruiken minimaal 3 cijfers moet invullen en max 12?
Phillip
Toevoeging op 17/11/2010 10:53:11:
Karl Karl waarom zou ik geen $_REQUEST gebruiken?
Phillip
Code (php)
1
2
3
4
5
6
2
3
4
5
6
if($_REQUEST['addnr']> 3 && $_REQUEST['addnr'] < 12) {
// voer code uit
}
else {
// fout
}
// voer code uit
}
else {
// fout
}
En wat karl karl al zei, kies voor $_GET[] of $_POST[] ipv $_REQUEST[]
Toevoeging op 17/11/2010 10:55:42:
$_REQUEST[] is zowel $_POST als $_GET, en dat kan misschien problemen veroorzaken.
Daarom kan je beter POST of GET gebruiken.
Oke bedankt, ik heb het aangepast..
Als ik nu een nummer toevoeg dan geeft die aan: Please enter a valid number
Terwijl ik dan gewoon een nummer invoer...
Staat er misschien ergens een puntje ofzo verkeerd?...
Code (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
27
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
<?php
require("dbfeatures.php");
$dbConnection= connectdatabase();
opendatabase($dbConnection);
$addquery = "INSERT INTO phonebook (name, nr) VALUES ('".mysql_real_escape_string($_POST['addname'])."','".mysql_real_escape_string($_POST['addnr'])."')";
connectdatabase();
if (is_numeric($_POST['addnr']) && ($_POST['addnr'])> 3 && ($_POST['addnr']) < 12)
{
echo "Contact is added";
mysql_query($addquery, $connection) or die (mysql_error() );
}
else
echo "Please enter a valid number";
mysql_close($dbConnection);
header('Refresh: 2; url=index.html');
?>
require("dbfeatures.php");
$dbConnection= connectdatabase();
opendatabase($dbConnection);
$addquery = "INSERT INTO phonebook (name, nr) VALUES ('".mysql_real_escape_string($_POST['addname'])."','".mysql_real_escape_string($_POST['addnr'])."')";
connectdatabase();
if (is_numeric($_POST['addnr']) && ($_POST['addnr'])> 3 && ($_POST['addnr']) < 12)
{
echo "Contact is added";
mysql_query($addquery, $connection) or die (mysql_error() );
}
else
echo "Please enter a valid number";
mysql_close($dbConnection);
header('Refresh: 2; url=index.html');
?>
Gewijzigd op 17/11/2010 11:24:17 door Phillip Mango
Wat je nu doet is het volgende:
Je kijkt of hij een nummer, groter dan 3 en kleiner dan 12 is. Wanneer dat allemaal goed is voegt hij hem toe, of anders zegt hij dat hij geen nummer is.
Ik zou eerst kijken of hij een nummer is, wanneer hij dat niet is geef je een error en anders gaat hij verder. Dan in de volgende stap kijk je of hij de juiste lengte heeft.
edit: Ik ben ook iets vergeten trouwens. Je moet strlen($_POST['addnr'])> 3 doen.
Toevoeging op 17/11/2010 11:25:07:
Ik zou er dus dit van maken:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
if (is_numeric($_POST['addnr']))
{
if(strlen($_POST['addnr']) > 3 && strlen($_POST['addnr']) < 12) {
$echo "Contact is added";
mysql_query($addquery, $connection) or die (mysql_error() );
}
else echo 'lengte fout';
}
else echo "Please enter a valid number";
?>
if (is_numeric($_POST['addnr']))
{
if(strlen($_POST['addnr']) > 3 && strlen($_POST['addnr']) < 12) {
$echo "Contact is added";
mysql_query($addquery, $connection) or die (mysql_error() );
}
else echo 'lengte fout';
}
else echo "Please enter a valid number";
?>
Maar idd, hij werkt nu.
Thanks,
Phillip
Graag gedaan :)
Nu krijg ik namelijk de melding: Duplicate entry
Phillip
Phillip Mango op 17/11/2010 16:11:00:
Hoe bouw ik eigenlijk een functie in die controleert of het nummer al bestaat in de database?
Nu krijg ik namelijk de melding: Duplicate entry
Phillip
Nu krijg ik namelijk de melding: Duplicate entry
Phillip
Dat is ook correct, de enige manier waarop je dat dient te controleren
het is actie dan reactie en niet andersom, want dat gaat gewoonweg niet.
En hoe doe ik dat?
Gewoon een select query doen op het betreffende nummer. Als je een resultaat terugkrijgt dan bestaat het nummer al. Geen resultaat? Dan bestaat het nummer niet.
Ik heb nu dit.. maar ik krijg de volgende fout: Fatal error: Call to undefined function mysql_errorno() in /var/www/http/add.php on line 29 (13 zonder HTML)
Dit is mijn PHP script:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="add.css" />
</head>
<body>
<div id="divadd">
Code (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
27
28
29
30
31
32
33
34
35
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
require("dbfeatures.php");
$dbConnection = connectdatabase();
opendatabase($dbConnection);
$addquery = "INSERT INTO phonebook (name, nr) VALUES ('".mysql_real_escape_string($_POST['addname'])."','".mysql_real_escape_string($_POST['addnr'])."')";
connectdatabase();
if (mysql_errorno() == 1062)
{
if (is_numeric($_POST['addnr']))
{
if (strlen($_POST['addnr']) > 7 && strlen($_POST['addnr']) < 14)
{
echo "Contact is added";
mysql_query($addquery, $dbConnection) or die (mysql_error() );
}
else
echo 'The number should be between 7 and 14 characters long, contact not added! We will sent you now back to the home page.';
}
else
echo 'Please enter a valid number, contact not added! We will sent you now back to the home page.';
}
else
echo 'This number is already in use';
mysql_close($dbConnection);
header('Refresh: 8; url=index.html');
?>
require("dbfeatures.php");
$dbConnection = connectdatabase();
opendatabase($dbConnection);
$addquery = "INSERT INTO phonebook (name, nr) VALUES ('".mysql_real_escape_string($_POST['addname'])."','".mysql_real_escape_string($_POST['addnr'])."')";
connectdatabase();
if (mysql_errorno() == 1062)
{
if (is_numeric($_POST['addnr']))
{
if (strlen($_POST['addnr']) > 7 && strlen($_POST['addnr']) < 14)
{
echo "Contact is added";
mysql_query($addquery, $dbConnection) or die (mysql_error() );
}
else
echo 'The number should be between 7 and 14 characters long, contact not added! We will sent you now back to the home page.';
}
else
echo 'Please enter a valid number, contact not added! We will sent you now back to the home page.';
}
else
echo 'This number is already in use';
mysql_close($dbConnection);
header('Refresh: 8; url=index.html');
?>
</div>
</body>
</html>
Toevoeging op 18/11/2010 10:28:53:
Hallo iedereen,
Ik heb de oplossing:
Code (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
27
28
29
30
31
32
33
34
35
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
require("dbfeatures.php");
$dbConnection = connectdatabase();
opendatabase($dbConnection);
$addquery = "INSERT INTO phonebook (name, nr) VALUES ('".mysql_real_escape_string($_POST['addname'])."','".mysql_real_escape_string($_POST['addnr'])."')";
connectdatabase();
if (mysql_errno() == 1062)
{
if (is_numeric($_POST['addnr']))
{
if (strlen($_POST['addnr']) > 7 && strlen($_POST['addnr']) < 14)
{
echo "Congratulations! Contact is added. We will sent you now back to the home page";
mysql_query($addquery, $dbConnection) or die (mysql_error() );
}
else
echo 'The number should be between 7 and 14 characters long, contact not added! We will sent you now back to the home page.';
}
else
echo 'Please enter a valid number, contact not added! We will sent you now back to the home page.';
}
else
echo 'This number is already in use, contact not added! We will sent you now back to the home page.';
mysql_close($dbConnection);
header('Refresh: 7; url=index.html');
?>
require("dbfeatures.php");
$dbConnection = connectdatabase();
opendatabase($dbConnection);
$addquery = "INSERT INTO phonebook (name, nr) VALUES ('".mysql_real_escape_string($_POST['addname'])."','".mysql_real_escape_string($_POST['addnr'])."')";
connectdatabase();
if (mysql_errno() == 1062)
{
if (is_numeric($_POST['addnr']))
{
if (strlen($_POST['addnr']) > 7 && strlen($_POST['addnr']) < 14)
{
echo "Congratulations! Contact is added. We will sent you now back to the home page";
mysql_query($addquery, $dbConnection) or die (mysql_error() );
}
else
echo 'The number should be between 7 and 14 characters long, contact not added! We will sent you now back to the home page.';
}
else
echo 'Please enter a valid number, contact not added! We will sent you now back to the home page.';
}
else
echo 'This number is already in use, contact not added! We will sent you now back to the home page.';
mysql_close($dbConnection);
header('Refresh: 7; url=index.html');
?>
Toevoeging op 18/11/2010 10:32:38:
Alleen schijnt de header rederect niet goed te zijn...
Refresh schijnt niet te kloppen, maar het werkt wel.
Iemand een ide?
En weet iemand hoe ik dit php script op de één pagina afhandel.
Nu link ik namelijk door naar deze pagina, maar dat is natuurlijk niet zo netjes.
Mijn invul pagina ziet er als volgt uit:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Home</title>
<meta http-equiv="Content-Language" content="en" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="body.css" />
<link rel="stylesheet" type="text/css" href="home.css" />
<link rel="stylesheet" type="text/css" href="searchbar.css" />
<link rel="stylesheet" type="text/css" href="buttons.css" />
<script type="text/javascript" src="formfocus.js"></script>
</head>
<body>
<div id="divpage">
<div id="divlogo">
<img src="/logo.png" alt="Image not available" id="logo" />
</div>
<div id="divsearch">
<form action="results.php" name="search" method="post">
<input type="text" name="searchbar" id="searchbar" /><input type="submit" value="Search" id="searchbutton" />
</form>
</div>
<div>
<hr id="line"/>
</div>
<div id="divadd">
<form action="add.php" name="add" method="post">
Name:<input type="text" name="addname" id="addname" maxlength="10" />Number:<input type="text" name="addnr" id="addnr" maxlength="12" /><input type="submit" value="Add" id="addbutton" />
</form>
</div>
</div>
</body>
</html>
Gewijzigd op 18/11/2010 09:42:32 door Phillip Mango
Gewijzigd op 18/11/2010 10:56:47 door Jel le
en bb-codes is wel zo handig