Otóż mam taki problem.Chciałem zrobić własne forum i podczas rejestracji kiedy serwer wysyła mail do użytkownika a on w niego kilka pojawia się na stronie następujący błąd
Cytat
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/sites/yoyo.pl/d/i/diablico/weryfikowanie.php on line 10
Weryfikacja konta nie była możliwa.{W5_/{rtZ6m9l}.{
Weryfikacja konta nie była możliwa.{W5_/{rtZ6m9l}.{
Kod odpowiedzialny za rejestrowanie:
Kod
<?php
session_start();
require("konfiguracja.php");
$db = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbdatabase, $db);
if($_POST['submit']) {
if($_POST['password1'] == $_POST['password2']) {
$checksql = "SELECT * FROM uzytkownicy WHERE nazwa_uzytkownika = '" . $_POST['nazwa_uzytkownika'] . "';";
$checkresult = mysql_query($checksql);
$checknumrows = mysql_num_rows($checkresult);
if($checknumrows == 1) {
header("Location: " . $config_basedir . "rejestrowanie.php?error=taken");
}
else {
for($i = 0; $i < 16; $i++) {
$randomstring .= chr(mt_rand(32,126));
}
$verifyurl = "http:www.diablico.yoyo.pl/weryfikowanie.php";
$verifystring = urlencode($randomstring);
$verifyemail = urlencode($_POST['email']);
$validusername = $_POST['nazwa_uzytkownika'];
$sql = "INSERT INTO uzytkownicy(nazwa_uzytkownika, haslo, email, lancuch_weryfikacji, aktywne) VALUES('"
. $_POST['nazwa_uzytkownika']
. "', '" . $_POST['password1']
. "', '" . $_POST['email']
. "', '" . addslashes($randomstring)
. "', 0);";
echo $sql;
mysql_query($sql);
$mail_body=<<<_MAIL_
Witaj $validusername,
W celu weryfikacji nowego konta należy kliknąć poniższy odnośnik:
$verifyurl?email=$verifyemail&verify=$verifystring
_MAIL_;
mail($_POST['email'], $config_forumsname . " Weryfikacja konta użytkownika", $mail_body);
require("naglowek.php");
echo "Odnośnik wysłano pod podany adres e-mail. W celu weryfikacji konta należy kliknąć odnośnik zawarty w wiadomości pocztowej.";
}
}
else {
header("Location: " . $config_basedir . "rejestrowanie.php?error=pass");
}
}
else {
require("naglowek.php");
switch($_GET['error']) {
case "pass":
echo "Brak zgodności haseł!";
break;
case "taken":
echo "Takie konto już istnieje. Proszę podać inne.";
break;
case "no":
echo "Niepoprawne dane logowania!";
break;
}
?>
<h2>Rejestrowanie</h2>
W celu zarejestrowania się na forum <?php echo $config_forumsname; ?> należy wypełnić poniższy formularz.
<form action="<?php echo $SCRIPT_NAME ?>" method="POST">
<table>
<tr>
<td>Nazwa użytkownika</td>
<td><input type="text" name="nazwa_uzytkownika"></td>
</tr>
<tr>
<td>Hasło</td>
<td><input type="password" name="password1"></td>
</tr>
<tr>
<td>Hasło (ponownie)</td>
<td><input type="password" name="password2"></td>
</tr>
<tr>
<td>E-mail</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="Zarejestruj się!"></td>
</tr>
</table>
</form>
<?php
}
require("stopka.php");
?>
session_start();
require("konfiguracja.php");
$db = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbdatabase, $db);
if($_POST['submit']) {
if($_POST['password1'] == $_POST['password2']) {
$checksql = "SELECT * FROM uzytkownicy WHERE nazwa_uzytkownika = '" . $_POST['nazwa_uzytkownika'] . "';";
$checkresult = mysql_query($checksql);
$checknumrows = mysql_num_rows($checkresult);
if($checknumrows == 1) {
header("Location: " . $config_basedir . "rejestrowanie.php?error=taken");
}
else {
for($i = 0; $i < 16; $i++) {
$randomstring .= chr(mt_rand(32,126));
}
$verifyurl = "http:www.diablico.yoyo.pl/weryfikowanie.php";
$verifystring = urlencode($randomstring);
$verifyemail = urlencode($_POST['email']);
$validusername = $_POST['nazwa_uzytkownika'];
$sql = "INSERT INTO uzytkownicy(nazwa_uzytkownika, haslo, email, lancuch_weryfikacji, aktywne) VALUES('"
. $_POST['nazwa_uzytkownika']
. "', '" . $_POST['password1']
. "', '" . $_POST['email']
. "', '" . addslashes($randomstring)
. "', 0);";
echo $sql;
mysql_query($sql);
$mail_body=<<<_MAIL_
Witaj $validusername,
W celu weryfikacji nowego konta należy kliknąć poniższy odnośnik:
$verifyurl?email=$verifyemail&verify=$verifystring
_MAIL_;
mail($_POST['email'], $config_forumsname . " Weryfikacja konta użytkownika", $mail_body);
require("naglowek.php");
echo "Odnośnik wysłano pod podany adres e-mail. W celu weryfikacji konta należy kliknąć odnośnik zawarty w wiadomości pocztowej.";
}
}
else {
header("Location: " . $config_basedir . "rejestrowanie.php?error=pass");
}
}
else {
require("naglowek.php");
switch($_GET['error']) {
case "pass":
echo "Brak zgodności haseł!";
break;
case "taken":
echo "Takie konto już istnieje. Proszę podać inne.";
break;
case "no":
echo "Niepoprawne dane logowania!";
break;
}
?>
<h2>Rejestrowanie</h2>
W celu zarejestrowania się na forum <?php echo $config_forumsname; ?> należy wypełnić poniższy formularz.
<form action="<?php echo $SCRIPT_NAME ?>" method="POST">
<table>
<tr>
<td>Nazwa użytkownika</td>
<td><input type="text" name="nazwa_uzytkownika"></td>
</tr>
<tr>
<td>Hasło</td>
<td><input type="password" name="password1"></td>
</tr>
<tr>
<td>Hasło (ponownie)</td>
<td><input type="password" name="password2"></td>
</tr>
<tr>
<td>E-mail</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="Zarejestruj się!"></td>
</tr>
</table>
</form>
<?php
}
require("stopka.php");
?>
Kod odpowiedzialny za weryfikowanie:
Kod
<?php
require("naglowek.php");
$verifystring = urldecode($_GET['verify']);
$verifyemail = urldecode($_GET['email']);
$sql = "SELECT id FROM uzytkownicy WHERE lancuch_weryfikacji = '" . $verifystring . "' AND email = '" . $verifyemail . "';";
$result = mysql_query($sql);
$numrows = mysql_num_rows($result);
if($numrows == 1) {
$row = mysql_fetch_assoc($result);
$sql = "UPDATE uzytkownicy SET aktywne = 1 WHERE id = " . $row['id'];
$result = mysql_query($sql);
echo "Konto zostało sprawdzone. Można się <a href='logowanie.php'>zalogować</a>";
}
else {
echo "Weryfikacja konta nie była możliwa.";
}
echo $verifystring;
require("stopka.php");
?>
require("naglowek.php");
$verifystring = urldecode($_GET['verify']);
$verifyemail = urldecode($_GET['email']);
$sql = "SELECT id FROM uzytkownicy WHERE lancuch_weryfikacji = '" . $verifystring . "' AND email = '" . $verifyemail . "';";
$result = mysql_query($sql);
$numrows = mysql_num_rows($result);
if($numrows == 1) {
$row = mysql_fetch_assoc($result);
$sql = "UPDATE uzytkownicy SET aktywne = 1 WHERE id = " . $row['id'];
$result = mysql_query($sql);
echo "Konto zostało sprawdzone. Można się <a href='logowanie.php'>zalogować</a>";
}
else {
echo "Weryfikacja konta nie była możliwa.";
}
echo $verifystring;
require("stopka.php");
?>
Za odpowiedzi z góry dziękuje.

