Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите с удалением строки из файла
 
 автор: Эдик12   (12.01.2010 в 00:38)   письмо автору
 
 

Здравствуйте!Помогите пожалуйста, а то уже мочи нет
Вот скрипт
<?php 
session_start
(); 
$login=$_POST['login']; 
$ident=$_POST['ident']; 
$password=$_POST['password']; 
$name=$_POST['name']; 
$k=0
$p=$_SESSION['logi']; 
if(isset(
$_SESSION['logi'])){echo "Hello";echo $p;} 
$txt="namepass.txt"
$open=fopen($txt,"w"); 
$file=file($txt); 

foreach(
$file as $element


$el=explode(";",$element);$s=$el[0]; 
if(
$s==$p){unset($file[$k]); 
$log=$login;$pass=$password
$nam=$name;$id=$ident$str="$log".";"."$pass".";"."$nam".";"."$id"."\r\n";} 
$k++;} 
echo 
$str

fwrite($open,implode("\r\n",$file));  
fclose($open); 
$open=fopen($txt,"a"); 
fwrite($open,$str); 
fclose($open); 
echo 
"Данные успешно сохранены!"
?>

Он переберает строки файла, и если первый элемент строки совпадает с $_SESSION['logi'](это первый эл-т строки,которую надо удалить а затем вместо нее записать новую), то должна удаляться данная строка, и вместо нее строка с переменными, полученными из формы.Но как только я запускаю скрипт, пишет, что Данные сохранены, а файл оказывается пустой.В чем может быть тут дело?

  Ответить  
 
 автор: kosta_in_net   (12.01.2010 в 02:27)   письмо автору
 
   для: Эдик12   (12.01.2010 в 00:38)
 

вместо if($s==$p){unset($file[$k]); нужно удалять элемент массива, например, уншифтом. А перед записью, преобразовать массив в строку. Кроме того, непонятно, зачем 2 записи делается:

fwrite($open,implode("\r\n",$file));
fclose($open);
$open=fopen($txt,"a");
fwrite($open,$str);

и вообще, все абсурдно. Что это за код:


$login=$_POST['login'];  
$ident=$_POST['ident'];  
$password=$_POST['password'];  
$name=$_POST['name'];  

$log=$login;$pass=$password;  $nam=$name;$id=$ident; 
$str="$log".";"."$pass".";"."$nam".";"."$id"."\r\n"


Почему нельхя делать так:


$str=$_POST['login'].";".$_POST['ident'].";".$_POST['password'].";".$_POST['name']."\r\n"

?
И вообще, зачем переменный в кавычки брать? Что за "$id"? Почему не $id?

Жесть...

Эдик, ты постоянно задаешь детские вопросы. Ну ты бы справочники почитал-то. 90% вопросов сами отпадут.

  Ответить  
 
 автор: Эдик12   (12.01.2010 в 18:29)   письмо автору
 
   для: kosta_in_net   (12.01.2010 в 02:27)
 

Так в том и дело, что мне надо удалить строку(элемент массива) при совпадении этих двух переменных if($s==$p)
Но почему-то unset не работает.А unpush просто добавляет в массив элемент, мне это покка не надо

  Ответить  
 
 автор: kosta_in_net   (12.01.2010 в 18:40)   письмо автору
 
   для: Эдик12   (12.01.2010 в 18:29)
 

похоже, сегодня уже не помогу

  Ответить  
 
 автор: Trianon   (12.01.2010 в 21:52)   письмо автору
 
   для: kosta_in_net   (12.01.2010 в 02:27)
 

>Эдик, ты постоянно задаешь детские вопросы. Ну ты бы справочники почитал-то. 90% вопросов сами отпадут.

Человеку, задающему "детские" вопросы, не справочник нужно читать, а учебник.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования