Запазване при рефреш.

Dizasterr

Registered
Здравейте! Току - що си написах този код за търсене на потребители с някои екстри. Как мога да направя, така че след рефреш пак да показва тази информация за търсения потребител, защото сега като дам рефреш и се показва информацията за текущия потребител, които се е логнал. И да са равни двете променливи пак изкарва, че този който е търсил е победител. Ето и кода:


<?php
require_once("../connection.php");
mysql_query("SET NAMES cp1251");

$logged=$_SESSION['login'];
$search=$_REQUEST['user'];
$wmoney=rand(500, 2500);
$defmoney=rand(300, 700);
$dsoldiers=rand(0, 4);
$ddsoldiers=rand(1, 6);
$esoldiers=rand(0,3);

if(empty($search)) {
echo "Трябва да въведете потребителско име за търсене!";
}

$result=mysql_query("SELECT * FROM `users` WHERE `user` LIKE '%$search%'") or die(mysql_error());
$a=mysql_fetch_assoc($result);
echo $a['user'];
echo "<br/>";
echo $a['race'];
echo "<br/>";
echo $a['attack'];
echo "<br/>";
echo $a['defence'];
echo "<br/>";
echo $a['email'];
echo "<form method='post' action=''>";
echo "<input type='submit' name='attack'>";
echo "</form>";


$select=mysql_query("SELECT * FROM `users` WHERE `user`='$logged'") or die(mysql_error());
$r=mysql_fetch_assoc($select);
$lattack=$r['attack'];
$lmoney=$r['money'];
$tot=$lmoney + $wmoney;
$lid=$r['id'];
$select=mysql_query("SELECT * FROM `army` WHERE `user_id`='$lid'") or die(mysql_error());
$b=mysql_fetch_assoc($select);
$apblaster=$b['pblaster'];
$totsoldiers=$apblaster - $dsoldiers;

$sql=mysql_query("SELECT * FROM `users` WHERE `user`='$search'") or die(mysql_error());
$a=mysql_fetch_assoc($sql);
$rdefence=$a['defence'];
$rmoney=$a['money'];
$sid=$a['id'];
$total=$rmoney + $defmoney;
$select=mysql_query("SELECT * FROM `army` WHERE `user_id`='$lid'") or die(mysql_error());
$c=mysql_fetch_assoc($select);
$cpblaster=$c['pblaster'];
$totalsoldiers=$cpblaster - $ddsoldiers;

if(isset($_POST['attack']) && ($lattack > $rdefence)) {
$m=mysql_query("UPDATE `users` SET `money`='$tot' WHERE `user`='$logged'") or die(mysql_error());
$n=mysql_query("UPDATE `army` SET `pblaster`='$totsoldiers' WHERE `user_id`='$lid'") or die(mysql_error());
if($m && $n) {
echo "Вие победихте!";
}
}

if(isset($_POST['attack']) && ($lattack < $rdefence)) {
$p=mysql_query("UPDATE `users` SET `money`='$total' WHERE `user`='$sid'") or die(mysql_error());
$h=mysql_query("UPDATE `army` SET `pblaster`='$totalsoldiers' WHERE `user_id`='$sid'") or die(mysql_error());
if($p && $h) {
echo "Вие загубихте!";
}
}

if(isset($_POST['attack']) && ($lattack = $rdefence)) {
echo "Въпреки силната ви атака, противникът ви я отвърна, но никой не спечели!";
}

echo $lattack;
echo "<br/>";
echo $rdefence;
?>
 
Използвай $_GET['user'] вместо $_REQUEST['user'] ( можеш и да не го сменяш, request обединява post, get и cookie), така линковете ти ще станат: search.php?user=test и така като презаредиш страницата ще ти връща същото :)
И виж тази тема за малко защита при работа с база данни :)
http://web-tourist.net/forum/viewtopic.php?t=85530
 
Тоест в тази страница ми е кода с формата:
Код:
<form method="post" action="">
<input type="text" name="user" maxlength="20"><br/>
<input type="submit" name="submit">
</form>
<br/><br/>
<table align="center" width="400px" height="400px" border="1">
<tr>
<td>Играч</td>
<td>Раса</td>
<td>Атака</td>
<td>Защита</td>
<td>E - mail</td>
</tr>
<?php 		
		require_once("../connection.php");
		mysql_query("SET NAMES cp1251");

		$sql=mysql_query("SELECT * FROM `users` ORDER BY `id` ASC") or die(mysql_error());

		if(isset($_POST['submit'])) {
		
			$user = $_POST['user'];
			header("Location: searchr.php?user=$user");
		}
		
		while($r=mysql_fetch_array($sql)) {
?>
<tr>
<td><?php echo $r['user'];?></td>
<td><?php echo $r['race'];?></td>
<td><?php echo $r['attack'];?></td>
<td><?php echo $r['defence'];?></td>
<td><?php echo $r['email'];?></td>
</tr>
<?php
}
?>
Така ще стане ли ? При положение, че отгоре имам
Код:
<?php
session_start(); 
if(!(isset($_SESSION['login']))) {
die("Тази страница е достъпна само за регистрирани потребители!");
} 
?>
?
 
method="post" трябва да е method="GET" :)
Ако го има това най-отгоре ще могат да търсят само регистрирани потребители.
 
Направих го така:
Код:
<form method="get" action="searchr.php">
<input type="text" name="user" maxlength="20"><br/>
<input type="submit" name="submit">
</form>
<br/><br/>
<table align="center" width="400px" height="400px" border="1">
<tr>
<td>Играч</td>
<td>Раса</td>
<td>Атака</td>
<td>Защита</td>
<td>E - mail</td>
</tr>
<?php 		
		require_once("../connection.php");
		mysql_query("SET NAMES cp1251");

		$sql=mysql_query("SELECT * FROM `users` ORDER BY `id` ASC") or die(mysql_error());

		if(isset($_POST['submit'])) {
		
			$user = $_GET['user'];
			header("Location: searchr.php?user=$user");
		}
		
		while($r=mysql_fetch_array($sql)) {
?>
<tr>
<td><?php echo $r['user'];?></td>
<td><?php echo $r['race'];?></td>
<td><?php echo $r['attack'];?></td>
<td><?php echo $r['defence'];?></td>
<td><?php echo $r['email'];?></td>
</tr>
<?php
}
?>
</table>
 

Back
Горе