• XSS.stack #1 – первый литературный журнал от юзеров форума

Скрипт отображения фотографии

Alex_Sidneff

floppy-диск
Пользователь
Регистрация
21.09.2006
Сообщения
3
Реакции
0
Зделал скрипт! Отображает из текстового файла путь и вставляет фото...
Но праблема в том, что надо отображать только те фото которые = пользовотелю!!!
Пример!
это текстовый фаил:
<?php
#|Alex_Sidneff|foto/Alex_Sidneff001DGDG.jpg|
?>
<?php
#|Fox|foto/Fox001DGDG.jpg|
?>
Это он прописывает при каждой загрузки фото!!!

А это скрипт, который отображает его!
<?
$url="foto/foto.php";
$file=fopen($url, "r");
$data=fread($file, filesize($url));
fclose($file);
$data_massiv=explode("\n",$data);
for($i=0;$i<sizeof($data_massiv);$i++)
{
if(substr($data_massiv[$i], 0, 1)=="#")
{
$temp=explode("|",$data_massiv[$i]);
if($temp[1]=="echo '$name';")
{
$temp[2]="echo '$data_massiv[1]'";
}
echo "<Img Src=".$temp[2]." Width='200' Border='2'>

";
}
}
?>
Вопрос:
Как зделать, чтоб отображалось либо фото Foxа либо Alex_Sidneffa?
 
Делай через MySQL , создай бд, а потом на пхп
Код:
SELECT user_foto FROM users WHERE user_id=1/*
В таком духе :) Я пхп нешарю, но думаю это неслождно сделать ;)
 
Как я понял, в $name должно храниться ID твоего пользователя... а точнее его имя...
Вот только я вот это вот не понимаю... что такое причем тут сравнение со строкой "echo '$name';" ???
Код:
if($temp[1] == "echo '$name';")
{
   $temp[2] = "echo '$data_massiv[1]'";
}
я конечно не притендую на знатока php но все же :о) мне кажется нужно сделать вот так вот
Код:
$url="foto/foto.php";
$file=fopen($url, "r");
$data=fread($file, filesize($url));
fclose($file);

$data_massiv = explode("\n",$data);
for($i = 0; $i < sizeof($data_massiv); $i++)
{
   if(substr($data_massiv[$i], 0, 1) == "#")
   {
      $temp = explode("|", $data_massiv[$i]);
      if($temp[0] == $name)
      {
         $temp[1] = $data_massiv[1];
         echo "<Img Src=".$temp[1]." Width='200' Border='2'>

 ";
      }
   }
}

обрати внимание на вот этот вот кусок
Код:
   if(substr($data_massiv[$i], 0, 1) == "#")
   {
      $temp = explode("|", $data_massiv[$i]);
      if($temp[0] == $name)
      {
         $temp[1] = $data_massiv[1];
         echo "<Img Src=".$temp[1]." Width='200' Border='2'>

 ";
      }
   }
первая строчка нахождение твоей строки, вторая строчка разбиение строки на подстроки, а дальше идет сравнение первого элемента массива с твоим идентификатором (насчет нулевого элемента массива, мне кажется в php тоже массивы начинаютс с нулевого элемента... ну если не прав, тогда изменишь индексирование). И после того как ты сравнил, ты записываешь данные из первого элемента $data_massiv в твой тэмповый массив... нафига ??? чет я не понимаю этого... так что лучше сразу написать вот такой вот вариант
Код:
$url="foto/foto.php";
$file=fopen($url, "r");
$data=fread($file, filesize($url));
fclose($file);

$data_massiv = explode("\n",$data);
for($i = 0; $i < sizeof($data_massiv); $i++)
{
   if(substr($data_massiv[$i], 0, 1) == "#")
   {
      $temp = explode("|", $data_massiv[$i]);
      if($temp[0] == $name)
         echo "<Img Src=" . $temp[1] . " Width='200' Border='2'>

 ";
   }
}

Вот так вот самое оно будет... во всяком случаи должно работать все отлично...

P.S. там у тебя была трабла в том, что ты сравниваешь твой $name но выводишь изображение в любом случаи, вне зависимости совпало или нет. А нужно только когда совпало выводить... если я правельно тебя понял...
Добавлено в [time]1158814641[/time]
Я правда не помню как в php сравниваются строки... в asp.net у каждой строки есть метод Equel и ты сравниваешь через него... а тут... я не помню как :о)
 
Добавлено в 08:57 ( 21 September 2006 )
Я правда не помню как в php сравниваются строки... в asp.net у каждой строки есть метод Equel и ты сравниваешь через него... а тут... я не помню как :о)
во-первых, equal, а не equel =)
во-вторях, в php они сравниваются оператором == или ===.
 
во-первых, equal, а не equel =)
ну если уж на то пошло, тогда надо писать с большой буквы Equal :о) :-P

P.S. задира !!! <_< будь снисходительнее к человеку, который писал этот пост в половину восьмого утра !!! я все ж еще не проснулся !!!

во-вторях, в php они сравниваются оператором == или ===.
Перегруженным оператором == ;о)

P.S. вот так вот !!! :punk: :pioneer:
 
спасибо всем за варианты!!! Но всё оказалось на много проще....
Говорю сразу, что мне нужно было! А нужно мне было вывести фаил не зная его полного имяни! в итоге дошло что можно делать так -

<table border=1 align=center>
<?php
foreach ( glob ( "foto/$name*.*" ) as $filename )
{
$files=filesize($filename);
$filed=date ( "d-m-Y H:i:s" , filemtime ( $filename ));

echo "<tr><td><a href=\"".$filename."\"><img src='".$filename."' width=100 ></a></td>";
echo "<td align=center><b>Размер в байтах:</b>
".$files."</td>" ;
echo "<td align=center>".$filed."</td></tr>\n" ;
}
?>
:pioneer:
Вот такие пироги!!!!
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх