[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: confirm и unlink
Crash2007
пожалуйста скажите что здесь не правильно:

<? $addr = "c:/1.jpg"; ?>

<img src='1.jpg' onclick='if(confirm("Удалить?")) {<? unlink($addr); ?>}'>

почему после загрузки этого файла сразу же удаляется файл 1.jpg, а не после нажатия на "да" диалога confirm???



Спустя 37 минут, 29 секунд (13.11.2009 - 01:20) MainVoid написал(а):
Потому что javascript - клиентский язык, а php - серверный.
Т.е. при загрузке страницы сначала отрабатывает PHP, и только потом все остальное (js, HTML).
Самое простое, как тебе сделать то, что ты хочешь - это редиректить пользователя на страницу со скриптом, который будет удалять нужный тебе файл, а потом возвращать обратно.

в твоем файле:
<img src='1.jpg' onclick='if(confirm("Удалить?")) {document.location.href("/unlink.php");}'>

А в файле unlink.php уже твой код + редирект обратно
<? unlink($addr);
header("Location: /index.html"); ?>

Как вариант редиркетить на туже страничку, но с добавлением параметра в URL.
Например: document.location.href($_SERVER['PHP_SELF'].'?unlink=Y');
а в файле самом файле пишешь
<? if ($_GET['unlink'] == 'Y') unlink($addr);?>
В перспективе лучше сделать на ajax, чтобы не наблюдать скачущие странички.

Спустя 54 минуты, 47 секунд (13.11.2009 - 02:15) Crash2007 написал(а):
.....делаю всё также само и ни удаления ни редиректа не происходит.......
unsure.gif

Спустя 22 минуты, 25 секунд (13.11.2009 - 02:38) MainVoid написал(а):
Пардон, попробуй так
document.location.href = "/unlink.php";

Спустя 23 минуты, 22 секунды (13.11.2009 - 03:01) Crash2007 написал(а):
оО..это совсем другое дело!! спасибо!!
но вот ещё одно. - у меня в переменную $addr выводится в цикле адрес, сохранённый в бд. и ведь если я пишу эту переменную в unlink.php то она у меня уже не определеятся.....что здесь можно сделать??

Спустя 10 минут, 25 секунд (13.11.2009 - 03:11) MainVoid написал(а):
передавай ее в URL, вот так:
document.location.href = "/unlink.php?addr=<?=$addr?>";
а в самом файле unlink.php пропиши
<?
$addr = $_GET['addr'];
?>
Только в любом случае тебе нужно заморочиться по поводу безопасности, ведь в такой скрипт, получается, можно передать название любого файла, и он не задумываясь его удалит smile.gif

Спустя 20 минут, 16 секунд (13.11.2009 - 03:32) Crash2007 написал(а):
возможно я коряво написал...
картинок выводится несколько, но на какую бы я не нажал, удаляется самая первая!!......посмотри плз...

$sql = mysql_query("SELECT addr_big FROM gallery");
$arr = mysql_fetch_array($sql);
$addr = "Z:/home/localhost/www/temper/".$arr['addr_big'];
do
{
<img src='../<? echo $arr["addr_big"]; ?>' onclick="if(confirm('Удалить?')) {document.location.href = 'unlink.php?addr=<?=$addr?>';}"/>
}
while ($arr = mysql_fetch_array($sql));

Спустя 9 минут, 28 секунд (13.11.2009 - 03:41) Gabriel написал(а):
забудь про поповский do

Спустя 2 минуты, 4 секунды (13.11.2009 - 03:43) Crash2007 написал(а):
ну я не умею подругому!!!!!)))))
....покажи как надо!!!.. rolleyes.gif

Спустя 7 минут, 31 секунда (13.11.2009 - 03:51) Gabriel написал(а):
while ($arr = mysql_fetch_array($sql)){ ?>
<img src='../<? echo $arr["addr_big"]; ?>' onclick="if(confirm('Удалить?')) {document.location.href = 'unlink.php?addr=<? echo $addr?>';}"/>
<?php
}

ну гдето так (глаза слипаються мож где чего незаметил)
млин ну не мешайте шорт и опен теги!!!!

Спустя 7 минут, 56 секунд (13.11.2009 - 03:59) Crash2007 написал(а):
ну пипец разница.....
а как быть с предыдущим вопросом???.

Спустя 58 минут, 20 секунд (13.11.2009 - 04:57) twin написал(а):
Цитата
ну пипец разница.....

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

Только Gabriel спросонок еще забыл mysql_fetch_array() на mysql_fetch_assoc() заменить.

А по второму вопросу - переменная $addr определена до цикла, один раз. Разумеется в ней одно значение, самое первое. Вот и.
Помести это в цикл, только не do... while, иначе заворот кишок будет.

Спустя 7 часов, 40 минут, 30 секунд (13.11.2009 - 12:37) Crash2007 написал(а):
ну вот так я этот php и выучил...по поповскому принцыпу значит =)))
вижу вы все мне советуете опять в первый класс!!посмотрим..не зря же я это выбрал!!!
.
ну ок.спасибо за помощь! biggrin.gif

Спустя 39 минут, 56 секунд (13.11.2009 - 13:17) MainVoid написал(а):
Crash2007, удалось решить проблему?

Спустя 24 минуты, 20 секунд (13.11.2009 - 13:42) Crash2007 написал(а):
всё почти сделано....но сеёчас почему-то первая картинка с бд не выводится......
теперь у меня unlink.php такой:
<? 
include("blocks/bd.php");
$addr = $_GET['addr'];
$id = $_GET['id'];
mysql_query("DELETE FROM gallery WHERE id='$id'");
unlink($addr);
header("Location: gallery.php");
?>


а главный файл:


<?
$sql = mysql_query("SELECT id,addr_big FROM gallery");
$arr = mysql_fetch_assoc($sql);
while ($arr = mysql_fetch_assoc($sql))
{
$addr = "Z:/home/localhost/www/temper/".$arr['addr_big'];
?>
<img src='../<? echo $arr["addr_big"]; ?>' onclick="if(confirm('Удалить?')) {document.location.href = 'unlink.php?id=<?=$arr['id'];?>&addr=<?=$addr?>';}"/>
<?
}
?>


почему первая картинка не выводится?...

Спустя 2 часа, 3 минуты, 42 секунды (13.11.2009 - 15:45) Crash2007 написал(а):
вот это ппц!!
когда пишу do,while - первая картинка с бд выводится....(всЕ выводятся)
а если только while{... - то выводится только со второй.......
эт почему так...??????

Спустя 1 минута, 28 секунд (13.11.2009 - 15:47) Gabriel написал(а):
Crash2007
у тебя там левого fetch_assoc ненаблюдаеться?
twin
да и правда забыл

Спустя 4 минуты, 22 секунды (13.11.2009 - 15:51) Crash2007 написал(а):
ну идёт
$s=mysql_query()
$a=mysql_fetch_assoc()
while ($a=mysql_fetch_assoc($s))
{
....
больше ничего такого нету....
сейчас поменял на do while и работает так, как мне нужно....

Спустя 1 минута, 48 секунд (13.11.2009 - 15:53) Crash2007 написал(а):
кароче я понял свою ошибку.....
$s=mysql_query()
while ($a=mysql_fetch_assoc($s))
{

- вот так надо


_____________
Рисую на PHP :)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.