Nieuw lid |
|
Hallo mensen,
Ik ben een script aan het schrijven voor een ActivatieMail, hiermee bedoel ik dat als mensen zich aanmelden op een website er eerst het aangemaakte account geactiveerd moet worden. Ik heb hier lang naar gekeken maar ik kom maar niet achter de fout!!!
Ik hoop dat iemand mij hierbij kan helpen.
De foutmelding :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /voorbeel/voorbeeldformulier.php on line 45
Helaas u kunt dit profiel niet aanmaken, er bestaat al een profiel met dezelfde username...
Het script :
<?
// als het formulier nog niet ingevuld is
if(!$_POST['submit'])
{
// Alle gegevens zijn ingevuld. Dus kunnen de gegevens naar de database verzonden worden
include("connect.php");
// Met het volgende script wordt een code gegenereerd van 10 karakters. Deze code dient als activatie code..
$lengte = "10";
function make_value($lengte){
$value = "";
mt_srand((double) microtime() * 1000000);
while (strlen($value) < $lengte){
$kiezen = chr(mt_rand(0,255));
if (eregi("^[a-z0-9]$", $kiezen)){
$value = $value.$kiezen;
}
}
return $value;
}
$value = md5(make_value($lengte));
// Dezeheader zorgt ervor dat jou gegevens beschikbaar zijn voor de persoon die een activerings email verzonden wordt
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text;\r\n\tcharset=\"iso-8859-1\"\r\n";
$headers .= "From: \"Joop\" <joop@hotmail.com>\r\n";
// Dit is het bericht dat de persoon in zijn activerings mailtje krijgt
$bericht =
"Beste $voorn,
Bedankt voor het aanmaken van uw profiel. Om deze te activeren dient u op onderstaande link te klikken.
http://voorbeeld.voorbeeld_profiel.php?value=$value
Met vriendelijke groet,
Joop
Mocht deze email ten onrechte naar u verstuurd zijn, neem dan contact op met onze webmaster";
// Kijken of er al een profiel bestaat met dezelfde usename
$result = mysql_query("SELECT inlogn FROM klant WHERE inlogn = '$inlogn'");
if(mysql_num_rows($result) != "0")
{
echo "Helaas u kunt dit profiel niet aanmaken, er bestaat al een profiel met dezelfde username...";
}
else
{
$passw = md5($passw);
// Gegevens in de temp_profiel tabel zetten
$query="INSERT INTO klantactivering (inlogn, voorn, achtern, adres, postcode, woonpl, geboorte, werkzaam, functie, email) VALUES ('$inlogn', $voorn', '$achtern', '$adres', '$postcode', '$woonpl', '$geboorte', '$werkzaam', '$functie', '$email')";
mysql_query($query) or die(mysql_error());
mail($email, "Activerings mail", $bericht, $headers);
echo "Bedankt voor het aanmaken van u profiel,";
echo "<br>";
echo "Er is een activatie email naar u gestuurd. Door de daarin staande link te openen wordt u profiel geactiveerd!";
}
}
?>
<? // als het formulier nog niet ingevuld is if(!$_POST['submit']) { // Alle gegevens zijn ingevuld. Dus kunnen de gegevens naar de database verzonden worden include("connect.php"); // Met het volgende script wordt een code gegenereerd van 10 karakters. Deze code dient als activatie code.. $lengte = "10"; function make_value($lengte){ $value = ""; while (strlen($value) < $lengte){ if (eregi("^[a-z0-9]$", $kiezen)){ $value = $value.$kiezen; } } return $value; } $value = md5(make_value ($lengte)); // Dezeheader zorgt ervor dat jou gegevens beschikbaar zijn voor de persoon die een activerings email verzonden wordt $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text;\r\n\tcharset=\"iso-8859-1\"\r\n"; $headers .= "From: \"Joop\" <joop@hotmail.com>\r\n"; // Dit is het bericht dat de persoon in zijn activerings mailtje krijgt $bericht = "Beste $voorn, Bedankt voor het aanmaken van uw profiel. Om deze te activeren dient u op onderstaande link te klikken. http://voorbeeld.voorbeeld_profiel.php?value=$value Met vriendelijke groet, Joop Mocht deze email ten onrechte naar u verstuurd zijn, neem dan contact op met onze webmaster"; // Kijken of er al een profiel bestaat met dezelfde usename $result = mysql_query("SELECT inlogn FROM klant WHERE inlogn = '$inlogn'"); { echo "Helaas u kunt dit profiel niet aanmaken, er bestaat al een profiel met dezelfde username..."; } else { // Gegevens in de temp_profiel tabel zetten $query="INSERT INTO klantactivering (inlogn, voorn, achtern, adres, postcode, woonpl, geboorte, werkzaam, functie, email) VALUES ('$inlogn', $voorn', '$achtern', '$adres', '$postcode', '$woonpl', '$geboorte', '$werkzaam', '$functie', '$email')"; mail($email, "Activerings mail", $bericht, $headers); echo "Bedankt voor het aanmaken van u profiel,"; echo "Er is een activatie email naar u gestuurd. Door de daarin staande link te openen wordt u profiel geactiveerd!"; } } ?>
Ik heb ervoor gekozen om 2 databases aan te maken, één voor een tijdelijke opslag waar de eerste aanmelding in komt te staan en de tweede is ervoor nadat er op de activatielink is geklikt want dan komen de gegevens in de juiste database zodat er ingelogd kan worden.
Alvast bedankt voor jullie hulp.
Groeten,
GEE
vinTage edit, scripts tussen [ code ] tags aub...
|