Запись в новый файл

4ell

Новичок
Запись в новый файл

Вот создаю я файл автоматом
и хочу чтобы в этом файле изменилось $comp_name на его имя

PHP:
$fh=fopen("list/$nick.php", "a" );
$write='
<?php
$db = mysql_connect("192.168.0.8", "root");
mysql_select_db("net",$db);
$res = mysql_query("SELECT filepath FROM users WHERE comp_name=$comp_name ",$db);
$a_r = mysql_fetch_row($res);
      foreach ($a_r as $filepath);      
print "\t<img src=../$filepath ><br>";
?>
';
fwrite($fh, $write);
fclose($fh);
Что сделать , чтобы переменная $comp_name стала рабочей , а то че она мне там в файле ненужна.
PS Может можно разбить и почастям записать это все в файл.
скажем до $comp_name записать, а дальше как незнаю.
 

rotoZOOM

ACM maniac
PHP:
$write=' 
<?php 
$db = mysql_connect("192.168.0.8", "root"); 
mysql_select_db("net",$db); 
$res = mysql_query("SELECT filepath FROM users WHERE comp_name='.$comp_name.' ",$db); 
$a_r = mysql_fetch_row($res); 
      foreach ($a_r as $filepath);       
print "\t<img src=../$filepath ><br>"; 
?> 
';
так не пробовал ? но сдается мне, что ты собираешься что-то делать неправильно ... генерация php кода в файл ....
 

4ell

Новичок
Попробовал , Он после этого в файл вставляет пустышку. А как мне тогда сделать так чтобы при нажатии кнопки СУБМИТ Создавался файл , а туда уже вместо переменных подставлялись бы данные.
 

rotoZOOM

ACM maniac
при нажатии на кнопку Субмит (как я понимаю в браузере), идет запрос на сервак в тот файл который указан в action. Вот в этом скрипте и создавай файл.
Насчет пустого места ... а $comp_name то вообще определено ?
 

Scum

Новичок
Автор оригинала: 4ell
Попробовал , Он после этого в файл вставляет пустышку. А как мне тогда сделать так чтобы при нажатии кнопки СУБМИТ Создавался файл , а туда уже вместо переменных подставлялись бы данные.
Ты уверен, что тебе надо создавать именно новый PHP-файл?
Что-то тут видимо не так...
 

4ell

Новичок
Ну а как делают везде. Когда ты регистрируешься появляеться профиль . Я так примерно и хочу сделать.
 

rotoZOOM

ACM maniac
Ну вот с этого и надо было начинать. Пользователь вводит данные на страничке, нажимает "Регистрация". После этого вызывается скрипт, который и производит соббсно сохранение и/или проверку на валидность информации о пользователе. Такое чувство, что тебе необходимо начинать изучение WEB программирования не с этого, а с более простых примеров.
 

4ell

Новичок
может можно создать шаблон который потом будет вставляться в файл с замененой переменной скажем через $_POST[]
 

4ell

Новичок
NIMOUOUS
Ну да , все заноситься в базу .
rotoZOOM
Спасибо , снача правда попробовал , не пошло , а потом запахало.
У меня терь следущая трабла выходит . Я ведь это все дело из переменной в файл записываю, а переменные не в кавычках ' ' , и поэтому в файле выдается ошибка. и
приходиться все ручками , ручками править.

Вот что отсылаю
$res = mysql_query("SELECT filepath FROM users WHERE comp_name='.$comp_name.' ",$db);

Вот какой приходит скрипт
$res = mysql_query("SELECT filepath FROM users WHERE comp_name=SMAUE-LAN ",$db); А должно быть значение SMAUE-LAN в одинарных кавычках. как это можно сделать ?
 

Dreammaker

***=Ф=***
Откуда приходит твой скрипт?

Это мне кажется или так действительно, что ты делаешь запрос в базу, чтобы узнать путь к профилю ,который хранится в файле?

Если да, то этот топик пора переносить толи в "Юмор", толи в прожекты...
 

dorfey

Guest
дамн. как все запущенно.
4ell
вот скажи плз зачем нужно для каждого нового юзера делать новый скрипт?
даю подсказку:
имеем скрипт index.php его содержание:
PHP:
<?php
$db = mysql_connect("192.168.0.8", "root", "password");
mysql_select_db("net",$db);
$res = mysql_query('SELECT filepath FROM users WHERE comp_name='.$_GET['compname'], $db);
$a_r = mysql_fetch_array($res);
echo "<img src=../".$a_r['filepath']."><br>";
?>
в адресной строке браузера набираем:
www.mysite.com/index.php?compname=SMAUE-LAN

в результате получем путь к профилю юзера с именем полученным через $_GET

ps. читаем:
самые основы
slashes
 

4ell

Новичок
dorfey Все конечно хорошо, но у меня через POST идет все
 

Dreammaker

***=Ф=***
4ell, :)
а поменять $_GET на $_POST[] религия мешает... ?

Давай ты без кода на словах объяснишь какова задача скрипта и что твой код делает по пунктам, но чтобы и текста было не слишком много. Тут всем уже давно кажется, что ты делаешь, что-то не так... и даже очень не так..

А так мы увидим алгоритм, и если он всё таки, по мнению большинства, ошибочный, предложим свой вариант более подходящий для твоего случая..
 

4ell

Новичок
Человек вводит данные свои. Они отсылаються в SQL . И тут же создаеться именной файл(что то типа профиля, где расположены все данные его ). Так как у меня ссылки index?action=nick вот я и создаю файл и дописываю каждый раз файл со ссылками.
 

Dreammaker

***=Ф=***
>Человек вводит данные свои. Они отсылаються в SQL .
На этом этапе всё нормально..

> И тут же создаеться именной файл(что то типа профиля, где расположены все данные его ).
Вот на этом этапе начинается не совсем понятное... и возможно не совсем нужное.

Зачем создавать файл с профилем, если его данные сохранены в базе? Будет дублирование данных.
Если же сохраняется только ссылка на файл с профилем, то это не есть разумно. Сохраняй в базе не только ник, пароль и ссылку на файл профиля, но и те данные, которые ты хранишь в файле (возраст, цвет волос и т.д. и т.п. в общем, всё что ты можешь придумать).

Затем по нику ты будешь делать запрос в базу и доставать оттуда данные юзера.

Или же как вариант: хранить всё в файлах и ники, и пароли, и данные. Тогда MySQL вообще не нужна. Хотя, ИМХО, работать с базой удобнее.

>Так как у меня ссылки index?action=nick вот я и создаю файл и дописываю каждый раз файл со ссылками.

Эта строчка вообще непонятна... Со ссылками на что? То что у тебя ссылки index?action=nick - совершенно не означает, что нужно создавать файл с какими-то ещё ссылками.

Относительно того, что писал выше:
PHP:
$nick=$_GET['niсk'];

$sql="SELECT * FROM users WHERE nick='".mysql_real_escape_string(substr($nick,0,24))."'";

$res=mysql_query($sql) or die("ошибка БД");

if (mysql_num_rows($res) ==1)
    {
        $r=mysql_fetch_array($res);
        echo $r['nick'];
        echo $r['color'];
        //....... И остальное, что хранится в БД и тебе нужно......
    }
else 
    echo "Нет такого юзера...";
 

dorfey

Guest
Dreammaker
не нужная операция присвоения

желательно сразу указывать необходимые для выборки поля

я ему специально давал линк что бы он сам прочел а не глупо копировал

после этого появятся новые вопросы у автора ;)
 

Фанат

oncle terrible
Команда форума
dorfey, докопатся больше не до кого?
ты ещё запятые в кего скрипте посчитай, и выстави принципиальные возражения.

чуваку надо вдолбить сначала в голову понимание самой главной ошибки.
 
Сверху