Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Znak @ przed nazwą zmiennej
Forum PHP.pl > Forum > Przedszkole
elan
Pytanie zapewne laickie ale dopiero zaczynam przygodę z PHP i MySql. Spotkałem się niedawno z kodem w którym był znak małpy przed nazwą zmiennej np.
i nie bardzo wiem co ona tak naprawdę oznacza. Doszły do mnie słuchy, że zabezpiecza ona działanie przed wyświetlaniem eewentualnch błędów na stronie w celu bezpieczeństwa. I tak do tamtej pory myślałem, ale w poniższym kodzie działanie skryptu było zatrzymane właśnie wtedy kiedy ta małpa była przed nazwą zmiennej, kiedy ją usunąłem skrypt się wykonał.

  1. <?php
  2.  
  3. // Connection details
  4.  
  5.  
  6. $mysql_user = "logme_nowe";
  7.  
  8. $mysql_password = "test";
  9.  
  10. $mysql_server = "localhost";
  11.  
  12. $mysql_db = "logme_nowa";
  13.  
  14.  
  15. // Connection
  16.  
  17. $global_dbh = mysql_connect($mysql_server, $mysql_user, $mysql_password) or die ('Could not connect!' . mysql_error());
  18.  
  19. echo 'Connected!';
  20.  
  21. mysql_select_db($mysql_db) or die ('Could not find your Database!' . mysql_error());
  22.  
  23. echo 'Database is right!';
  24.  
  25.  
  26. // Query
  27.  
  28. function display_db_table ($tablename, $connection) {
  29.  
  30. $query_string = "SELECT * FROM $tablename";
  31.  
  32. $result_id = mysql_query($query_string, $connection);
  33.  
  34. $column_count = mysql_num_fields($result_id);
  35.  
  36. print ("<TABLE BORDER=1>\n");
  37.  
  38. while ($row = mysql_fetch_row($result_id)) {
  39.  
  40. print ("<TR ALIGN=LEFT VALIGN=TOP>");
  41.  
  42. for ($column_num = 0;
  43. $column_num < $column_count;
  44. $column_num++)
  45.  
  46. print ("<TD>$row[$column_num]</TD>\n");
  47. print ("</TR>\n");
  48.  
  49. }
  50.  
  51. print ("</TABLE>\n");
  52.  
  53. }
  54.  
  55. ?>
  56.  
  57. <HTML>
  58. <HEAD>
  59. </HEAD>
  60. <BODY>
  61.  
  62. <TABLE><TR><TD>
  63.  
  64. <?php display_db_table("country" , $global_dbh); ?>
  65.  
  66. </TD><TD>
  67.  
  68. <?php display_db_table("city" , $global_dbh); ?>
  69.  
  70. </TD></TR></TABLE>
  71.  
  72. </BODY>
  73. </HTML>
bartg
@ powoduje wyłączenie wyświetlania błędów. I jest to przed nazwą funkcji a nie zmiennej
elan
Czy warto stosować @ w kodzie ? Czy ona naprawdę zwiększa bezpieczeństwo?
wookieb
A kto powiedzial o zwiekszaniu bezpieczenstwa? Jak puszczasz skrypt publicznie to wylaczasz na serwerze wyswietlanie bledow. @ uzywasz wtedy kiedy obsluge bledow chcesz zaimplementować sam w pozniejszym etapie kodu.
bartg
Osobiscie uzwam @ do bledow mysql. gdy bedzie blad sam go sobie zapisze do loga. Po co ma publika widziec błedy, a tym samym czasami luki?
erix
Publika nie będzie wiedziała, jeśli stworzysz swojego handlera.
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.