PSResource
Gebruiker
- Lid geworden
- 27 mrt 2007
- Berichten
- 69
Hallo,
Ik heb weer een vraag hoor. Als ik mysql_num_rows in een script zet dan krijg ik deze warning:
Deze warning krijg ik altijd, ook als het gewoon goed geprogrammeerd is(volgens mij). Ik zou even het script posten waar ik dat heb:
registreer.php
Ik zou echt niet weten wat er fout is. Ik heb ook al in andere topics gekeken bij mensen die hetzelfde hadden, maar daar kwam het door fout programmeren. Dat ik mijn script niet kon vinden. Is het misschien een instelling in de php.ini file? Nee, is er dan een andere functie die hetzelfde kan?
Kan jij de fout vinden?
Alvast bedankt!
Ik heb weer een vraag hoor. Als ik mysql_num_rows in een script zet dan krijg ik deze warning:
Code:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/robin/pslogon/new/registreer.php on line 76
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/robin/pslogon/new/registreer.php on line 80
Deze warning krijg ik altijd, ook als het gewoon goed geprogrammeerd is(volgens mij). Ik zou even het script posten waar ik dat heb:
registreer.php
Code:
<?
include("config.php");
?>
<html>
<head>
<title>Registreer</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<?
function makekey($num)
{
// genereer het random paswoord
mt_srand((double)microtime()*1000000);
// loop totdat het $pass(woord) dezelfde lengte heeft als $num
while (strlen($pass) <= $num)
{
$i = chr(mt_rand (0,255));
if (eregi("^[a-z0-9]$", $i))
{
$pass = $pass.$i;
}
}
// return het random paswoord
return ($pass);
}
$activatie_url= "http://ltech001.speed.planet.nl/robin/pslogon";
$key = makekey(5);
$slashed_username = addslashes($_POST['username']);
$slashed_email = addslashes($_POST['email']);
if($_POST['registreer'])
{
$res_1 = mysql_query("SELECT * FROM gebruikers WHERE username='".$slashed_username."'") or die(mysql_error());
$res_2 = mysql_query("SELECT * FROM gebruikers WHERE email='".$slashed_email."'") or die(mysql_error());
$check_email = check_mail($_POST['email']);
$res = mysql_query("SELECT * FROM users WHERE name='".$naam."'") or die(mysql_error());
}
if($_POST['username'] == "" || $_POST['password'] == "" || $_POST['password2'] == "" || $_POST['recv'] == "" || $_POST['reca'] == "" || $_POST['email'] == "" || $_POST['password'] !== $_POST['password2'] || mysql_num_rows($username_query) >= 1 || mysql_num_rows($email_query) >= 1 || strlen($_POST['password']) < 6 || strlen($_POST['username']) < 6 || strlen($_POST['password']) > 40 || strlen($_POST['username']) > 40)
{
echo "<a href=\"javascript:history.back(-1)\">Terug</a><br><br>";
echo "<ol>";
if($_POST['username'] == "")
{
echo "<li>Bij <b>USERNAME</b> is niks ingevuld</li>";
}
if($_POST['password'] == "")
{
echo "<li>Bij <b>PASSWORD</b> is niks ingevuld</li>";
}
if($_POST['password2'] == "")
{
echo "<li>Bij <b>PASSWORD [Bevestiging]</b> is niks ingevuld</li>";
}
if($_POST['recq'] == "")
{
echo "<li>Bij <b>RECOVERY VRAAG</b> is niks ingevuld</li>";
}
if($_POST['reca'] == "")
{
echo "<li>Bij <b>RECOVERY ANTWOORD</b> is niks ingevuld</li>";
}
if($_POST['email'] == "")
{
echo "<li>Bij <b>EMAIL</b> is niks ingevuld</li>";
}
if($_POST['password'] !== $_POST['password2'])
{
echo "<li>De <b>PASSWORDS</b> zijn niet gelijk</li>";
}
if (mysql_num_rows($res_1) != 0)
{
echo "<li>De <b>USERNAME</b> is al in gebruik</li>";
}
if (mysql_num_rows($res_2) != 0)
{
echo "<li>De <b>EMAIL</b> is al geregistreerd</li>";
}
if(strlen($_POST['password']) < 6)
{
echo "<li><b>PASSWORD</b> is minder dan 6 tekens</li>";
}
if(strlen($_POST['username']) < 6)
{
echo "<li><b>USERNAME</b> is minder dan 6 tekens</li>";
}
if(strlen($_POST['password']) > 40)
{
echo "<li><b>PASSWORD</b> is meer dan 40 tekens</li>";
}
if(strlen($_POST['username']) > 40)
{
echo "<li><b>USERNAME</b> is meer dan 40 tekens</li>";
}
echo "</ol>";
}
else
{
$username = addslashes($_POST['username']);
$md5_ww = md5(md5(md5($_POST['password'])));
$email = addslashes($_POST['email']);
$md5_reca = md5($_POST['reca']);
$status = "n";
$sql = "INSERT INTO `inlogsysteem` (`username`, `password`, `email`, `recovery_vraag`, `recovery_antwoord`, `status`) VALUES ('".$username."','".$md5_ww."','".$email."','".$_POST['recv']."','".$md5_reca."','".$status."')";
$res = mysql_query ($sql);
}
if(!$res)
{
$res= mysql_query ($sql);
}
else
{
$aan = $HTTP_POST_VARS[email];
$subject = "Account activatie PSResource";
$van = "Webmaster PSResource <psresource@gmail.com>";
$bericht = "===========================================\n";
$bericht .= "Account activeren\n";
$bericht .= "===========================================\n\n";
$bericht .= "Uw account is aangemaakt. Het moet alleen nog even \n";
$bericht .= "geactiveerd worden.\n\n";
$bericht .= "Uw login naam: $HTTP_POST_VARS[username]\n";
$bericht .= "Uw wachtwoord: $HTTP_POST_VARS[password]\n\n";
$bericht .= "Uw recovery vraag: $HTTP_POST_VARS[recv]\n";
$bericht .= "Uw recovery antwoord: $HTTP_POST_VARS[reca]\n\n";
$bericht .= "Uw wachtwoord is encrypted opgeslagen en kan \n";
$bericht .= "niet worden opgevragen. Onthoudt u uw wachtwoord daarom goed \n";
$bericht .= "en schrijf het op als het nodig is.\n";
$bericht .= "Bent u uw wachtwoord toch vergeten dan kunt u met de recovery vraag\n";
$bericht .= "een nieuw wachtwoord opvragen. Uw recovery vraag en antwoord kunt u\n";
$bericht .= "hier boven vinden.\n";
$bericht .= "Uw recovery antwoord is ook encrypted opgeslagen en kan dus\n";
$bericht .= "ook niet worden opgevraagd.\n\n";
$bericht .= "Activatie URL:\n";
$bericht .= "$activatie_url/activeren.php?email=$aan&key=$key\n\n";
$bericht .= "Bedankt voor het registreren en veel plezier op de site!\n\n";
$bericht .= "===========================================\n";
$bericht .= "Einde automatisch gegenereerde bericht\n";
$bericht .= "===========================================";
(mail($aan, $subject, $bericht, "From: $van"));
}
// kijk of de e-mail verstuurd kan worden
if (mail($aan, $subject, $bericht, "From:".$van))
{
echo "<p>Uw account is aangemaakt maar u kunt nog niet inloggen.</p>";
echo "<p>Er is een bevestigings e-mail gestuurd met een URL adres. U moet uw ";
echo "account eerst activeren voordat u kunt inloggen.</p>";
}
// als het e-mail niet verstuurd kan worden, geef dan een error bericht
if (!mail($aan, $subject, $bericht, "From:".$van))
{
echo "<p>Uw account is aangemaakt maar er kon geen e-mail verstuurd worden.</p>";
echo "<p>Probeert u het opnieuw. Krijgt u dan nog steeds niet de melding ";
echo "dat er een activatie e-mail is gestuurd, neemt u dan contact met ons op.</p>";
}
ob_end_flush();
?>
Ik zou echt niet weten wat er fout is. Ik heb ook al in andere topics gekeken bij mensen die hetzelfde hadden, maar daar kwam het door fout programmeren. Dat ik mijn script niet kon vinden. Is het misschien een instelling in de php.ini file? Nee, is er dan een andere functie die hetzelfde kan?
Kan jij de fout vinden?
Alvast bedankt!