Не хочет работать
Код:
<?php
if (empty($_POST[grabfile]) or empty($_POST[grabimage])) {
?>
<form method=post>
Grab file: <input type=text name="grabfile"><br>
Grab image: <input type=text name="grabimage"><br>
<input type=submit value=grab!>
</form>
<?php
} else {
$grabfile = $_POST["grabfile"];
$grabimage = $_POST["grabimage"];
if (strlen($grabfile) || strlen($grabimage)) {
// Get directories info
$gamedirectory = "../files/".$filesdir."/";
$imagedirectory = "../files/image/";
if ($grabfile) {
// Get game file name
$gname = $grabfile;
while(strstr($gname,"/")){
$gname = substr($gname,strpos($gname,"/")+1,999);
}
$newgame = $gamedirectory.$gname;
// If file already exists then change it's name
if (file_exists($newgame)) {
$uniq = substr( md5(uniqid (rand())), 0, 4 );
$gname = $uniq."_".$gname;
$newgame = $gamedirectory.$gname;
}
if (copy($grabfile, $newgame)) {
$files = "&gfile=".$gname;
}
}
if (strlen($grabimage)) {
// Get game file name
$gimage = $grabimage;
while(strstr($gimage,"/")){
$gimage = substr($gimage,strpos($gimage,"/")+1,999);
}
$newimage = $imagedirectory.$gimage;
// If file already exists then change it's name
if (file_exists($newimage)) {
$uniq = substr( md5(uniqid(rand())), 0, 4 );
$gimage = $uniq."_".$gimage;
$newimage = $imagedirectory.$gimage;
}
if (copy($grabimage, $newimage)) {
$images = "&gimage=".$gimage;
}
}
if (strlen($files) || strlen($images)) {
* * header ("Location: /admin/index.php?action=addgame".$files.$images);
exit();
} else {
header ("Location: index.php?action=grabfile&e=1");
exit();
}
}
header ("Location: index.php?action=grabfile");
exit();
}
?>
if (empty($_POST[grabfile]) or empty($_POST[grabimage])) {
?>
<form method=post>
Grab file: <input type=text name="grabfile"><br>
Grab image: <input type=text name="grabimage"><br>
<input type=submit value=grab!>
</form>
<?php
} else {
$grabfile = $_POST["grabfile"];
$grabimage = $_POST["grabimage"];
if (strlen($grabfile) || strlen($grabimage)) {
// Get directories info
$gamedirectory = "../files/".$filesdir."/";
$imagedirectory = "../files/image/";
if ($grabfile) {
// Get game file name
$gname = $grabfile;
while(strstr($gname,"/")){
$gname = substr($gname,strpos($gname,"/")+1,999);
}
$newgame = $gamedirectory.$gname;
// If file already exists then change it's name
if (file_exists($newgame)) {
$uniq = substr( md5(uniqid (rand())), 0, 4 );
$gname = $uniq."_".$gname;
$newgame = $gamedirectory.$gname;
}
if (copy($grabfile, $newgame)) {
$files = "&gfile=".$gname;
}
}
if (strlen($grabimage)) {
// Get game file name
$gimage = $grabimage;
while(strstr($gimage,"/")){
$gimage = substr($gimage,strpos($gimage,"/")+1,999);
}
$newimage = $imagedirectory.$gimage;
// If file already exists then change it's name
if (file_exists($newimage)) {
$uniq = substr( md5(uniqid(rand())), 0, 4 );
$gimage = $uniq."_".$gimage;
$newimage = $imagedirectory.$gimage;
}
if (copy($grabimage, $newimage)) {
$images = "&gimage=".$gimage;
}
}
if (strlen($files) || strlen($images)) {
* * header ("Location: /admin/index.php?action=addgame".$files.$images);
exit();
} else {
header ("Location: index.php?action=grabfile&e=1");
exit();
}
}
header ("Location: index.php?action=grabfile");
exit();
}
?>
Под денвером работал на ура, а как загузил на хост так не работает. Ни одно условие не проходит.
Как вы думаете в чем причина?
1) if (empty($_POST[grabfile]) or empty($_POST[grabimage])) {
У вас тут где-то предопределены константы grabfile и grabimage?
2) Аттрибуты тегов надо заключать в кавычки и закрывать непарные теги
3) * * header ("Location: /admin/index.php?action=addgame".$files.$images);
Че за звездочки?
4) $grabfile = $_POST["grabfile"] - убил бы. А где проверка, что есть такой элемент в массиве?
5) А ещё полезно в начале скрипта писать error_reporting(E_ALL), чтобы самому видеть ошибки.
а еще - за такую мешанину HTML и PHP кода надо убивать ржавым ножом...
Я тут подрабатывал доработкой чужик самописных проектов - это лучше вешаться. То, что тут написано - это ещё красиво написано))
Цитата:
3) * * header ("Location: /admin/index.php?action=addgame".$files.$images);
Че за звездочки?
Че за звездочки?
Этого не было в коде...
Цитата:
5) А ещё полезно в начале скрипта писать error_reporting(E_ALL), чтобы самому видеть ошибки.
Написал, ни чего не показывает.
Цитата:
а еще - за такую мешанину HTML и PHP кода надо убивать ржавым ножом...
Мешанины не было, я просто чтоб вам показать так написал, вообще код находиться в админке.
Все равно не хочет работать:
Код:
<?php
error_reporting(E_ALL);
if (empty($_POST['grabfile']) or empty($_POST['grabimage'])) {
?>
<form method='post'>
Grab file: <input type='text' name='grabfile'><br>
Grab image: <input type='text' name='grabimage'><br>
<input type='submit' value='grab!'>
</form>
<?php
} else {
if (isset($_POST['grabfile']) and isset($_POST['grabimage'])) {
$grabfile = $_POST['grabfile'];
$grabimage = $_POST['grabimage'];
}
if (isset($grabfile) || isset($grabimage)) {
// Get directories info
$gamedirectory = "../files/".$filesdir."/";
$imagedirectory = "../files/image/";
if (isset($grabfile)) {
// Get game file name
$gname = $grabfile;
while(strstr($gname,"/")){
$gname = substr($gname,strpos($gname,"/")+1,999);
}
$newgame = $gamedirectory.$gname;
// If file already exists then change it's name
if (file_exists($newgame)) {
$uniq = substr( md5(uniqid (rand())), 0, 4 );
$gname = $uniq."_".$gname;
$newgame = $gamedirectory.$gname;
}
if (copy($grabfile, $newgame)) {
$files = "&gfile=".$gname;
}
}
if (isset($grabimage)) {
// Get game file name
$gimage = $grabimage;
while(strstr($gimage,"/")){
$gimage = substr($gimage,strpos($gimage,"/")+1,999);
}
$newimage = $imagedirectory.$gimage;
// If file already exists then change it's name
if (file_exists($newimage)) {
$uniq = substr( md5(uniqid(rand())), 0, 4 );
$gimage = $uniq."_".$gimage;
$newimage = $imagedirectory.$gimage;
}
if (copy($grabimage, $newimage)) {
$images = "&gimage=".$gimage;
}
}
if (isset($files) || isset($images)) {
echo 'header ("Location: /admin/index.php?action=addgame".$files.$images)';
exit();
} else {
echo 'header ("Location: index.php?action=grabfile&e=1")';
exit();
}
}
echo 'header ("Location: index.php?action=grabfile")';
exit();
}
?>
error_reporting(E_ALL);
if (empty($_POST['grabfile']) or empty($_POST['grabimage'])) {
?>
<form method='post'>
Grab file: <input type='text' name='grabfile'><br>
Grab image: <input type='text' name='grabimage'><br>
<input type='submit' value='grab!'>
</form>
<?php
} else {
if (isset($_POST['grabfile']) and isset($_POST['grabimage'])) {
$grabfile = $_POST['grabfile'];
$grabimage = $_POST['grabimage'];
}
if (isset($grabfile) || isset($grabimage)) {
// Get directories info
$gamedirectory = "../files/".$filesdir."/";
$imagedirectory = "../files/image/";
if (isset($grabfile)) {
// Get game file name
$gname = $grabfile;
while(strstr($gname,"/")){
$gname = substr($gname,strpos($gname,"/")+1,999);
}
$newgame = $gamedirectory.$gname;
// If file already exists then change it's name
if (file_exists($newgame)) {
$uniq = substr( md5(uniqid (rand())), 0, 4 );
$gname = $uniq."_".$gname;
$newgame = $gamedirectory.$gname;
}
if (copy($grabfile, $newgame)) {
$files = "&gfile=".$gname;
}
}
if (isset($grabimage)) {
// Get game file name
$gimage = $grabimage;
while(strstr($gimage,"/")){
$gimage = substr($gimage,strpos($gimage,"/")+1,999);
}
$newimage = $imagedirectory.$gimage;
// If file already exists then change it's name
if (file_exists($newimage)) {
$uniq = substr( md5(uniqid(rand())), 0, 4 );
$gimage = $uniq."_".$gimage;
$newimage = $imagedirectory.$gimage;
}
if (copy($grabimage, $newimage)) {
$images = "&gimage=".$gimage;
}
}
if (isset($files) || isset($images)) {
echo 'header ("Location: /admin/index.php?action=addgame".$files.$images)';
exit();
} else {
echo 'header ("Location: index.php?action=grabfile&e=1")';
exit();
}
}
echo 'header ("Location: index.php?action=grabfile")';
exit();
}
?>
Код:
if (empty($_POST['grabfile']) or empty($_POST['grabimage'])) {
...
} else {
if (isset($_POST['grabfile']) and isset($_POST['grabimage'])) {
...
} else {
if (isset($_POST['grabfile']) and isset($_POST['grabimage'])) {
Цитата:
echo 'header ("Location: index.php?action=grabfile&e=1")';
:D:D:D
А это зачем поменяли?) Верните функцию header, как было.
Да и код после наших замечаний лучше не стал, только ещё замудреней))
И ещё вопрос. Че не работает-то?
судя по жалобе о том, что перестало работать после перехода с денвера на хсотинг, речь идёт об относительном пути к файлу, что якобы заранее должен быть загружен на хостинг.
Цитата:
А это зачем поменяли?) Верните функцию header, как было.
Протсто так легче отлаживать.
Цитата:
И ещё вопрос. Че не работает-то?
Не проходит условия.
Код:
<?php
error_reporting(E_ALL);
if (!isset($_POST['grabfile']) and !isset($_POST['grabimage'])) {
?>
<form method='post'>
Grab file: <input type='text' name='grabfile'><br>
Grab image: <input type='text' name='grabimage'><br>
<input type='submit' value='grab!'>
</form>
<?php
} else {
$grabfile = $_POST['grabfile'];
$grabimage = $_POST['grabimage'];
}
if (isset($grabfile) || isset($grabimage)) {
// Get directories info
$gamedirectory = "../files/".$filesdir."/";
$imagedirectory = "../files/image/";
if (isset($grabfile)) {
// Get game file name
$gname = $grabfile;
while(strstr($gname,"/")){
$gname = substr($gname,strpos($gname,"/")+1,999);
}
$newgame = $gamedirectory.$gname;
// If file already exists then change it's name
if (file_exists($newgame)) {
$uniq = substr( md5(uniqid (rand())), 0, 4 );
$gname = $uniq."_".$gname;
$newgame = $gamedirectory.$gname;
}
if (copy($grabfile, $newgame)) {
$files = "&gfile=".$gname;
}
}
if (isset($grabimage)) {
// Get game file name
$gimage = $grabimage;
while(strstr($gimage,"/")){
$gimage = substr($gimage,strpos($gimage,"/")+1,999);
}
$newimage = $imagedirectory.$gimage;
// If file already exists then change it's name
if (file_exists($newimage)) {
$uniq = substr( md5(uniqid(rand())), 0, 4 );
$gimage = $uniq."_".$gimage;
$newimage = $imagedirectory.$gimage;
}
if (copy($grabimage, $newimage)) {
$images = "&gimage=".$gimage;
}
}
if (isset($files) || isset($images)) {
header ("Location: /admin/index.php?action=addgame".$files.$images);
exit();
} else {
header ("Location: index.php?action=grabfile&e=1");
exit();
}
}
header ("Location: index.php?action=grabfile");
exit();
}
?>
error_reporting(E_ALL);
if (!isset($_POST['grabfile']) and !isset($_POST['grabimage'])) {
?>
<form method='post'>
Grab file: <input type='text' name='grabfile'><br>
Grab image: <input type='text' name='grabimage'><br>
<input type='submit' value='grab!'>
</form>
<?php
} else {
$grabfile = $_POST['grabfile'];
$grabimage = $_POST['grabimage'];
}
if (isset($grabfile) || isset($grabimage)) {
// Get directories info
$gamedirectory = "../files/".$filesdir."/";
$imagedirectory = "../files/image/";
if (isset($grabfile)) {
// Get game file name
$gname = $grabfile;
while(strstr($gname,"/")){
$gname = substr($gname,strpos($gname,"/")+1,999);
}
$newgame = $gamedirectory.$gname;
// If file already exists then change it's name
if (file_exists($newgame)) {
$uniq = substr( md5(uniqid (rand())), 0, 4 );
$gname = $uniq."_".$gname;
$newgame = $gamedirectory.$gname;
}
if (copy($grabfile, $newgame)) {
$files = "&gfile=".$gname;
}
}
if (isset($grabimage)) {
// Get game file name
$gimage = $grabimage;
while(strstr($gimage,"/")){
$gimage = substr($gimage,strpos($gimage,"/")+1,999);
}
$newimage = $imagedirectory.$gimage;
// If file already exists then change it's name
if (file_exists($newimage)) {
$uniq = substr( md5(uniqid(rand())), 0, 4 );
$gimage = $uniq."_".$gimage;
$newimage = $imagedirectory.$gimage;
}
if (copy($grabimage, $newimage)) {
$images = "&gimage=".$gimage;
}
}
if (isset($files) || isset($images)) {
header ("Location: /admin/index.php?action=addgame".$files.$images);
exit();
} else {
header ("Location: index.php?action=grabfile&e=1");
exit();
}
}
header ("Location: index.php?action=grabfile");
exit();
}
?>
Цитата: MeLord
Протсто так легче отлаживать.
Не проходит условия.
Не проходит условия.
Т.е. ни при каких обстоятельствах не показывает форму?
Короче, предлагаю проверить пути. А ещё тупо делайте echo() после каждой строчки. Т.е. так называемый дебаг. И смотрите каково значение переменной? Учитесь изучать свой код и проверять.
последовав вашему совету, я начал просталять echo(). И тут выяснилось что почему то просто не работает функция copy(). Есть ли замена ему?
Если не работает, значет нет прав на запись в ту директорию, куда вы хотите переместить. Про права в *nix системах можно почитать в инете.
про права на запись знаю итак, на директории записи поставлены chmod 777.
Так что советую последовать совету Romik и посмотреть те ли пути передаются в copy и соблюдается ли регистр символов в имене файлов. Ошибка 99.99% в вашем коде, т.е. в этой части. Так что ищите.