phpDocumentor koliportal
[ class tree: koliportal ] [ index: koliportal ] [ all elements ]

Source for file page.buildinglist-upload.php

Documentation is available at page.buildinglist-upload.php

  1. <?php
  2. /** Szobalista feltöltésére szolgáló felület kódja
  3. * @package koliportal
  4. */
  5. $sql_i = array();
  6. /** Egy épület adatainak ellenőrzése
  7. *
  8. * Ellenrőzi a feltöltött CSV fájl egy sorát.
  9. *
  10. *
  11. * @param array $arr A rekord mezői tömbben
  12. * @return mixed true: ha minden megfelelő, egyébként hibaüzenet
  13. */
  14. function check_building_row($arr)
  15. {
  16. if (!isset($arr["bsname"])
  17. || (strlen($arr["bsname"]) < 2)
  18. || (strlen($arr["bsname"]) > 8)) {
  19. return "Túl rövid/hosszú rövid név (2-8 karakter lehet csak)!";
  20. }
  21. if (!isset($arr["bname"]) || (strlen($arr["bname"]) < 2)) {
  22. return "Hiányzó teljes név!";
  23. }
  24. return true;
  25. }
  26.  
  27. if (count($_POST) > 0)
  28. {
  29. debug_echo("post OK");
  30. if (isset($_FILES["blist"]) &&
  31. is_uploaded_file($_FILES["blist"]["tmp_name"]))
  32. {
  33.  
  34. $f = fopen($_FILES["blist"]["tmp_name"], 'r');
  35. if ($f === false)
  36. {
  37. myerr("Fájlmegnyitási hiba a szerveren.");
  38. }
  39. $current_blist = get_buildings_list();
  40. while (!feof ($f))
  41. {
  42. $line = fgets($f, 1024);
  43. if ($line === false)
  44. break;
  45. // kihagyja az üres sorokat
  46. if (0 == strlen(trim($line)))
  47. continue;
  48. $arr = csv2array($line, $CSV_BUILDINGLIST_FSEQ);
  49. $chk = check_building_row($arr);
  50. if (true !== $chk)
  51. {
  52. $errs[] = $chk;
  53. $errc++;
  54. $sql_i = array();
  55. break;
  56. }
  57. if (isset($current_blist[$arr["bid"]]))
  58. {
  59. $sql_i[] = sprintf("UPDATE buildings SET bname = '%s',
  60. bsname = '%s' WHERE bid = '%d'", $arr["bname"], $arr["bsname"],
  61. $arr["bid"]);
  62. } else {
  63. $sql_i[] = sprintf("INSERT INTO buildings (bname, bsname)
  64. VALUES ('%s', '%s')",
  65. $arr["bname"], $arr["bsname"]);
  66. }
  67. }
  68. fclose($f);
  69. } else {
  70. myerr("Töltsön fel helyes fájlt!");
  71. }
  72. } else {
  73. /* nincs semmi tennivalónk? */
  74. ?>
  75.  
  76. <?php
  77. }
  78.  
  79. ?>
  80. <h2>Épületlista feltöltése</h2>
  81.  
  82. <p id="szobalist_upload_form">
  83. <form enctype="multipart/form-data" id="buildinslist_upload" method="post" action="<?= $_SERVER["PHP_SELF"] ?>?action=<?= $action ?>">
  84. Épületlista:
  85. <input type="file" id="blist" name="blist" /><br />
  86. <input type="submit" value="feltölt" />
  87. <input type="hidden" id="sz" name="sz" value="sz" />
  88. </form>
  89. </p>
  90.  
  91. <?php
  92. show_errors($errs);
  93. ?>
  94. <p>
  95. <?php
  96. if (count($sql_i) > 0)
  97. {
  98. t_start();
  99. $c = 0;
  100. reset($sql_i);
  101. while (list(, $i) = each($sql_i))
  102. {
  103. //echo $i . "\n";
  104. mysql_query($i, $database)
  105. or myerr("Adatfeltöltési hiba! ($i)");
  106. $c++;
  107. }
  108. t_commit();
  109. printf("%d rekord sikeresen feltöltve/módosítva.", $c);
  110. }
  111. ?>
  112. </p>

Documentation generated on Wed, 18 May 2005 19:24:39 +0200 by phpDocumentor 1.3.0RC3