Hallo iedereen.

Kan iemand mij uitleggen waarom mij if niet werkt?
Ook zou ik graag een min nummer invoer inbouwen.

Phillip

<?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');

?>
Maak dat er is van:

if (is_numeric($_REQUEST['addnr'])) {
    echo "Contact is added";
    mysql_query($addquery, $verbinding) or die (mysql_error() );
}
else echo "Please enter a valid number";
Wat gebeurd er dan? En kies $_GET of $_POST geen $_REQUEST gebruiken.
Heej Jel le,

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

[size=xsmall]Toevoeging op 17/11/2010 10:53:11:[/size]

Karl Karl waarom zou ik geen $_REQUEST gebruiken?

Phillip

if($_REQUEST['addnr']> 3 && $_REQUEST['addnr'] < 12) {
    // voer code uit
}
else {
    // fout
}


En wat karl karl al zei, kies voor $_GET[] of $_POST[] ipv $_REQUEST[]

[size=xsmall]Toevoeging op 17/11/2010 10:55:42:[/size]

$_REQUEST[] is zowel $_POST als $_GET, en dat kan misschien problemen veroorzaken.
Daarom kan je beter POST of GET gebruiken.
Heej Jel le,

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?...

<?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');

?>
Je hebt iets fout.
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.

[size=xsmall]Toevoeging op 17/11/2010 11:25:07:[/size]

Ik zou er dus dit van maken:

<?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";
?>
Dat zou inderdaad ook kunnen, je zou dan inderdaad exacte error kunnen weergeven wat er fout gaat..

Maar idd, hij werkt nu.

Thanks,
Phillip
Graag gedaan :)
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
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


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.

Reageren