Hoi PHPers 8-).
Ik heb een tijdje niks van me laten horen, dit omdat ik even ben wezen expirimenteren met PHP (zonder MySQL).
Ik ben nu echter bezig met iets, en heb een vraag:
Als je een registreersysteem hebt, hoe laat je dan de 3 nieuwste gebruikers zien?
Ik weet dat je de hoogste IDs nodig hebt (bijv. 5, 4 en 3) en dat het waarschijnlijk met de COUNT functie (DSC ofzo) moet doen.
Want hij moet de IDs van hoog naar laag tellen.
Maar als je dan gebruikt:
@Lode
Ik heb dat stuk uit een PHP boek gehaald (PHP 5 voor gevorderden).
En nu dit probleem, geen errors maar hij voegt niks toe aan de database:
Dit is m'n script:
<html>
<head>
<title>Gastenboek</title>
</head>
<body>
<center>
Welkom bij mijn Gastenboek!
<hr>
[code]<?php
error_reporting(E_ALL);
$db = mysql_connect("localhost","********","********");
mysql_select_db("**********", $db);
if (isset($_POST['verzonden'])) { // afhandelen
$fouten = array(); // fouten opslaan in een array
if (!isset($_POST["naam"]) OR empty($_POST["naam"])) { // naam valideren
$fouten[] = 'naam';
} else {
$sql = "INSERT INTO
gastenboek (naam)
VALUES ('".mysql_real_escape_string($_POST["naam"])."')
";
}
if (!eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})
$', $_POST['email'])) { // email valideren
$fouten[] = 'email';
} else {
$sql1 = "INSTERT INTO
gastenboek (email)
VALUES ('".mysql_real_escape_string($_POST["email"])."')
";
}
if (!isset($_POST['bericht']) OR empty($_POST["bericht"])) { // bericht valideren
$fouten[] = 'bericht';
} else {
$sql2 = "INSTERT INTO
gastenboek (bericht)
VALUES ('".mysql_real_escape_string($_POST["bericht"])."'))
";
}
if (empty($fouten)) { // dus als de array met de fouten leeg is
// willen we dat graag POSITIEF laten weten
echo "Bericht verzonden!<br>Klik hier om terug te gaan";
} else { // en als het niet gelukt is willen we dat ook laten weten!
echo "Er zijn problemen gevonden voor de volgende velden:<ul>";
foreach ($fouten as $fout) {
echo "<li>$fout</li>\n";
}
echo "</ul>";
}
} // einde van afhandeling
?>
<table>
<form method="post">
<tr><td>Naam:</td><td><input type="text" name="naam"></td></tr>
<tr><td>E-mail:</td><td><input type="text" name="email"></td></tr>
<tr><td>Bericht:</td><td><input type="text" width="50" rows="10" name="bericht"></td></tr>
<tr><td><center><input type="submit" name="verzenden"><input type="reset" name="reset"></center></td></tr>
</form>
</table>
<hr>
<small>Je IP-adress word ook weergegeven bij je bericht!</small>
</center>
</body>
</html>[/code]
Hoe voor ik ze dan uit?
(Sorry, beetje stomme vraag maar ben laatste beetje minder gaan PHPen en probeer ut nu weer op te pakken + incl veel bij te leren..)
Mensen op andere forums zeggen dat er niks klopt van mijn scriptje, dus heb ik een nieuwe gemaakt (die waarschijnlijk nog fouter is):
<html>
<head>
<title>Gastenboek</title>
</head>
<body>
<center>
Welkom bij mijn Gastenboek!
<hr>
[code]<?php
error_reporting(E_ALL);
$db = mysql_connect("localhost","*******","*******");
mysql_select_db("*******", $db);
if (isset($_POST['verzonden'])) { // afhandelen
$fouten = array(); // fouten opslaan in een array
if (!isset($_POST["naam"]) OR empty($_POST["naam"])) { // naam valideren
$fouten[] = 'naam';
}
if (!eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})
$', $_POST['email'])) { // email valideren
$fouten[] = 'email';
}
if (!isset($_POST['bericht']) OR empty($_POST["bericht"])) { // bericht valideren
$fouten[] = 'bericht';
}
if (empty($fouten)) { // dus als de array met de fouten leeg is
// willen we dat graag POSITIEF laten weten
echo "Bericht verzonden!<br>Klik hier om terug te gaan";
} else { // en als het niet gelukt is willen we dat ook laten weten!
echo "Er zijn problemen gevonden voor de volgende velden:<ul>";
foreach ($fouten as $fout) {
echo "<li>$fout</li>\n";
}
echo "</ul>";
}
// einde van afhandeling
?>
<table>
<form method="post">
<tr><td>Naam:</td><td><input type="text" name="naam"></td></tr>
<tr><td>E-mail:</td><td><input type="text" name="email"></td></tr>
<tr><td>Bericht:</td><td><input type="text" width="50" rows="10" name="bericht"></td></tr>
<tr><td><center><input type="submit" name="verzenden"><input type="reset" name="reset"></center></td></tr>
</form>
</table>
<hr>
<small>Je IP-adress word ook weergegeven bij je bericht!</small>
</center>
Maar wat betekend dit:
Warning: ini_set() has been disabled for security reasons in /usr/export/www/vhosts/funnetwork/hosting/frosting/form.php on line 2
?
Dat je host geen ini_set toestaat. Dat is overigens wel de eerste keer dat ik dat meemaak. Maar goed, haal die regel 2 maar weg, dan werkt het ook wel.