Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >

yahreck
Napisane: 12.06.2013, 18:05:41





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

Cytat(mar1aczi @ 12.06.2013, 15:43:32 ) *
Uprawnienia do katalogu/plików są poprawne? Nie ma nic w logach systemu?

Plik programu ma prawa rwx rwx rwx, a dodatkowo skrypt php umieściłem w tym samym folderze co program.
W logach serwera jest tylko uruchomienie i zakończenie procesu.
A logów systemowych nie mogę znaleźć, bo w folderze /var/log/ nie ma pliku syslog.

Cytat(erix @ 12.06.2013, 16:09:58 ) *
A php nie działa przypadkiem w chroot? Jak masz podpięty, FCGI, czy mod_php?

ups...
A jak to sprawdzić?
  Forum: Przedszkole · Podgląd postu: #1050547 · Odpowiedzi: 5 · Wyświetleń: 324

yahreck
Napisane: 12.06.2013, 14:22:27





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

Uruchamiam serwer w tle:
  1. <?php
  2. $pid = system("nohup ./sc_serv sc_serv_basic.conf >/dev/null 2>&1 & echo $!");
  3. ?>

i choć dostaję numer PID, to jednak serwer nie startuje sciana.gif
  Forum: Przedszkole · Podgląd postu: #1050505 · Odpowiedzi: 5 · Wyświetleń: 324

yahreck
Napisane: 12.06.2013, 13:03:55





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

Witam

Uruchamiam serwer shoutcast spod konsoli poleceniem sc_serv sc_serv_basic.conf
Proces się uruchamia i trwa.
Natomiast gdy uruchomię z poziomu skryptu php poleceniem system() mam komunikat o zakończeniu procesu, wygląda jakby go otwierał, ale zaraz zamykał: „I msg:<***> Logger shutdown” oraz „Return value: 255”.

  1. <?php
  2. $last_line = system('/sciezka_dostepu/sc_serv sc_serv_basic.conf', $retval);
  3.  
  4. <hr />Last line of the output: ' . $last_line . '
  5. <hr />Return value: ' . $retval;
  6. ?>


Polecenie system() się wykonuje, więc nie ma tu znaczenia tryb save_mode, bo przy obu zarówno on jak i off, objawy są te same.

Gdzie może tkwić problem?
Z góry dziękuję za ewentualne sugestie forumowiczów.
  Forum: Przedszkole · Podgląd postu: #1050494 · Odpowiedzi: 5 · Wyświetleń: 324

yahreck
Napisane: 24.03.2010, 11:24:35





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

U mnie zadziałało, gdy wyświetlanie wyników przerzuciłem do okienka tekstowego.
Może i Ty Qcumbeer musisz zrobić coś podobnego?
  1. <script type="text/javascript">
  2. function zmniejsz(czas) {
  3. wynik = czas-1;
  4. if (wynik!=0) {
  5. document.getElementById('czas').value = wynik
  6. setTimeout('zmniejsz(wynik)', 1000);
  7. } else {
  8. document.write ("koniec")
  9. }
  10. }
  11. </head>
  12. <body onload="zmniejsz(10);">
  13. <form>
  14. <input type="text" id="czas" />
  15. </form>
  16. </body>
  17. </html>


Cytat(Qcumbeer @ 24.03.2010, 07:47:33 ) *
nie moge zrozumieć dlaczego w tym skrypcie to działa! \/
  1. ...
  2. <div id="costam"></div>
  3. ...

Może dlatego działa, że wynik jest zwracany w miejscu znaczników <div> ?
  Forum: JavaScript · Podgląd postu: #728368 · Odpowiedzi: 4 · Wyświetleń: 779

yahreck
Napisane: 23.03.2010, 23:40:23





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

Nie tylko Ty Qcumbeer masz z tym problem.
Ja mam jeszcze prostszy skrypt typu timer, którego zadaniem jest odliczanie w dół np. od 10 do zera co sekundę i nie działa.

Mój problem polega na tym, że funkcja zmniejsz() po wywołaniu wykonuje się i zmniejsza argument 10 o 1 czyli wynik jest 9, a wewnątrz niej funkcja setTimeout() wywołuje ponownie funkcję zmniejsz(), ale tylko raz i 9 zmniejsza o 1 do 8, a potem wygląda na to, że przeglądarka się zapętla, bo w kółko kręci, kręci, kręci... i stoi na wyniku 8.
Co jest źle?
  1. <script type="text/javascript">
  2. function zmniejsz(czas) {
  3. wynik = czas-1;
  4. if (wynik!=0) {
  5. document.write (wynik)
  6. setTimeout('zmniejsz(wynik)', 1000);
  7. } else {
  8. document.write ("koniec")
  9. }
  10. }
  11. </head>
  12. <body onload="zmniejsz(10);">
  13. </body>
  14. </html>
  Forum: JavaScript · Podgląd postu: #728248 · Odpowiedzi: 4 · Wyświetleń: 779

yahreck
Napisane: 20.03.2010, 17:37:18





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

Dzięki melkorm.
A to ci dopiero, masz rację, że js nie będzie działać zagnieżdżone w php.
Dziwne, że z dwoma argumentami działało bez apostrofów/cudzysłowów, choć nie powinno, a z trzema już nie chciało...
I to mnie zmyliło. hehe
Najważniejsze, że działa!
  Forum: JavaScript · Podgląd postu: #726717 · Odpowiedzi: 4 · Wyświetleń: 688

yahreck
Napisane: 20.03.2010, 16:28:59





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

Mam działający skrypt na 3 plikach.
1. po kliknięciu na przycisk radiowy uruchamia się funkcja zapisz w pliku wybor.js
index.html
  1. <head>
  2. <meta content="text/html; charset=ISO-8859-2" http-equiv="content-type">
  3. <script type="text/javascript" src="wybor.js"></script>
  4. </head>
  5. <body>
  6. <?php
  7. $zmienna1="costam1";
  8. echo "<input name='rekord' type='radio' value='1' onclick='zapisz( $zmienna1, this.value)'>wybor1";
  9. echo "<input name='rekord' type='radio' value='2' onclick='zapisz( $zmienna1, this.value)'>wybor2";
  10. echo "<input name='rekord' type='radio' value='3' onclick='zapisz( $zmienna1, this.value)'>wybor3";
  11. echo "<br>";
  12. ?>
  13. </body>

2. funkcja zapisz przesyła dwie zmienne metodą GET do pliku zapisz.php
wybor.js
[JAVASCRIPT] pobierz, plaintext
  1. var xmlhttp;
  2.  
  3. function zapisz (jeden,dwa)
  4. {
  5. xmlhttp=GetXmlHttpObject();
  6. var url="zapisz.php";
  7. url=url+"?1="+jeden+"&2="+dwa;
  8. url=url+"&sid="+Math.random();
  9. xmlhttp.open("GET",url,true);
  10. xmlhttp.send(null);
  11.  
  12. }
  13.  
  14. function GetXmlHttpObject()
  15. {
  16. if (window.XMLHttpRequest)
  17. {
  18. return new XMLHttpRequest();
  19. }
  20. return null;
  21. }
  22.  
[JAVASCRIPT] pobierz, plaintext

3. zapis do bazy mySQL
zapisz.php
  1. <?php
  2. header("Content-Type: text/html; charset=iso-8859-2");
  3. require("dane_bazy.php");
  4. $1=$_GET["1"];
  5. $2=$_GET["2"];
  6. $sql = "UPDATE `tabela` SET `2`='$2' WHERE `1`='$1' LIMIT 1";
  7. $sql_result = mysql_query($sql,$conn) or die(mysql_error());
  8. mysql_close($conn);
  9. ?>
  10.  

Powyższe przykłady działają
Wszystko działa, ale wtedy i tylko wtedy, gdy w pliku index.html wywołam funkcję zapisz z dwoma argumentami.
=======================================================================
Gdy wprowadzam trzeci argument wywołania funkcji zapisz (w liniach 9-11) skrypt przestaje działać. Po prostu do bazy nic nie zapisuje.
Poniższe przykłady NIE działają
  1. <head>
  2. <meta content="text/html; charset=ISO-8859-2" http-equiv="content-type">
  3. <script type="text/javascript" src="wybor.js"></script>
  4. </head>
  5. <body>
  6. <?php
  7. $zmienna1="costam1";
  8. $zmienna2="costam2";
  9. echo "<input name='rekord' type='radio' value='1' onclick='zapisz( $zmienna1, $zmienna2, this.value)'>$wybor1";
  10. echo "<input name='rekord' type='radio' value='2' onclick='zapisz( $zmienna1, $zmienna2, this.value)'>$wybor2";
  11. echo "<input name='rekord' type='radio' value='3' onclick='zapisz( $zmienna1, $zmienna2, this.value)'>$wybor3";
  12. echo "<br>";
  13. ?>
  14. </body>

[JAVASCRIPT] pobierz, plaintext
  1. var xmlhttp;
  2.  
  3. function zapisz (jeden,dwa,trzy)
  4. {
  5. xmlhttp=GetXmlHttpObject();
  6. var url="zapisz.php";
  7. url=url+"?1="+jeden+"&2="+dwa+"&3="+trzy;
  8. url=url+"&sid="+Math.random();
  9. xmlhttp.open("GET",url,true);
  10. xmlhttp.send(null);
  11.  
  12. }
  13.  
  14. function GetXmlHttpObject()
  15. {
  16. if (window.XMLHttpRequest)
  17. {
  18. return new XMLHttpRequest();
  19. }
  20. return null;
  21. }
  22.  
[JAVASCRIPT] pobierz, plaintext

  1. <?php
  2. header("Content-Type: text/html; charset=iso-8859-2");
  3. require("dane_bazy.php");
  4. $1=$_GET["1"];
  5. $2=$_GET["2"];
  6. $3=$_GET["3"];
  7. $sql = "UPDATE `tabela` SET `2`='$2', `3`='$3' WHERE `1`='$1' LIMIT 1";
  8. $sql_result = mysql_query($sql,$conn) or die(mysql_error());
  9. mysql_close($conn);
  10. ?>

i grom go wie czemu nie działają ...
  Forum: JavaScript · Podgląd postu: #726678 · Odpowiedzi: 4 · Wyświetleń: 688

yahreck
Napisane: 11.06.2009, 13:11:47





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

Wielkie dzięki vokiel
Celna, cenna, krótka, ale treściwa, konkretna i profesjonalna odpowiedź.
Tego mi było trzeba. Tak trzymać!
Dzięki Tobie czegoś dodatkowego się nauczyłem.
Pozdrawiam.
  Forum: Przedszkole · Podgląd postu: #618370 · Odpowiedzi: 5 · Wyświetleń: 1 972

yahreck
Napisane: 10.06.2009, 07:18:14





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

Dzięki za odpowiedź, ale chyba się źle wysłowiłem.
Chodzi mi o to, że jeśli listę pobieram z bazy MySQL, to gdy spełni warunek listę ustawi na tym miejscu, ale gdy będzie wczytywał kolejne rekordy, warunek nie będzie spełniony i ustawi listę na pierwszej wczytanej pozycji.
Przy założeniu, że jest to ostatnia pozycja, (jak w moim przykładzie) to działa, ale w innym przypadku nie.

Przyszedł mi teraz pomysł, że wyniki z bazy MySQL można wrzucić do tymczasowej zmiennej tablicowej i wtedy wyświetlać według poniższego kodu:
  1. <?php
  2. // jesli 1 poziom
  3. if ($poziom==1){
  4. echo "<select name='poziom'>";
  5. echo "<option selected name='poziom'>$poziom[0]</option>";
  6. echo "<option name='poziom'>$poziom[1]</option>";
  7. echo "<option name='poziom'>$poziom[2]</option>";
  8. echo "</select>";
  9. }
  10. // jesli 2 poziom
  11. if ($poziom==2){
  12. echo "<select name='poziom'>";
  13. echo "<option name='poziom'>$poziom[0]</option>";
  14. echo "<option selected name='poziom'>$poziom[1]</option>";
  15. echo "<option name='poziom'>$poziom[2]</option>";
  16. echo "</select>";
  17. }
  18. // jesli 3 poziom
  19. if ($poziom==3){
  20. echo "<select name='poziom'>";
  21. echo "<option name='poziom'>$poziom[0]</option>";
  22. echo "<option name='poziom'>$poziom[1]</option>";
  23. echo "<option selected name='poziom'>$poziom[2]</option>";
  24. echo "</select>";
  25. }
  26. ?>

Kod się wydłuży, ale i tak będzie działać tylko wtedy, gdy liczba rekordów wyniesie 3, ale przestanie działać, gdy dopiszemy do bazy kolejne rekordy.

hmm ....
  Forum: Przedszkole · Podgląd postu: #617864 · Odpowiedzi: 5 · Wyświetleń: 1 972

yahreck
Napisane: 9.06.2009, 15:58:23





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

Jeśli chcę, aby lista rozwijalna była otwarta na jakiejś pozycji to robię to tak:
  1. <?php
  2. echo "<select name='poziom'>";
  3. echo "<option name='poziom'>1</option>";
  4. echo "<option name='poziom'>2</option>";
  5. echo "<option selected name='poziom'>3</option>";
  6. echo "</select>";
  7. ?>


A jak zrobić, aby lista pobierana z bazy została otwarta na wybranej pozycji w poniższym przykładzie?
  1. <?php
  2. $sql = "SELECT * FROM `tabela` ORDER BY `nazwa` ASC";
  3. $sql_result = mysql_query($sql,$conn) or die(mysql_error());
  4. echo "poziom <select name='poziom'>";
  5. while ($row = mysql_fetch_array($sql_result)) {
  6. echo "<option name='poziom'>$poziom</option>";
  7. }
  8. echo "</select>";
  9. ?>

Z góry dziękuję za ewentualne sugestie.
  Forum: Przedszkole · Podgląd postu: #617649 · Odpowiedzi: 5 · Wyświetleń: 1 972

yahreck
Napisane: 6.01.2008, 23:52:14





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

Wpisałem
  1. <input type="submit" name="koniec" value="Przejdź do testu" onclick="document.location.replace('koniec.php')">

a potem
  1. <form action="koniec.php" method="post" onsubmit="javascript:document.location.replace('koniec.php')">

ale nie działa. Albo coś źle robię, albo taka kombinacja nie działa, bo historia przeglądarki nie jest podmieniana.
  Forum: JavaScript · Podgląd postu: #427428 · Odpowiedzi: 2 · Wyświetleń: 1 071

yahreck
Napisane: 6.01.2008, 22:52:42





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

Chcę upiec dwie pieczenie na jednym ogniu, a ponieważ kucharzem nie jestem proszę o pomoc.
Mam formularz napisany w php (musi być w php, a nie w js, bo łączy się z mySQL).
  1. <?php
  2. <form action="koniec.php" method="post">
  3. // treść formularza
  4. <input name="koniec" type="submit" value="Koniec" />
  5. ?>

Podczas jego wysyłania chcę wywołać polecenie js
Kod
<script language="JavaScript">
document.location.replace('koniec.php');
</script>

Robię to, aby podmienić historę przeglądarki, żeby nie można było się cofnąć do poprzedniej strony. Wiem, że jest to nieeleganckie i tak się nie powinno robić, ale w tym jednym przypadku MUSZĘ to zrobić.
  Forum: JavaScript · Podgląd postu: #427396 · Odpowiedzi: 2 · Wyświetleń: 1 071

yahreck
Napisane: 6.01.2008, 17:01:09





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

Cytat(marcio @ 6.01.2008, 14:25:13 ) *
... "wyłączenie prawego klawisza"...
Moze da rade przerobic na lewy przycisk


Problem w tym, że cofnąć się można na dwa sposoby:
1. myszką - kliknąć na przycisk Wstecz w przeglądarce,
lub
2. klawiaturą - klawiszem Backspace.
  Forum: Przedszkole · Podgląd postu: #427246 · Odpowiedzi: 11 · Wyświetleń: 7 698

yahreck
Napisane: 6.01.2008, 14:17:22





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

Tak jak napisałem
Cytat(yahreck @ 6.01.2008, 06:52:57 ) *
... żeby nie można było oglądać formularza po jego wysłaniu, a jest to w przypadku mojego skryptu konieczne.

choć może niejasno się wyraziłem, chodzi mi o to, żeby nie można było oglądać formularza po jego wysłaniu za pomocą przycisku Wstecz w przeglądarce.
Natomiast rozwiązanie
Cytat(sf @ 6.01.2008, 08:30:11 ) *
header("Location: dziekujemy.php");exit;

niestety powoduje dopisanie do historii w przeglądarce, a tego być nie może.
Po za tym, formularz przesyła metodą POST informacje z formularza, które muszą się pokazać po jego wysłaniu, a w przypadku przekierowania header będą utracone.
  Forum: Przedszkole · Podgląd postu: #427158 · Odpowiedzi: 11 · Wyświetleń: 7 698

yahreck
Napisane: 6.01.2008, 06:52:57





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

1. Wiem, że nie można zablokować przycisku Wstecz w przeglądarce.
2. Wiem, że temat jest wałkowany co drugi dzień na forum.
3. Wiem jak zrobić żeby formularz nie był zapisany do bazy powtórnie.
4. Nie wiem jak zrobić, żeby nie można było oglądać formularza po jego wysłaniu, a jest to w przypadku mojego skryptu konieczne.

Próbuję nadpisać historię przeglądarki:
wersja 1
plik1:
  1. <a href ="javascript:document.location.replace('plik2')">plik2</a>

ta wersja działa (po przejściu do plik2, w historii przeglądarki nie ma plik1), ale ja potrzebuję wysłać formularz, więc jest to bezużyteczne

wersja 2
w pliku plik1 mam formularz, który przesyła dane do pliku plik2
plik2:
  1. <?php
  2. if (isset($ciasteczko)) 
  3. echo "<br>ciasteczko ustawione";
  4. else{ 
  5. setcookie("ciasteczko","wartosc");
  6. ?>
  7. <script>
  8. document.location.replace('plik2');
  9. </script>
  10. <?php
  11. }
  12. ?>

ta wersja nie działa (w historii przeglądarki jest plik1 i plik2) i nie wiem dlaczego

Nie upieram się przy JS, ale to wydaje mi się jedyne możliwe rozwiązanie.
Uważasz inaczej? Napisz
Z góry dziękuę za ewentualne sugestie.
  Forum: Przedszkole · Podgląd postu: #427062 · Odpowiedzi: 11 · Wyświetleń: 7 698

yahreck
Napisane: 20.12.2007, 14:10:26





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

Pozwoliłem sobie na pewien skrót i zostałem źle zrozumiany.
Już się poprawiam. Poniżej całość:
  1. <?php
  2. $sql = "SELECT `NAZWA` FROM `SPIS`";
  3. $sql_result = mysql_query($sql,$connection) or die(mysql_error());
  4. while ($row = mysql_fetch_array($sql_result)) {
  5. $tabele=$row[NAZWA];
  6.  
  7. $sql2 = "SELECT `TEST` FROM `$tabele`";
  8. $sql_result2 = mysql_query($sql2,$connection) or die(mysql_error());
  9. while ($row2 = mysql_fetch_array($sql_result2)) {
  10. $nr=$row2[TEST];
  11. echo "nr $nr";
  12. }
  13. }
  14. ?>


Mogę także w pętli pojedyńczo przepytać tabele i sprawdzić czy są puste, jeśli nie, to pobieram dane. Nie wiem tylko jak wyświetlić wyniki z poniższego zapytania?
  1. <?php
  2. SELECT COUNT(*) FROM `$tabele`
  3. ?>


Mam nadzieję, że tym razem nic nie namieszałem.

Potrzebowałem łopatologicznego przykładu i wreszczcie znalazłem na stronie http://webmade.org/kursy-online/mysql_num_...-kurs-mysql.php

... ile wierszy zostało wybranych przez dane zapytanie. Możemy zliczać wybrane wiersze za pomocą funkcji PHP mysql_num_rows, która zwraca ilość wybranych wierszy za pomocą zapytania. Funkcję tą wykorzystujemy według następującego schematu:
  1. <?php
  2. $tresc_zapytania = "SELECT nazwa_pola FROM nazwa_tabeli WHERE warunek";
  3. $zapytanie = mysql_query($tresc_zapytania);
  4. $wiersze = mysql_num_rows($zapytanie);
  5. ?>

Jeśli wynik zerowy, to znaczy, że tabela pusta.

Wszystko powinno być tak proste, jak to tylko możliwe, ale nie prostsze.
Albert Einstein
  Forum: Przedszkole · Podgląd postu: #421518 · Odpowiedzi: 2 · Wyświetleń: 990

yahreck
Napisane: 19.12.2007, 23:44:17





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

W jednej tabeli mam spis wszystkich pozostałych tabel, z których jedne są puste, inne nie.
Jak pobrać dane tylko z niepustych tabel, a puste zignorować?

Gdy piszę zapytanie typu
  1. SELECT `szukane_pole` FROM `$tabele`

to po napotkaniu na pierwsza pustą tabelę pojawia się komunikat:
Table 'moja_baza.Array' doesn't exist

Z góry dziękuję za ewentualne propozycje rozwiązania problemu.
  Forum: Przedszkole · Podgląd postu: #421380 · Odpowiedzi: 2 · Wyświetleń: 990

yahreck
Napisane: 9.12.2007, 20:14:47





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

OK teraz wszystko działa, a nie działało dlatego, że próbowałem w jednym komunikacie echo dać tekst i zmienną:
  1. <?php
  2. echo "język 1: $_POST[language][0]";
  3. ?>

Natomiast sama zmienna jest wyświetlana prawidłowo.
  1. <?php
  2. echo $_POST[language][0]
  3. ?>

Dziekuję
  Forum: Przedszkole · Podgląd postu: #418402 · Odpowiedzi: 5 · Wyświetleń: 1 109

yahreck
Napisane: 9.12.2007, 19:55:48





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

No super, widzę wszystko, tylko nie bardzo wiem jak tę kaszankę teraz uporządkować, bo takie odwołanie
  1. <?php
  2. $_POST[language][0]
  3. ?>

nie działa ...
Z góry dzięki za ewentualne sugestie.
  Forum: Przedszkole · Podgląd postu: #418397 · Odpowiedzi: 5 · Wyświetleń: 1 109

yahreck
Napisane: 9.12.2007, 19:47:37





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

Znalazłem na mądrej stronie
http://www.kurshtml.boo.pl/html/pole_wyboru,formularze.html
informacje jak przesyłać dane w tablicy metodą POST
Najpierw plik pierwszy:
  1. <form action="wynik.php" method="post">
  2. <?php
  3. echo "Jakie znasz jezyki";
  4. echo "<br>";
  5. echo "<input type='checkbox' checked value='niem' name='language[]'/> niemiecki";
  6. echo "<input type='checkbox' checked value='ang' name='language[]'/> angielski";
  7. echo "<br>";
  8. ?>
  9. <input name="koniec" type="submit" value="OK" />
  10. </form>

a potem akcja, próbowałem różnych kombinacji i nic:
  1. <?php
  2. echo "Wynik 1: $_POST[language]";
  3. // otrzymuję wynik Array
  4. echo "<br>";
  5.  
  6. echo "Wynik 2: $_POST[language][0]";
  7. // otrzymuję wynik Array[0]
  8. echo "<br>";
  9.  
  10. echo "Wynik 3: $language";
  11. // nic nie otrzymuję
  12. echo "<br>";
  13.  
  14. echo "Wynik 4: $language[0]";
  15. // nic nie otrzymuję
  16. ?>

Początkowo chciałem w pierwszym pliku użyć zamiast nazwy checkboxa
Kod
name='language[]'
po prostu
Kod
name='language'

ale wyświetla mi tylko ostatną zmienną.
Co robię źle?
Dziękuję.
  Forum: Przedszkole · Podgląd postu: #418391 · Odpowiedzi: 5 · Wyświetleń: 1 109

yahreck
Napisane: 14.10.2007, 17:13:36





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

Dziękuję wszystkim za pomoc.
Pomogło. yahoo.gif
  Forum: Przedszkole · Podgląd postu: #403941 · Odpowiedzi: 17 · Wyświetleń: 1 780

yahreck
Napisane: 14.10.2007, 15:32:56





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

Dzięki
Zaczyna działać, tzn. wchodzi w pętlę.
Gdy wpiszę poprawną nazwę użytkownika i hasło, mówi, że niepoprawne.
Zapewne trzeba zmienić poniższy zapis zmiennych:
  1. <?php
  2. $sql = "SELECT id 
  3. FROM users 
  4. WHERE username='$username' and password='$password'";
  5. ?>

ale żadne z poniższych nie działają
  1. <?php
  2. $sql ="SELECT id 
  3. FROM users 
  4. WHERE username=$_POST['username'] and password=$_POST['password']";
  5.  
  6. $sql = "SELECT id 
  7. FROM users 
  8. WHERE username='$_POST['username']' and password='$_POST['password']'";
  9.  
  10. $sql = "SELECT id 
  11. FROM users 
  12. WHERE username="$_POST['username']" and password="$_POST['password']"";
  13.  
  14. $sql = "SELECT id 
  15. FROM users 
  16. WHERE username='$_POST["username"]' and password='$_POST["password"]'' ";
  17. ?>
  Forum: Przedszkole · Podgląd postu: #403912 · Odpowiedzi: 17 · Wyświetleń: 1 780

yahreck
Napisane: 14.10.2007, 14:57:27





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

Miałem trochę (kilka lat?) przerwy w pisaniu kodu php i w moim starym dobrym podręczniku jeszcze pisali $password zamiast $_POST['password'] i działało, ale czytam, że od wersji PHP 4.2.0 nastąpiła zmiana jeśli chodzi o zmienne globalne. Ale to szczegół.

Zamiast
switch (do)
wstawiłem
switch ($_POST['do'])
i mimo to jest omijana pętla case, bo zmienna $do jest pusta.
W pliku login_form.inc jest instrukcja, żeby w adresie po login.php było dodawane ?do=authenticate
ale zmienna $do nie jest przesyłana.
Może od tamtych starych dobrych czasów to też się zmieniło i tu jest pies pogrzebany?
  Forum: Przedszkole · Podgląd postu: #403902 · Odpowiedzi: 17 · Wyświetleń: 1 780

yahreck
Napisane: 14.10.2007, 13:07:52





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

Cytat(cornholio666 @ 14.10.2007, 13:05:52 ) *
nie mysql_numrows tylko [manual\]http://pl2.php.net/manual/pl/function.mysql-num-rows.php\[/manual\]

Dziękuję bardzo za zauważenie tej literówki, moja przeoczenie, ale niestety nie pomogło.

Cytat(Cysiaczek @ 14.10.2007, 13:15:11 ) *
Popraw proszę tytuł topiku na zgodny z zasadami forum Przedszkole

Z miłą chęcią. Tylko jak go teraz zmienić?

Cytat(-agemlonZ- @ 14.10.2007, 13:18:22 ) *
hehe ale się zapędziłeś biggrin.gif Zamiast się nauczyć to ty przepisujesz.. zal.pl

Najlepiej uczyć się na przykładach.
  Forum: Przedszkole · Podgląd postu: #403877 · Odpowiedzi: 17 · Wyświetleń: 1 780

yahreck
Napisane: 14.10.2007, 11:33:04





Grupa: Zarejestrowani
Postów: 27
Dołączył: 12.10.2007

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

Przepisałem z mądrej książki dwa pliki:
1. login.php
  1. <?php
  2. switch ($do) {
  3.  
  4. case "authenticate":
  5. $connection = mysql_connect("mysql.adres_serwera", "moj_login", "moje_haslo")
  6. or die ("Couldn't connect to server.");
  7. $db = mysql_select_db("moja_baza", $connection)
  8. or die ("Couldn't select database.");
  9. $sql = "SELECT id 
  10. FROM users 
  11. WHERE username='$username' and password='$password'";
  12. $result = mysql_query($sql)
  13. or die("Couldn't execute query.");
  14. $num = mysql_numrows($result);
  15. if ($num == 1) {
  16. echo "You are a valid user!";
  17. echo "Your username is $username";
  18. echo "Your password is $password";
  19. } else if ($num == 0) {
  20. unset($do);
  21. echo "You are not authorized! Please try again.";
  22. include("login_form.inc");
  23. }
  24. break;
  25. default:
  26. include("login_form.inc");
  27. }
  28. ?>


2. login_form.inc
  1. <FORM ACTION="login.php?do=authenticate" METHOD="post">
  2. <table border=0>
  3. <tr>
  4. <td> <strong> Nazwa użytkownika </strong> </td>
  5. <td> <input type="text" name="username" size="10" maxsize="10"></td>
  6. </tr>
  7. <tr>
  8. <td> <strong> Hasło </strong> </td>
  9. <td> <input type="password" name="password" size="10" maxsize="10"></td>
  10. </tr>
  11. <tr>
  12. <td colspan="2" align="center"> <input type="submit" value="Zweryfikuj mnie"></td>
  13. </tr>
  14. </FORM>

W bazie danych utworzyłem tabelę users z trzema kolumnami:
- id
- username
- password

Gdy klikam na Zweryfikuj mnie, pola są czyszczone i nic się nie dzieje.
Co jest źle?
  Forum: Przedszkole · Podgląd postu: #403850 · Odpowiedzi: 17 · Wyświetleń: 1 780

2 Stron V   1 2 >

New Posts  Nowe odpowiedzi
No New Posts  Brak nowych odpowiedzi
Hot topic  Popularny temat (Nowe)
No new  Popularny temat (Brak nowych)
Poll  Sonda (Nowe)
No new votes  Sonda (Brak nowych)
Closed  Zamknięty temat
Moved  Przeniesiony temat
 

RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 10:29