Писане във файл....Проблем

jooorooo

Registered
Значи опитвам се да направя една бан системка, но имам голям пронлем.
да покажа първо файловете:

index.php

Код:
<?php
	$ip = $_SERVER["REMOTE_ADDR"];


	if(file_exists("bannedips.php"))
		{
		require("bannedips.php");

		$exbannedips = explode(",", $bannedips);
		
		for($i=0; $i<count($exbannedips); $i++)
			{
			if($exbannedips[$i] == $ip)
				{
				echo("Вашият IP адрес няма достъп.");
				$pass = "no";
				}
			}
		}
		?>

bannedips.php

Код:
<?php


$bannedips = 'xxx.xxx.xxx.xxx,';


?>

и

userban.php

Код:
<?php

	$ip = $_GET['ip'];
	$confirm = $_GET['confirm'];

	if($confirm == null)
		{
		echo("Моля потвърдете действието.<br /><br />");
		echo("<a href='?banuser&confirm=yes&post=$ip'>Бан на този потренител по IP адрес</a><br /><br />");
		echo("<a href='#'>Отменете действието</a>");
		}
	else
			{
			if(file_exists("bannedips.php"))
				{
				require("bannedips.php");

				

				$pass = "yes";

				$exbannedips = explode(",", $bannedips);
		
				for($i=0; $i<count($exbannedips); $i++)
					{
					if($exbannedips[$i] == $ip)
						{
						echo("Потребителят е вече Баннат, натиснете <a href='#'>тук</a> за връщане.");
						$pass = "no";
						}
					}

				if($pass == "yes")
					{
					$newbannedips = $ip.  ",";
					
					$fp = fopen("bannedips.php", "w");
					fwrite($fp, "<?php\n\r\n\r\$bannedips = '" . $newbannedips . "';\n\r\n\r?>");
					fclose($fp);

					echo("Потребителят беше баннат, натиснете <a href='#'>тук</a> за връщане.");
					}
				}

			}
		

?>

Значи проблема идва от userban.php. когато му задам да добави нов адрес, той го замества със стария и седи само новия във файл bannedips.php. примерно ако има 2 адреса той трябва да изглежда по следния начин:

Код:
<?php


$bannedips = 'xxx.xxx.xxx.xxx,ххх.ххх.ххх.ххх';


?>

но вместо това е само един адрес (последно добавения).
 
$fp = fopen("bannedips.php", "w");
параметъра "w" занулява файла.
направи го така:
$fp = fopen("bannedips.php", "a");
 
не става. така записва всичко отново:

Код:
<?php


$bannedips = '195.230.ххх.ххх,';


?><?php


$bannedips = '195.230.ххх.ххх,';


?>
и файл index.php не го разпознава.
 
Разгледай този урок.
http://web-tourist.net/login/login/view.php?st=304

Виждам че искаш да прочетеш файла и да ползваш explode

В урока е описано как да ползваме прости файлове за база данни като
всеки запис е на различне ред.
С две думи ти може да записваш в един файл (без значение с какво разшитение) на всеки ред по един ИП адрес и после да ги ползваш.

Има още един урок в който на всеки ред се записва ИП адрес и след това се проверява дали има такъв IP адрес.

Ето го:

http://web-tourist.net/login/login/view.php?st=305

От двата урока може да сглобиш без проблем такава система.

Има и урок за бан система на staf .
Пак с прости файлове.
 
мда или ето ти все пак това трябва да работи:
Код:
 $fp = fopen("bannedips.php", "r");
              $otfaila = fread($fp,1024);
			  $iptata = explode("'",$otfaila);
			  print_r($iptata);
			 fclose($fp); 
		   $fpz = fopen("bannedips.php", "w");
              fwrite($fpz, "<?php\n\r\n\r\$bannedips = '" . $iptata[1].$newbannedips. "';\n\r\n\r?>");
             fclose($fpz);
на мястото на :

$fp = fopen("bannedips.php", "w");
fwrite($fp, "<?php\n\r\n\r\$bannedips = '" . $newbannedips . "';\n\r\n\r?>");
fclose($fp);
 

Back
Горе