
I chciałem zrobić coś takiego w formularzu rejestracji: że jeśli użytkownik się zarejestruje na start dostanie jakieś zasoby surowców. I przy okazji tego punktu chcę korzystać z dwóch tabel: użytkownicy gdzie dodaje mi się login, hasło, mail, serwer oraz tabeli zasoby_użytkownika. Udało mi się okodować dodwanie użytkownika do bazy ale nie wiem jak równocześnie dodać mu surowce. Może wy mi pomożecie?
O to kod z formularza rejestracji:
<?php
session_start();
if (isset($_POST['email']))
{
//Udana walidacja
$ok=true;
//sprawdzenie nicka i długości
$nick=$_POST['nick'];
if((strlen($nick)<3||(strlen($nick)>20)))
{
$ok=false;
$_SESSION['error_nick']="Nick powinien posiadać od 3 do 20 znaków";
}
//sprawdzanie hasła
$haslo = $_POST['haslo'];
$haslo1 = $_POST['haslo1'];
if(strlen($haslo)<8)
{
$ok=false;
$_SESSION['error_haslo']="Hasło powinno mieć minimum 8 znaków";
}
if($haslo!=$haslo1)
{
$ok=false;
$_SESSION['error_haslo']="Hasła nie są identyczne";
}
$haslo_md5=md5($_POST['haslo']);
//sprawdzanie e-maila
$email=$_POST['email'];
$emailspr= filter_var($email,FILTER_SANITIZE_EMAIL);
if(filter_var($emailspr,FILTER_VALIDATE_EMAIL)==false || ($emailspr!=$email))
{
$ok=false;
$S_SESSION['error_email']="Podaj poprawny adres e-mail,np. pawel.hadzinski@gmail.com";
}
$serwer=$_POST['serwer'];
require_once "polaczenie.php";
mysqli_report(MYSQLI_REPORT_STRICT);
try
{
$polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
if ($polaczenie->connect_errno!=0)
{
throw new Exception(mysqli_connect_errno());
}
else
{
if ($ok==true)
{
if ($polaczenie->query("INSERT INTO uzytkownicy VALUES (NULL, '$nick', '$haslo_md5', '$email', 7 , $serwer )"))
{
$_SESSION['udanarejestracja']=true;
header('Location: powitanie.php');
}
else
{
throw new Exception($polaczenie->error);
}
}
$polaczenie->close();
}
}
catch(Exception $e)
{
echo '<span style="color:red;">Błąd serwera! Przepraszamy za niedogodności i prosimy o rejestrację w innym terminie!</span>';
}
}
?>
<!DOCTYPE HTML>
<html lang="pl">
<head>
<meta charset="utf-8"/>
<title>projekt- zakładanie konta</title>
<style>
.error
{
color:red;
margin-top: 20px;
margin-bottom 20px;
}
</style>
</head>
<body>
<form method="post">
Nick: <br/> <input type="text" name="nick" /><br/>
<?php
if(isset($_SESSION['error_nick']))
{
echo'<div class="error">'.$_SESSION['error_nick'].'</div>';
unset($_SESSION['error_nick']);
}
?>
Hasło: <br/> <input type="password" name="haslo" /><br/>
<?php
if(isset($_SESSION['error_haslo']))
{
echo'<div class="error">'.$_SESSION['error_haslo'].'</div>';
unset($_SESSION['error_haslo']);
}
?>
Powtórz Hasło: <br/> <input type="password" name="haslo1" /><br/>
E-mail: <br/> <input type="text" name="email" /><br/>
<?php
if(isset($S_SESSION['error_email']))
{
echo'<div class="error">'.$S_SESSION['error_email'].'</div>';
unset($S_SESSION['error_email']);
}
?>
Serwer: <br/> <input type="text" name="serwer" /><br/>
<br></br>
<input type="submit" value="Zarejestruj" />
</form>
</body>
</html>
dodanie rekordu następuje w tej instrukcji:
if ($ok==true)
{
if ($polaczenie->query("INSERT INTO uzytkownicy VALUES (NULL, '$nick', '$haslo_md5', '$email', 7 , $serwer )"))
{
$_SESSION['udanarejestracja']=true;
header('Location: powitanie.php');
}
else
{
throw new Exception($polaczenie->error);
}
}
i domyślam się, że dodanie rekordu do drugiej bazy powinno odbyć się między zmienną sesyjną a headerem ale nie wiem jak to okodować. Proszę o pomoc.
Nikt nie pomoże?