Niepoprawne wyświetlanie tablicy

0

Mam problem i nie mogę sobie poradzić... Otóż mam tablicę z której potrzeba wyświetlić wcześniej wybrany przez użytkownika element. Niby wszystko w kodzie jest ok, ale za każdym razem wyskakuje mi "nie można odnaleźć", pomimo, że wszystko w kodzie jest poprawnie (z innymi danymi skrytp śmiga).
Będę wdzięczna jak ktoś by mi pomógł rozwiązać ten problem... :)

<?php

class Postac {
  
  public $_bohater = array();
  public $_atrybuty = array();
  
  public function dodaj_osobe($bohater, $grupa, $krew, $halas, $milosc, $stroz)
    {
	  $this->_bohater[] = $bohater;
	  
	  $this->_atrybuty[] = array(
	  'grupa' => $grupa,
	  'krew' => $krew,
	  'halas' => $halas,
	  'milosc' => $milosc,
	  'stroz' => $stroz
	  );
	}

public function _construct()
  {
    $this->dodaj_osobe('Damon Salvatore', '1', 'power', 'spr', 'podryw', 'tak');
    $this->dodaj_osobe('Elena Gilbert', '2', 'obojetny', 'sluch', 'usmiech', 'moze');
    $this->dodaj_osobe('Bonnie', '3', 'strach', 'ucieczka', 'wzrok', 'szukam');
}

public function szukaj_osobe($grupa, $krew, $halas, $milosc, $stroz)
  {
    $poszukiwany = array(
    'grupa' => $grupa,
	'krew' => $krew,
	'halas' => $halas,
    'milosc' => $milosc,
	'stroz' => $stroz
	);
	
	
	$zwrot = array();
	for($i = 0; $i < count($this->_atrybuty); $i++)
	  {
	    if($poszukiwany == $this->_atrybuty[$i])
		  {
		$zwrot[] = $this->_bohater[$i];
}
}
    return $zwrot;
}
};

$czlowiek = new Postac();
$grupa = isset($_POST['grupa']) ? $_POST['grupa'] : FALSE;	
$krew = isset($_POST['krew']) ? $_POST['krew'] : FALSE;
$halas = isset($_POST['halas']) ? $_POST['halas'] : FALSE;
$milosc = isset($_POST['milosc']) ? $_POST['milosc'] : FALSE;
$stroz = isset($_POST['stroz']) ? $_POST['stroz'] : FALSE;



$postacie = $czlowiek->szukaj_osobe($grupa, $krew, $halas, $milosc, $stroz);

if($postacie == array()){
  echo 'Błąd! Spróbuj ponownie';
  }
    else {
	echo '<b>Oto twoja postać!</b></br>';
	
	for($i = 0; $i < count($postacie); $i++)
	{
	echo ($i+1).'. '.$postacie[$i].' - <a href="jakis_plik.php?postac='.$postacie[$i].'">dowiedz się więcej o postaci do której pasujesz!</a><br>';
	}
	}
?>	

Formularz:

<h3>Sprawdź którym bohaterem jesteś!</h3>

<div id="formularz">

<form action="wynik.php" method="post">

<p>Jakaś grupa zaczepia cię na ulicy i chce zabrać pieniądze, co robisz?
<select name="grupa">
<option value="3">krzyczysz i uciekasz</option>
<option value="2">wyciągasz portfel i oddajesz</option>
<option value="1">pyskujesz i chcesz się bić</option>

</select>
</p>
<br />
<p>Jak reagujesz na widok krwi?
<select name="krew">
<option value="strach">natychmiast mdlejesz</option>
<option value="obojetny">jest ci obojętna</option>
<option value="power">przecież krew daje życie!</option>

</select>
</p>
<br />
<p>Idąc w nocy ulicą słyszysz hałas za rogiem. Co robisz?
<select name="halas">
<option value="ucieczka">przechodzisz szybko na drugą stronę jezdni</option>
<option value="sluch">nasłuchujesz, ale nie podchodzisz</option>
<option value="spr">idziesz sprawdzić</option>
</select>
</p>
<br />
<p>Przypadkiem spotykasz super dziewczynę/chłopaka.
<select name="milosc">
<option value="wzrok">spuszczasz wzrok i idziesz dalej</option>
<option value="usmiech">uśmiechasz się z sympatii, ale nic nie mówisz</option>
<option value="podryw">zagadujesz i podrywasz</option>
</select>
</p>
<br />
<p>Twój przyciaciel jest w niebezpieczeństwie. Co robisz?
<select name ="stroz">
<option value="szukam">szukasz pomocy z zewnątrz</option>
<option value="moze">analizujesz sytuację i starasz się pomóc</option>
<option value="tak">pomagasz choćby za cenę zdrowia</option>
</select>
</p>
<br />


<center><input type="submit" name="Submit" value="Sprawdź jakim bohaterem The Vampire Diaries jesteś!" /></center>
</form>
0

za każdym razem wyskakuje mi "nie można odnaleźć"

zacząłem od próby wyszukania tego tekstu w Twoim kodzie.. i go nie ma.. jak mam odnaleźć błąd, jak miejsce generujące błąd nie jest uwzględnione w listingu?

0

Błąd! Spróbuj ponownie

Chodzi mi o ten tekst :)

0

Czyli nikt nie może mi pomóc?... :(

0

public function _construct()
dodaj o jeden podkreślnik więcej w nazwie...

0

Ehh cały czas to samo... :(

0

jeśli Twój konstruktor wygląda tak:
public function __construct()

to znaczy, że masz skopane coś w formularzu. (ewentualnie zaznaczasz odpowiedzi nie pasujące do żadnego bohatera)

EDIT:
podejrzyj sobie co się kryje w _POST:
var_dump($_POST);
zobacz czy są tam te pola co powinny być i czy wszystkie mają typ string

0

W formularzu wszystko jest dobrze i pokrywa się z kodem. Tak samo wszystkie pola są stringami... Nie wiem czemu tak się dzieje. Ten sam kod z innymi danymi działa bez problemu.. :(

0

jak wpisałem to:

$grupa = isset($_POST['grupa']) ? $_POST['grupa'] : FALSE;        
$krew = isset($_POST['krew']) ? $_POST['krew'] : FALSE;
$halas = isset($_POST['halas']) ? $_POST['halas'] : FALSE;
$milosc = isset($_POST['milosc']) ? $_POST['milosc'] : FALSE;
$stroz = isset($_POST['stroz']) ? $_POST['stroz'] : FALSE;
//var_dump($_POST);

na sztywno to wyświetliła mi się poprawna propozycja bohatera, więc NA PEWNO formularz jest skopany.
wklej tego var_dumpa w tym miejscu co zaznaczyłem w kodzie wyżej i wklej to co wyświetli na forum

0

Wyszło mi coś takiego:

array
  'grupa' => string '1' (length=1)
  'krew' => string '1' (length=1)
  'halas' => string '1' (length=1)
  'milosc' => string '1' (length=1)
  'stroz' => string '1' (length=1)
  'Submit' => string 'Sprawdź jakim bohaterem The Vampire Diaries jesteś!' (length=53)

Błąd! Spróbuj ponownie  
0

czyli jednak masz błąd formularzu... ja np. nie widzę tam nigdzie końca tego diva:

</p>
0

Ehhh zamknęłam diva, ale ciągle to samo... :/

0

wgrałem przed chwilą to na serwer dokładnie w takiej postaci jak wkleiłaś (plus poprawienie tego __construct i domknięcie diva) i działa.

<form action="wynik.php" method="post"> może tutaj masz zły adres do pliku php?
0

Zmieniłam nazwy plików mimo iż były dobre, ale ciagle to samo i na mozilli i internecie... Nie wiem, może na innym kompie będzie działać. W sumie jak u ciebie chodzi... Tylko to trochę dziwne, że u mnie nie chce... :p

1

spróbuj zapisać takie coś i wgrać na serwer:

<?php
 
class Postac {
 
  public $_bohater = array();
  public $_atrybuty = array();
 
  public function dodaj_osobe($bohater, $grupa, $krew, $halas, $milosc, $stroz)
    {
          $this->_bohater[] = $bohater;
 
          $this->_atrybuty[] = array(
          'grupa' => $grupa,
          'krew' => $krew,
          'halas' => $halas,
          'milosc' => $milosc,
          'stroz' => $stroz
          );
        }
 
public function __construct()
  {
    $this->dodaj_osobe('Damon Salvatore', '1', 'power', 'spr', 'podryw', 'tak');
    $this->dodaj_osobe('Elena Gilbert', '2', 'obojetny', 'sluch', 'usmiech', 'moze');
    $this->dodaj_osobe('Bonnie', '3', 'strach', 'ucieczka', 'wzrok', 'szukam');
}
 
public function szukaj_osobe($grupa, $krew, $halas, $milosc, $stroz)
  {
    $poszukiwany = array(
    'grupa' => $grupa,
        'krew' => $krew,
        'halas' => $halas,
    'milosc' => $milosc,
        'stroz' => $stroz
        );
 
 
        $zwrot = array();
        for($i = 0; $i < count($this->_atrybuty); $i++)
          {
            if($poszukiwany == $this->_atrybuty[$i])
                  {
                $zwrot[] = $this->_bohater[$i];
}
}
    return $zwrot;
}
};
 
$czlowiek = new Postac();
$grupa = isset($_POST['grupa']) ? $_POST['grupa'] : FALSE;        
$krew = isset($_POST['krew']) ? $_POST['krew'] : FALSE;
$halas = isset($_POST['halas']) ? $_POST['halas'] : FALSE;
$milosc = isset($_POST['milosc']) ? $_POST['milosc'] : FALSE;
$stroz = isset($_POST['stroz']) ? $_POST['stroz'] : FALSE;
 
 
 
$postacie = $czlowiek->szukaj_osobe($grupa, $krew, $halas, $milosc, $stroz);
 
if($postacie == array()){
  echo 'Błąd! Spróbuj ponownie';
  }
    else {
        echo '<b>Oto twoja postać!</b></br>';
 
        for($i = 0; $i < count($postacie); $i++)
        {
        echo ($i+1).'. '.$postacie[$i].' - <a href="jakis_plik.php?postac='.$postacie[$i].'">dowiedz się więcej o postaci do której pasujesz!</a><br>';
        }
        }
?>

<h3>Sprawdź którym bohaterem jesteś!</h3>
 
<div id="formularz">
 
<form action="" method="post">
 
<p>Jakaś grupa zaczepia cię na ulicy i chce zabrać pieniądze, co robisz?
<select name="grupa">
<option value="3">krzyczysz i uciekasz</option>
<option value="2">wyciągasz portfel i oddajesz</option>
<option value="1">pyskujesz i chcesz się bić</option>
 
</select>
</p>
<br />
<p>Jak reagujesz na widok krwi?
<select name="krew">
<option value="strach">natychmiast mdlejesz</option>
<option value="obojetny">jest ci obojętna</option>
<option value="power">przecież krew daje życie!</option>
 
</select>
</p>
<br />
<p>Idąc w nocy ulicą słyszysz hałas za rogiem. Co robisz?
<select name="halas">
<option value="ucieczka">przechodzisz szybko na drugą stronę jezdni</option>
<option value="sluch">nasłuchujesz, ale nie podchodzisz</option>
<option value="spr">idziesz sprawdzić</option>
</select>
</p>
<br />
<p>Przypadkiem spotykasz super dziewczynę/chłopaka.
<select name="milosc">
<option value="wzrok">spuszczasz wzrok i idziesz dalej</option>
<option value="usmiech">uśmiechasz się z sympatii, ale nic nie mówisz</option>
<option value="podryw">zagadujesz i podrywasz</option>
</select>
</p>
<br />
<p>Twój przyciaciel jest w niebezpieczeństwie. Co robisz?
<select name ="stroz">
<option value="szukam">szukasz pomocy z zewnątrz</option>
<option value="moze">analizujesz sytuację i starasz się pomóc</option>
<option value="tak">pomagasz choćby za cenę zdrowia</option>
</select>
</p>
<br />
 
 
<center><input type="submit" name="Submit" value="Sprawdź jakim bohaterem The Vampire Diaries jesteś!" /></center>
</form></div>
0

Teraz działa! Jesteś wielki :D
A mogę wiedzieć co zmieniłeś?

0

tylko to co mówiłem:

public function _construct()            -> public function __construct()
<form action="wynik.php" method="post"> -> <form action="" method="post">`
</form>                                 -> </form></div>
0

Hmmm to dziwne, że wtedy u mnie nawet po poprawkach nie działało, a po wklejeniu już tak ... Mimo wszystko wielkie dzięki za pomoc! :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1