[PHP]Sesje i przechodzenie miedzy stronami

Odpowiedz Nowy wątek
2006-09-22 17:08
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
2006-09-22 17:33
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
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
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
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
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
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
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
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
Liczba odpowiedzi na stronę

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