Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: mkdir(' no i jak to zrobić? ');
Forum PHP.pl > Forum > PHP
integer000
Witam jak napisać coś takiego:

Pole tekstowe a obok przycisk, jeśli w poie nie jest nic wpisane a naciśnie się przysisk to nic się nie dzieje, ale jeśli coś się wpisze w pole tekstowe to po naciśnięciu przycisku na serwerze tworzy się katalog o nazwie takiej jak to co zostało wpisane w polu tekstowym.

i poniżej chciałem jeszcze zrobić warunek jeśli katalog został utworzony to cośtam.....
a jeśli nie to coś innego...

Jak takie coś napisać questionmark.gif

myślałem tak ale coś nie trybi ...

  1. echo '<form method="post">';
  2. echo '<input type="text" name="namecatalog" size="30">';
  3. echo '<input type="submit" value="start">';
  4. echo '</form>';


  1. <?php
  2.  
  3.  
  4. if (! empty ( $_POST['namecatalog'] ) )
  5. {
  6. $catalogname = $_POST['namecatalog'];
  7. $sciezka = 'htm/';
  8. $c = $sciezka.$catalogname;
  9. mkdir ($c);
  10. echo 'katalog: <b>';
  11. echo $c;
  12. echo'</b>';
  13.  
  14. } else{
  15.  
  16.  echo'dddddd';
  17.  
  18.  }
  19.  
  20. ?>
aleksander
zrob w javascripcie funkcje z prostym ifem ktora sprawdza czy pole != ''. jezeli true robisz form.submit jezeli false nic sie nie dzieje, i podepinij ten skrypt pod przycisk input type="button" tworzenie folderu robisz w php mkdirem gdzie jego argumentem jest $_POST['pole'];
nospor
ja bym tak nie szalal tylko i wylacznie z js. jak ktos se wylaczy js to bedzie problem. takie cos trzeba tez i na poziomie php sprawdzac.

@integer000 kod co pokazales wyglada w miare dobrze. co ci nie trybi?
Lars
kod testowalem 2 razy:
  1. <?php ## php BLOCK_START
  2. if(!isset($_POST['s'])) {
  3. echo '<form method="post">'; 
  4. echo '<input type="text" name="namecatalog" size="30">';
  5. echo '<input type="submit" name="s" value="start">';
  6. echo '</form>';
  7. } else {
  8.  
  9. if (! empty ( $_POST['namecatalog'] ) )
  10. {
  11. $catalogname = $_POST['namecatalog'];
  12. $sciezka = 'htm/';
  13. $c = $sciezka.$catalogname;
  14. mkdir ($c);
  15. echo 'katalog: <b>';
  16. echo $c;
  17. echo'</b>';
  18.  
  19. } else{
  20.  
  21.  echo'dddddd';
  22.  
  23.  }
  24. }
  25. ## php BLOCK_END
  26. ?>


działa poprawnie,
1. nadałeś chmod 777 na "htm"?
2. moze wogole htm nie istnieje
3. pokaz komunikat bledu
integer000
No własnie ... 777 zapomniałem laugh.gif laugh.gif laugh.gif

to by było rozwiązane, Ale...

po stworzeniu katalogu chce zrobić do niego Upload. i tu kolejny problem:

  1. <?php
  2.  
  3. //mkdir//
  4.  if(!isset($_POST['s'])) {
  5.  echo'Utwórz katalog';
  6.  echo '<form method="post">'; 
  7.  echo '<input type="text" name="namecatalog" size="30">';
  8.  echo '<input type="submit" name="s" value="Utwórz">';
  9.  echo '</form>';
  10.  } else {
  11.  
  12.  if (! empty ( $_POST['namecatalog'] ) )
  13.  {
  14.  $catalogname = $_POST['namecatalog'];
  15.  $sciezka = 'htm/';
  16.  $c = $sciezka.$catalogname;
  17.  mkdir ($c);
  18.  echo 'Utworzony katalog: <b>';
  19.  echo $c;
  20.  echo'</b><br><br><br><br>';
  21.  //upload//
  22.  echo'<b>Upload</b>';
  23.  if($_POST["actionupload"] == "Zapisz plik")
  24.  {
  25.  unset($datename);
  26.  
  27.  if(!isset($_FILES) && isset($HTTP_POST_FILES))
  28.  $_FILES = $HTTP_POST_FILES;
  29.  if(!isset($_FILES['date_file']))
  30.  $error["date_file"] = "Nie odnaleziono pliku";
  31.  $datename = basename($_FILES['date_file']['name']);
  32.  if(empty($datename))
  33.  $error["datename"] = "Nie odnaleziono pliku o podanej nazwie";
  34.  
  35.  if(empty($error))
  36.  {
  37.  $newdate = $c . $datename;
  38.  $result = move_uploaded_file($_FILES['date_file']['tmp_name'], $newdate);
  39.  if(empty($result))
  40.  $error["result"] = "error upload";
  41. }
  42. }
  43.  echo'<form method="POST" enctype="multipart/form-data" name="date_upload_form">
  44.  <p><input type="file" name="date_file" size="20"></p>
  45.  <p><input type="submit" value="Zapisz plik" name="actionupload"></p>
  46.  </form>';
  47.  
  48. if (date_upload_form == action) {
  49. $_SERVER["PHP_SELF"];
  50. }
  51. if(is_array($error))
  52. {
  53. while(list($key, $val) = each($error))
  54. {
  55. echo $val;
  56. echo "<br>n";
  57. }
  58. }
  59. }
  60.  else{
  61.  echo'Katalog nie został utworzony !<br>';
  62. }
  63. }
  64.  
  65. ?>
zork
na serwerze gdzie mam wykupione konto włączony jest safe_mode (php5)
I nie można wgrywać niczego do folderów utworzonych przez php - właścicielem folderu jest wtedy apache :/
DzikiLis
Dwie podpowiedzi:

1) Sprawdzaj nazwę katalogu pod kątem zdziwnych znaków. Szczególnie uważaj na '/'.

2) Do sprawdzenia czy plik został przesłany na serwer proponuję zastosować funkcję is_uploaded_file().
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.