Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Undefined index
Forum PHP.pl > Forum > Przedszkole
Rid
Po instalacji PHP ,mimo zadeklarowanych zmiennych wywala mi błądy Undefined index,tak jak bym aplikacja php nie widziała deklaracji,nie jest to wina skryptu ponieważ wszystko działało na poprzednim serwerze.Co może powodować błąd .htacces czy jakieś ustawienie w php.ini?questionmark.gifquestionmark.gifZ góry dziękuję za pomoc.
verio
Może się to odnosić do niekompletnego lub całkowitego błędu przenoszenia bazy danych.
tehaha
w skrypcie używasz zmiennej, która nie została zadeklarowana, to że na innym hostingu nie było błędu to nie znaczy, że skrypt był ok, trudno powiedzieć dokładniej bez kodu, który powoduje błąd, być może na poprzednim serwerze miałeś register_globals na on a teraz masz off

poza tym to nie błąd tylko notice, więc też mógł być po prostu nie wyświetlony na poprzednim hostingu co wynikało z jego konfiguracji
Rid
Baza danych jest tworzona z poziomu skryptu(od nowa),nie była przenoszona ani eksportowana.

Cytat(tehaha @ 4.01.2011, 17:37:43 ) *
w skrypcie używasz zmiennej, która nie została zadeklarowana, to że na innym hostingu nie było błędu to nie znaczy, że skrypt był ok, trudno powiedzieć dokładniej bez kodu, który powoduje błąd, być może na poprzednim serwerze miałeś register_globals na on a teraz masz off

poza tym to nie błąd tylko notice, więc też mógł być po prostu nie wyświetlony na poprzednim hostingu co wynikało z jego konfiguracji

Nie powiedziałbym przedstawiam błedy:
  1. Undefined index: phaslo in F:\Apache Software Foundation\Apache2.2\htdocs\rejestracja2.php on line 7
  2.  
  3. Notice: Undefined index: email in F:\Apache Software Foundation\Apache2.2\htdocs\rejestracja2.php on line 8
  4.  
  5. Notice: Undefined index: rimie in F:\Apache Software Foundation\Apache2.2\htdocs\rejestracja2.php on line 9
  6.  
  7. Notice: Undefined index: rhaslo in F:\Apache Software Foundation\Apache2.2\htdocs\rejestracja2.php on line 10

a oto część kodu z tych linijek:
  1. $p_haslo=$_POST['phaslo'];
  2. $dmail=$_POST['email'];
  3. $dimie=$_POST['rimie'];
  4. $ehaslo=$_POST['rhaslo'];
tehaha
a sprawdź tak:
  1. if(isset($_POST['phaslo'])) $p_haslo=$_POST['phaslo'];
  2. if(isset($_POST['email'])) $dmail=$_POST['email'];
  3. if(isset($_POST['rimie'])) $dimie=$_POST['rimie'];
  4. if(isset($_POST['rhaslo'])) $ehaslo=$_POST['rhaslo'];
Ulysess
w przypadku gdy został formularz wysłany pewnie problemu nie ma ale co jeśli z linka zostało wklepane winksmiley.jpg np index.php?page=rejestracja&wyslano=1
Rid
Błędy znikły co może być tego powodem???Poprzedni działąło bez zarzutów.

Cytat(Ulysess @ 4.01.2011, 17:46:19 ) *
w przypadku gdy został formularz wysłany pewnie problemu nie ma ale co jeśli z linka zostało wklepane winksmiley.jpg np index.php?page=rejestracja&wyslano=1

Z linka nie ma możliwości przesył formularza metodą post.Czy muszę deklarować zmienne przez isset?questionmark.gif
tehaha
Cytat
Błędy znikły co może być tego powodem???Poprzedni działąło bez zarzutów.

a czytałeś to co Ci wcześniej napisałem?

Miałeś notice ponieważ posługiwałeś się zmiennymi, które nie zostały wcześniej zadeklarowane, zanim zaczniesz posługiwać się zmiennymi z tablicy $_POST, to musisz sprawdzić czy zostały ustawione, przynajmniej tak:

  1. if($_POST)
  2. {
  3. //tutaj przypisanie zmiennych z tablicy $_POST
  4.  
  5. }
Rid
Pewnie nie były wyświetlane,hmm no to trzeba będzie poprawiać.Ale czy warto-jak to nie są błędy?questionmark.gif
tehaha
warto, tutaj akurat jest mało istotna i nieszkodliwa sytuacja, ale warto żebyś nauczył się sprawdzać czy dane na których przeprowadzasz operacje istnieją i czy mają odpowiedni typ, bo tutaj skończyło się to notice'em, ale inne funkcje mogą sypać błędami, jeżeli podasz puste parametry, więc warto wyrobić sobie taki nawyk w pisaniu skryptów, bo nabierze to znaczenia przy większych skryptach
Rid
To mi się narobiło ,muszę teraz przerabiać całą strukturę dokumentu na trzech plikach:(,tak to jest jak się pracuje na źle skonfigurowanym serwerze:( sciana.gif withstupidsmiley.gif
tehaha
podczas pisania skryptu dawaj na samym początku
<?php
error_reporting(E_ALL);
?>
Rid
Żeby,nie zakładać nowego tematu pisze tutaj bo mam wielki problem otóż czy raportowanie błedów notice jest naprawdę wymagane do prawidłowego działania aplikacji?questionmark.gif
W formularzu mam coś takiego:
  1. <input type="text" id="rimie" name="rimie" size="18" value="<?php echo $_POST['rimie'];?>" maxlength="20"/>

gdzie opcja value przyjmuje wartość $POST.Zrobiłem tak ,aby po prawidłowym wpisaniu w tym polu, użytkownik nie musiał ponownie wpisywać tej wartości jeśli popełnił błąd w innym polu.
Tymczasem po wczytaniu strony wywala mi w polach jako wartość value notice.
Czy jedyna możliwość do wartości value dodać isset?questionmark.gif
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.