Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Cannot redeclare
djgarsi
post 9.03.2011, 14:57:41
Post #1





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

Ostrzeżenie: (0%)
-----


Witam. Mam pewien problem. Wywołuję funkcję w pliku php, jednak dostaję taki oto komunikat.

Kod
Cannot redeclare logadm() (previously declared in /home/domena/domainsdomena.pl/public_html/login.php:59) in /home/domena/domains/domena.pl/public_html/login.php


Czym może być to spowodowane?


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
nospor
post 9.03.2011, 15:02:25
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ty nie wywolujesz a ponownie ją deklarujesz. Nie mozna kilkukrotnie deklarować funkcji o tej samej nazwie.

Pewnie includujesz kilka razy ten sam plik z funkcją
Albo w petli deklarujesz tę samą funkcje non stop


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
djgarsi
post 9.03.2011, 15:06:13
Post #3





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

Ostrzeżenie: (0%)
-----


Oto i mój plik:

  1. <?php
  2. include('db_connect.php');
  3.  
  4. if(isset($_POST['logadm'])) {
  5. $login = htmlspecialchars($_POST['loginadm']);
  6. $passwordzik = htmlspecialchars(md5($_POST['passadm']));
  7.  
  8. if(strstr($login, "'") == true || strstr($login, "table") == true || strstr($login, "database") == true)
  9. {
  10. header('Location: '.$_SERVER['HTTP_REFERER']);
  11. }
  12. else {
  13. $_POST['loginadm'] = str_replace( "'", "", $_POST['loginadm']);
  14. $_POST['loginadm'] = str_replace( "DELETE", "", $_POST['loginadm']);
  15. $_POST['loginadm'] = str_replace( "DROP", "", $_POST['loginadm']);
  16. $_POST['loginadm'] = str_replace( "UPDATE", "", $_POST['loginadm']);
  17. $_POST['loginadm'] = str_replace( "SELECT", "", $_POST['loginadm']);
  18. $login = htmlspecialchars($_POST['loginadm']);
  19. $passwordzik = htmlspecialchars(md5($_POST['passadm']));
  20.  
  21. $dane = @mysql_query('SELECT login, password FROM tabela WHERE login = "'.$login.'" AND password= "'.$passwordzik.'"') or die(mysql_error());
  22. }
  23. if(mysql_num_rows($dane) == 1) {
  24. $_SESSION['logadm'] = 'ok';
  25. $_SESSION['nick2'] = $login;
  26. $Query='SELECT * FROM users WHERE login="'.$_SESSION['nick2'].'"';
  27. $result = mysql_query($Query);
  28. while ($row = mysql_fetch_array($result))
  29. {
  30. $_SESSION['nick'] = $row["login"];
  31. $_SESSION['dostep'] = $row["dostep"];
  32. }
  33. }
  34. else {
  35. $_SESSION['logadm'] = '<P class=blad>'.$l_bllu.'';
  36. }
  37. unset($_POST['logadm']);
  38. }
  39. if(isset($_POST['unlogadm'])) {
  40. unset($_SESSION['nick']);
  41. unset($_SESSION['dostep']);
  42. unset($_SESSION['logadm']);
  43. unset($_POST['unloaddm']);
  44. }
  45.  
  46. function logadm() {
  47. if($_SESSION['logadm'] == 'ok') {
  48. echo'<form action="'.getenv(REQUEST_URI).'" method="post">';
  49. echo'<input type="submit" name="unlogadm" value="Wyloguj '.$_SESSION['nick'].'" class="button" />';
  50. echo'</form> </center>';
  51. }
  52. else
  53. {
  54. $string = '<form action="'.getenv(REQUEST_URI).'" method="post">';
  55. if(isset($_SESSION['logadm']))
  56. $string .= '<center>'.$_SESSION['logadm'].'';
  57. $string .= 'Login: <input type="text" autocomplete="off" name="loginadm" style="width: 100px" class="textbox"/>';
  58. $string .= ' Haslo: <input type="password" autocomplete="off" name="passadm" style="width: 100px" class="textbox"/>';
  59. $string .='  <input type="submit" name="logadm" value="Login" class="button"/><br>';
  60. $string .= '<a href=/register.html>Zarejestruj się</a>    <a href=/lostpassword.php>Przypomnij hasło</a></center>';
  61. $string .= '</form>';
  62. }
  63. } //w tej linii pokazuje błąd
  64. return $string;
  65. ?>


Ten post edytował djgarsi 9.03.2011, 16:12:01


--------------------
Go to the top of the page
+Quote Post
konole
post 9.03.2011, 15:50:13
Post #4





Grupa: Zarejestrowani
Postów: 275
Pomógł: 32
Dołączył: 21.03.2006
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Czekaj, czekaj.

Na początku pytasz się o to, czy istnieje $_POST['logadm'], a potem w tym samym bloku dołączasz funkcję z tabelką logowania. A co, jeśli nie istnieje $_POST['logadm']? W jaki sposób chcesz dołączyć funkcję? Jeszcze raz wstawiasz gdzieś jej kod (else)?

I to
Kod
$_POST['loginadm'] = str_replace( "'", "", $_POST['loginadm']);
        $_POST['loginadm'] = str_replace( "DELETE", "", $_POST['loginadm']);
        $_POST['loginadm'] = str_replace( "DROP", "", $_POST['loginadm']);
        $_POST['loginadm'] = str_replace( "UPDATE", "", $_POST['loginadm']);
        $_POST['loginadm'] = str_replace( "SELECT", "", $_POST['loginadm']);
        $login = htmlspecialchars($_POST['loginadm']);
        $passwordzik = htmlspecialchars(md5($_POST['passadm']));


Możesz równie zastąpić
Kod
$login = mysql_real_escape_string($_POST['loginadm']);
$passwordzik = mysql_real_escape_string($_POST['passadm']);



Ten post edytował konole 9.03.2011, 15:52:00
Go to the top of the page
+Quote Post
greycoffey
post 9.03.2011, 16:09:47
Post #5





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Masz podany bład jak na tacy, przetłumacz sobie (jak nie znasz angielskiego to masz translatroy) i rozwiąż problem.
Go to the top of the page
+Quote Post
djgarsi
post 9.03.2011, 16:18:30
Post #6





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

Ostrzeżenie: (0%)
-----


Cytat(greycoffey @ 9.03.2011, 16:09:47 ) *
Masz podany bład jak na tacy, przetłumacz sobie (jak nie znasz angielskiego to masz translatroy) i rozwiąż problem.


No fajnie, tylko że do tej pory działało. Przestało gdy dopisałem linijki ze str_replace.


--------------------
Go to the top of the page
+Quote Post
greycoffey
post 9.03.2011, 16:34:23
Post #7





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Redeklarujesz funkcje logadm(). Daj cały kod, a nie tylko ten plik, jest coś po tym, lub przed tym jeszcze? Btw. czy domainsdomena.pl nie powinno być domains/domena.pl - to twój błąd, czy taka jest prawdziwa treść zwracana przez praser?

Do tego return $string; powinno być w funkcji, nie poza nią.

Ten post edytował greycoffey 9.03.2011, 16:39:04
Go to the top of the page
+Quote Post
djgarsi
post 9.03.2011, 16:38:56
Post #8





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

Ostrzeżenie: (0%)
-----


domains/domena.pl - mój błąd

podałem cały plik login.php


--------------------
Go to the top of the page
+Quote Post
Fifi209
post 9.03.2011, 16:43:25
Post #9





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(greycoffey @ 9.03.2011, 16:34:23 ) *
Do tego return $string; powinno być w funkcji, nie poza nią.

Nie zawsze, swego czasu (póki nie używano Registry) w config wyglądał tak:
  1. $config[jakisklucz] = 'jakas_wartosc';
  2.  
  3. return $config;

Co dawało możliwość globalnego dostępu do $config

O ile mnie pamięć nie myli.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
djgarsi
post 9.03.2011, 17:47:12
Post #10





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

Ostrzeżenie: (0%)
-----


Niestety, przestawienie return nic nie daje.
Jakieś inne propozycje?


--------------------
Go to the top of the page
+Quote Post
greycoffey
post 9.03.2011, 19:41:03
Post #11





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Gdzie wykorzystujesz ten plik? Może go inkludujesz potem, bo on sam jest niezbyt przyjazny?
Go to the top of the page
+Quote Post
djgarsi
post 9.03.2011, 23:18:54
Post #12





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

Ostrzeżenie: (0%)
-----


greycoffey, masz rację. includowałem plik w innym miejscu. i chyba to było to bo inaczej go wywołałem i działa:)
Pozdrawiam.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 01:40