[PHP]Sesje i przechodzenie miedzy stronami

Odpowiedz Nowy wątek
2006-09-22 17:08

Rejestracja: 13 lat temu

Ostatnio: 11 lat temu

0

Dam tutaj całe 3 kody, zebyscie mogli mi dokladnie pomoc.

STEP1.php

<form action="step2.php" method="POST">
<b>Choose your account identyfication nr.</b> <br>
<select name="id">
<option value="
<?
$code = array('1','2','3','4','5','6','7','8','9','0');
shuffle($code);
srand((float)microtime()*1000000);
for ($i=0; $i <10; $i++)
{
echo $code[$i];
}
?>
"><?
for ($i=0; $i <10; $i++)
{
echo $code[$i];
} 
?>

<option value="
<?
$code = array('1','2','3','4','5','6','7','8','9','0');
shuffle($code);
srand((float)microtime()*1000000);
for ($i=0; $i <10; $i++)
{
echo $code[$i];
}
?>
"><?
for ($i=0; $i <10; $i++)
{
echo $code[$i];
} 
?>

<option value="
<?
$code = array('1','2','3','4','5','6','7','8','9','0');
shuffle($code);
srand((float)microtime()*1000000);
for ($i=0; $i <10; $i++)
{
echo $code[$i];
}
?>
"><?
for ($i=0; $i <10; $i++)
{
echo $code[$i];
} 
?>

<option value="
<?
$code = array('1','2','3','4','5','6','7','8','9','0');
shuffle($code);
srand((float)microtime()*1000000);
for ($i=0; $i <10; $i++)
{
echo $code[$i];
}
?>
"><?
for ($i=0; $i <10; $i++)
{
echo $code[$i];
} 
?>

<option value="
<?
$code = array('1','2','3','4','5','6','7','8','9','0');
shuffle($code);
srand((float)microtime()*1000000);
for ($i=0; $i <10; $i++)
{
echo $code[$i];
}
?>
"><?
for ($i=0; $i <10; $i++)
{
echo $code[$i];
} 
?>
</select>
<br>
<input type="submit" value="Refresh list above" onClick="location.href='step1.php'">
<br>
<br>
<b>Account login name:</b><br>
<input type="text" name="username">
<br><br>

<b>Account password:</b><br>
<input type="password" name="password">
<br>
<br>

<b>Character name:</b><br>
<input type="text" name="charname">
<br>
<br>

<b>Player sex:</b><br>
<input type="radio" name="sex" value="Male">Male
<input type="radio" name="sex" value="Female">Female
<br>
<br>

<b>Choose character profession:</b><br>
<input type="radio" name="voc" value="Wizard">Wizard
<input type="radio" name="voc" value="Paladin">Paladin
<input type="radio" name="voc" value="Warrior">Warrior
<input type="radio" name="voc" value="Merchant">Merchant

<br>
<br>
<input type="submit" value="Create account">
</form>

STEP2.php

<?
$id = $_POST['id'];
$username = $_POST['username'];
$password = $_POST['password'];
$charname = $_POST['charname'];
$sex = $_POST['sex'];
$voc = $_POST['voc'];

echo "<b>You are about to register following account</b>:<br>";
echo "<b>___________________________________________</b><br>";
echo "<b>Your private account ID number</b>: " . $id . "<br>";
echo "<b>Account login</b>: " . $username . "<br>";
echo "<b>Account password</b>: **********<br>";
echo "<b>Character name</b>: " . $charname . "<br>";
echo "<b>Character details</b>: " . $sex . " " . $voc . "<br>";
echo "___________________________________________________<br>";
echo "Registration results:<br>";
echo "____________________<BR>";

mysql_connect('' . $data . '','' . $user . '','' . $pass . '');
mysql_select_db('' . $db . '');

$checkfornickname = "select * from game where username='$username'";
$checkfornicknamesendrequest = mysql_query($checkfornickname);
$amount_0_01 = mysql_num_rows($checkfornicknamesendrequest);
if ($amount_0_01 > 0 || $amount_0_01 == 1)
{
echo "Sorry, but this account cannot be created.<br>Someone already has same username.<br>If you want to report it, use our DATA LOST interface.";
}
else
{
$request = "insert into game (id, username, password, charactername, sex, voc) VALUES ('" . $id . "', '" . $username . "', '" . $password . "', '" . $charname . "', '" . $sex . "', '" . $voc . "')";
$send_request = mysql_query($request);

if (!($send_request))
{
echo '<font color="red">';
echo "WARNING!";
echo '</font>';
echo "<br>System has problems with registering account with provided data.<br>Please try again.<br>If problem will appear again, please contact administrator.";
}
else
{
echo '<font color="green">';
echo "SUCCESS!";
echo "<br>";
echo '</font>';
echo "Account with provided data created successfuly.<br>You may login now!";
}
}
?>

i ostatni plik

MEMBER.PHP

<?
$username = $_POST['username'];
$password = $_POST['password'];

if (!$username || !$password)
{
echo "Please go back and fill all fields again!";
}
else
{
mysql_connect('' . $data . '', '' . $user . '', '' . $pass . '');
mysql_select_db('' . $db . '');

$request = "select * from game where username='$username' and password='$password'";
$send_request = mysql_query($request);
$amount = mysql_num_rows($send_request);
if ($amount < 1 || $amount == 0)
{
echo "This account does not exists.<br>If you want to play, simply click on REGISTER button at right.";
}
else
{
$row = mysql_fetch_array($send_request);
echo '<u>Account details:</u><br>';
echo "Account login: " . $row['username'] . "<br>";
echo "Password: " . $row['password'] . "<br>";
echo "<br>";
echo '<u>Character details:</u><br>';

echo "Name: " . $row['charactername'] . "<br>";
if ($row['marrystatus'] == 1)
{
echo "Spouse name: " . $row['spouse'] . "<br>";
}
$rush = explode(";", $row['marryrequest']);
if ($rush[0] == 1)
{
echo '<font color="green">REQUEST:</font> from <b>' . $rush[1] . '! </b>He/she wants to marry with you!';
echo '<br>If you accept, click on button below<br>';
echo '<form action="accept_marry.php" method="POST">';
echo '<input type="submit" value="Marry with he/she">';
echo '</form>';
}
echo "Level: " . $row['level'] . "<br>";
echo "Experience: " . $row['experience'] . "<br>";

echo "<br>";

echo "<u>Skills details:</u><br>";

echo "Strenght: " . $row['strenght'] . " &nbsp;&nbsp;&nbsp;&nbsp;";
echo "Attack power: " . $row['attackpower'] . "<br>";
echo "Defense: " . $row['defense'] . "<br>";
echo "Mana: " . $row['mana'] . " &nbsp;&nbsp;&nbsp;&nbsp;";
echo "mana points: " . $row['manapts'] . "<br>";
echo "General Skill Power: " . $row['skillpower'] . "<br>";
echo "<br>";
echo "<br>";
echo "<u>Action list:</u><br>";
echo '<form action="marry.php" method="POST">';
echo '<input type="submit" value="Marry with player">';
echo "</form>";

echo '<form action="trade.php" method="POST">';
echo '<input type="submit" value="Trade/give item">';
echo "</form>";

echo '<form action="fight.php" method="POST">';
echo '<input type="submit" value="Go fight!">';
echo "</form>";

echo '<form action="mission.php" method="POST">';
echo '<input type="submit" value="Begin mission!">';
echo "</form>";
echo "<br>";
}
}
?>

Dobra, teraz problem.

Jak zrobic (a wiem, ze trzeba uzyc sesji - TYLKO JAK!) aby uzytkownik mogl przechodzic z linku do linku np. z member.php do npc.php a w npc.php DALEJ by widnialo na gorze: Character name: MaestroS.

Kiedy kliknalby w Monsters, dalej widnialoby Character name: MaestroS.

I nie trzeba by bylo za kazdym razem sie logowac np. zeby kogos poslubic, chodz w wczesniejszym skrypcie sie przeciez zalogowalem.

Jak uzyc i gdzie wrzucic sesje, aby mozna bylo normalnei uzywac wszystkich opcji, logujac sie tylko RAZ?

Bardzo prosze o modyfikacje kodu z sesjami :<

Pozostało 580 znaków

2006-09-22 17:17

Rejestracja: 14 lat temu

Ostatnio: 11 lat temu

2006-09-22 17:33

Rejestracja: 13 lat temu

Ostatnio: 11 lat temu

0

@Valarius
to ze sie tak zapytam, po co jest to forum?
Od podawania linkow do google, zeby sobie poszukac?

ja prosze o pomoc a nie o jakies linki, ktore juz czytalem ;/

i szczerze mowiac, nie mam za duzo czasu, zeby uczyc sie i praktykowac teraz sesje, dlatego zwracam sie z pomoca wlasnie na tym forum ...

Pozostało 580 znaków

2006-09-22 19:15

Rejestracja: 14 lat temu

Ostatnio: 8 lat temu

0

To co dal Ci Valarius i co podobno czytales mozna strescic w paru punktach:

  1. na poczatku skryptu wywolujesz session_start() - ZANIM wyslesz jakikolwiek tekst w odpowiedzi (puste linie w pliku php tez sie licza - sa domyslnie wyrzucane do odpowiedzi) - najlepiej zrobic to w pierwszej linijce skryptu.
  2. Zmienne sesyjne mozesz ustawiac tak: $_SESSION['foo'] = 'bar';
  3. Odczytywac $_SESSION['foo']
  4. Tak jak inne zmienne, sprawdzac czy istnieja - isset($_SESSION['foo'])

To w zasadzie wszystko co trzeba umiec, zeby z sesji korzystac.

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-09-22 19:38

Rejestracja: 17 lat temu

Ostatnio: 9 lat temu

0

a wiem, ze trzeba uzyc sesji - TYLKO JAK!

Taka drobna dygresja - nie trzeba, a można. Jest na to przynajmniej kilka innych sposobów. Mniej lub bardziej wygodnych, mniej lub bardziej elastycznych, ale każdy dobry.


Grunt to uziemienie...

Pozostało 580 znaków

2006-09-22 22:12

Rejestracja: 16 lat temu

Ostatnio: 8 lat temu

0
Adam.Pilorz napisał(a)

a wiem, ze trzeba uzyc sesji - TYLKO JAK!

Taka drobna dygresja - nie trzeba, a można. Jest na to przynajmniej kilka innych sposobów. Mniej lub bardziej wygodnych, mniej lub bardziej elastycznych, ale każdy dobry.

mówisz o sesjach "wbudowanych" w php chyba, bo cokolwiek by się tutaj nie zrobiło to to co wyjdzie można nazwać sesją


Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

2006-09-23 09:11

Rejestracja: 13 lat temu

Ostatnio: 11 lat temu

0

Jezeli tak sie na tym znacie, prosze was! pokazcie nawet na przykladach czy juz wrzuccie te sesje w skrypty ktore podalem, zeby mozna bylo normalnie przechodzic miedzy strnami bez logowania ciaglego!

Bede dozgonnie wdzieczny : (

dla was to tylko kilka sekund (tym bardziej ze dalem skrypty moje) a ja sie doucze na podstawie gotowcow (zreszta tylko tam sie potrafie uczyc) i dzieki wam bede juz tworzyl lepsze skrypty ;<

Pozostało 580 znaków

2006-09-23 09:25

Rejestracja: 14 lat temu

Ostatnio: 8 lat temu

0

Jej, przeciez napisalem... tu masz przyklad:

sesjeStart.php

    session_start();
    $_SESSION['foo']='bar';
    header('Location:sesjeEcho.php');

sesjeEcho.php

    session_start();
    echo $_SESSION['foo'];

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-09-24 01:05

Rejestracja: 18 lat temu

Ostatnio: 11 miesięcy temu

0

@johny_bravo: nie dosc, ze raz lopatologicznie wyjasniles, to jeszcze masz cierpliwosc to samo podawac jeszcze raz :/

szczerze mowiac, nie mam za duzo czasu, zeby uczyc sie

a potem musze poprawiac skrypty zrobione "na zamowienie" w trakcie nauki :/. Dobrze, ze przynajmniej za to mi placa...

w skrocie: kazdy chcialby gotowca, zamiast przeczytac dwie linijki z manuala, czy wpisac w wyszukiwarke tytul topika... lepiej dostac na tacy :/. Tyle ze w takim przypadku wartosciowe posty / ciekawe pytania gina pod sterta forumowego crapu :(


Pozostało 580 znaków

2006-09-24 09:24

Rejestracja: 14 lat temu

Ostatnio: 8 lat temu

0
tomkiewicz napisał(a)

@johny_bravo: nie dosc, ze raz lopatologicznie wyjasniles, to jeszcze masz cierpliwosc to samo podawac jeszcze raz :/

Napisalem jeszcze raz, bo wyjatkowo nie chce mi sie nawet czytac jego skryptu, a co dopiero podawac rozwiazanie na tacy. Tak dobrze to nie ma :) No, a jak tego autor postu nie skuma, no to ma problem...

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0