Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem ze skryptem PHP
Forum PHP.pl > Forum > PHP
krzyzak_p
stworzylem nastepujacy skrypt w php, ktorego celem jest dodawanie do bazy danych adresu e-mail, ktory mam zamiar wykorzystac do subskrypcji. Gdzies jest blad, tylko nie moge go zanlezc... prosze o pomoc.. o to te pliki

plik subscript.php
  1. <?php #skrypt odpowiedzialny za subskrypcje
  2. // teraz stworzymy formularz....
  3.  
  4. if (isset($_POST['submit'])) {
  5. // obsluz formularz
  6.  
  7. $message = NULL;
  8. // tworzyzmy pousta zmienna
  9.  
  10. //sprawdzmy adres e-mail
  11. if (empty($_POST['email'])) {
  12. $ln = FALSE;
  13. $message .= '<p> Nie podales swojego adresu e-mail!</p>';
  14. } else {
  15. $ln = $_POST['email'];
  16. }
  17.  
  18.  
  19. if ($ln) { 
  20. // jezeli wszystko dziala 
  21.  
  22. //to dodajemy uzytkownika do bazy
  23. require_once('mysql_conect.php'); //laczenie sie z baza
  24.  
  25.  
  26. // tworzymy zapytanie do bazy
  27. $query = &#092;"INSERT INTO subscript (email) VALUES ('$ln')\";
  28. $result = @mysql_query ($query);
  29.  
  30. //wykonaj zapytanie
  31. if ($result) {
  32. //jezeli wykonano bez przeszkod
  33.  
  34. echo '<p><b>zostales dodany do Subskrypcji</p></b>';
  35. exit(); 
  36. //opusc skrypt
  37.  
  38. } else {
  39. //jezeli nei wyakonano zapytania do bazy
  40. $message = '<p> nie zostaels dodany do subskrypcji, porsimy sporbowac pozniej</p><p>' . mysql_error() . '</p>';
  41. }
  42.  
  43. // konczymy polaczenie z baza danych
  44.  
  45. }
  46. } else {
  47. $message .= '<p>Sproboj jeszcze raz.</p>';
  48. }
  49.  
  50. // koniec glownego wyrazenia
  51.  
  52. //wyswietl komunikaty o bledach na stronie
  53. if (isset($message)) {
  54. echo '<font color=\"red\">', $message, '</font>';
  55. }
  56. ?>
  57.  
  58. <form action=\"<?php echo $_SERVER['PHP_SELF']; ?>\" method=\"post\">
  59. <fieldset><legend> POdaj swoj adres e-mail:</legend>
  60.  
  61. <p><b>Adres e-mail:</b> <input type=\"text\" name=\"email\" size=\"40\" maxlenght=\"60\" value=\"<?php if (isset($_Post['email'])) echo $_POST['email']; ?>\" /> </p>
  62. <div align=\"center\"><input type=\"submit\" name=\"submit\" value=\"Zapisz się\" /></div>
  63.  
  64. </form>


i plik mysql_conect.php
  1. <?php #skrypt odpowiedzialny za polaczenie z baza danych
  2.  
  3. // w stalych umieszczam dane do laczenia sie z baza..
  4. $DB_USER = 'nazwa';
  5. $DB_PASSWORD = 'haslo';
  6. $DB_HOST = 'localhost';
  7. $DB_NAME = 'nazwa_bazy';
  8.  
  9. // laczymy sie z baza i wybieramy baze
  10. mysql_conect (DB_HOST, DB_USER, DB_PASSWORD);
  11. mysql_select_db (DB_NAME);
  12. ?>

w skrypcie mysql_conect specjaleni zmienilem dane..., ale w orginale dane sa poprawne. z gry dzieki za pomoc

----
Kod php umieszczamy w [php]
hwao
Ive
a nie zapomniales podac co ci sie na ekranie wyswietla jak odpalisz skrypt?
krzyzak_p
jest podane przeciez w liniach 31-57...
mpps
chodzi o to, jaką informację Tobie wyświetla funkcja mysql_error(); a nie, co Ty sobie wypisałeś, żeby Ci wyświetlał w echo();...
angel2953
Cytat(krzyzak_p @ 2004-10-10 17:58:59)
  1. <?php
  2.  
  3. // w stalych umieszczam dane do laczenia sie z baza..
  4. $DB_USER = 'nazwa';
  5. $DB_PASSWORD = 'haslo';
  6. $DB_HOST = 'localhost';
  7. $DB_NAME = 'nazwa_bazy';
  8.  
  9. // laczymy sie z baza i wybieramy baze
  10. mysql_conect (DB_HOST, DB_USER, DB_PASSWORD);
  11. mysql_select_db (DB_NAME);
  12.  
  13. ?>

Błąd jest prosty tongue.gif

Albo to dajesz jako zmienne i wtedy kod wygląda tak:

  1. <?php
  2.  
  3. // w stalych umieszczam dane do laczenia sie z baza..
  4. $DB_USER = 'nazwa';
  5. $DB_PASSWORD = 'haslo';
  6. $DB_HOST = 'localhost';
  7. $DB_NAME = 'nazwa_bazy';
  8.  
  9. // laczymy sie z baza i wybieramy baze
  10. mysql_conect ( $DB_HOST, $DB_USER, $DB_PASSWORD );
  11. mysql_select_db ( $DB_NAME );
  12.  
  13. ?>


albo definiujesz jako stałe, czyli tak:

  1. <?php
  2.  
  3. // w stalych umieszczam dane do laczenia sie z baza..
  4. define ( DB_USER, &#092;"nazwa\" );
  5. define ( DB_PASSWORD, &#092;"haslo\" );
  6. define ( DB_HOST, &#092;"localhost\" );
  7. define ( DB_NAME, &#092;"nazwa_bazy\" );
  8.  
  9. // laczymy sie z baza i wybieramy baze
  10. mysql_conect ( DB_HOST, DB_USER, DB_PASSWORD );
  11. mysql_select_db ( DB_NAME );
  12.  
  13. ?>


Albo albo biggrin.gif:D trzeba się zdecydować
krzyzak_p
poprawilem to, ale po wpisaniu dancyh do okienka i wyslaniu pojawia mi si epusty ekran, a w bazie nie przybylo zadnego rekordu... cos jest nadal nei tak, albo baza na dhost.info jest skopana...
angel2953
a daj za zapytaniem do MySQL'a takie coś:
  1. <?php
  2. or die ( mysql_error() );
  3. ?>
dzięki czemu dowiesz się jaki jest błąd... biggrin.gif
krzyzak_p
wstukalem to, ale bez zmian, zreszt azobacz samtutaj...
czachor
Ta literówka - mysql_conect (jedno 'n') - to tylko tutaj na forum?
Bo jeśli już to mysql_connect" title="Zobacz w manualu PHP" target="_manual.
Jeśli to tylko na forum, to nic nie pisałem smile.gif
krzyzak_p
o ***** faktycznie mam tylko jedno "n" w kodzie.. tnx ale i tak nadal nie dziala:)) ehh ja to mam talent do psucia
angel2953
  1. <?php #skrypt odpowiedzialny za subskrypcje
  2. // teraz stworzymy formularz....
  3.  
  4. if (isset($_POST['submit'])) {
  5. // obsluz formularz
  6.  
  7. $message = NULL;
  8. // tworzyzmy pousta zmienna
  9.  
  10. //sprawdzmy adres e-mail
  11. if (empty($_POST['email'])) {
  12. $ln = FALSE;
  13. $message .= '<p> Nie podales swojego adresu e-mail!</p>';
  14. } else {
  15. $ln = $_POST['email'];
  16. }
  17.  
  18.  
  19. if ($ln) {
  20. // jezeli wszystko dziala
  21.  
  22. //to dodajemy uzytkownika do bazy
  23. require_once('mysql_conect.php'); //laczenie sie z baza
  24.  
  25.  
  26. // tworzymy zapytanie do bazy
  27. $query = &#092;"INSERT INTO subscript (email) VALUES ('$ln')\";
  28. $result = @mysql_query ($query) 
  29. // wyświetlenie błedu jeśli zaistnieje
  30. or die ( mysql_error() ); 
  31.  
  32. //wykonaj zapytanie
  33. if ($result) {
  34. //jezeli wykonano bez przeszkod
  35.  
  36. echo '<p><b>zostales dodany do Subskrypcji</p></b>';
  37. exit();
  38. //opusc skrypt
  39.  
  40. } else {
  41. //jezeli nei wyakonano zapytania do bazy
  42. $message = '<p> nie zostaels dodany do subskrypcji, porsimy sporbowac pozniej</p><p>' . mysql_error() . '</p>';
  43. }
  44.  
  45. // konczymy polaczenie z baza danych
  46.  
  47. }
  48. } else {
  49. $message .= '<p>Sproboj jeszcze raz.</p>';
  50. }
  51.  
  52. // koniec glownego wyrazenia
  53.  
  54. //wyswietl komunikaty o bledach na stronie
  55. if (isset($message)) {
  56. echo '<font color=\"red\">', $message, '</font>';
  57. }
  58. ?>
  59.  
  60. <form action=\"<?php echo $_SERVER['PHP_SELF']; ?>\" method=\"post\">
  61. <fieldset><legend> POdaj swoj adres e-mail:</legend>
  62.  
  63. <p><b>Adres e-mail:</b> <input type=\"text\" name=\"email\" size=\"40\" maxlenght=\"60\" value=\"<?php if (isset($_Post['email'])) echo $_POST['email']; ?>\" /> </p>
  64. <div align=\"center\"><input type=\"submit\" name=\"submit\" value=\"Zapisz się\" /></div>
  65.  
  66. </form>

  1. <?php #skrypt odpowiedzialny za polaczenie z baza danych
  2.  
  3. // w stalych umieszczam dane do laczenia sie z baza..
  4. $DB_USER = 'nazwa';
  5. $DB_PASSWORD = 'haslo';
  6. $DB_HOST = 'localhost';
  7. $DB_NAME = 'nazwa_bazy';
  8.  
  9. // laczymy sie z baza i wybieramy baze
  10. mysql_conect ( $DB_HOST, $DB_USER, $DB_PASSWORD) 
  11. // wyświetlenie błedu jeśli zaistnieje
  12. or die ( mysql_error() );
  13. mysql_select_db ( DB_NAME ) 
  14. // wyświetlenie błedu jeśli zaistnieje
  15. or die ( mysql_error() );
  16. ?>


spróbuj tego kodu, oraz sprawdź czy w
  1. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">


w polu action jest wpisana nazwa pliku... Czasami się zdarza, że nie wpisuje... I podaj jakie błędy wyświetlają się podczas działania skryptu...
krzyzak_p
wrzucilem to, poprawilem w
  1. mysql_conect ( $DB_HOST, $DB_USER, $DB_PASSWORD)
na mysql _connect.... a tak to otrzymuje cos takiego... Access denied for user: 'krzyzakp@localhost' to database 'DB_NAME'
scanner
Przeniesione: Skrypty php -> php
Powód: Skrypty php to problemy z gotowymi skryptami obcych autorów. Własne problemy opisujemy na php
Wieviór
Angel 2953 zrobił tu lekki błąd:

  1. <?php #skrypt odpowiedzialny za polaczenie z baza danych
  2.  
  3. // w stalych umieszczam dane do laczenia sie z baza..
  4. $DB_USER = 'nazwa';
  5. $DB_PASSWORD = 'haslo';
  6. $DB_HOST = 'localhost';
  7. $DB_NAME = 'nazwa_bazy';
  8.  
  9. // laczymy sie z baza i wybieramy baze
  10. mysql_conect ( $DB_HOST, $DB_USER, $DB_PASSWORD) 
  11. // wyświetlenie błedu jeśli zaistnieje
  12. or die ( mysql_error() );
  13. mysql_select_db ( DB_NAME ) // powinno być $DB_NAME
  14. // wyświetlenie błedu jeśli zaistnieje
  15. or die ( mysql_error() );
  16. ?>



OTO POPRAWNY KOD:
  1. <?php #skrypt odpowiedzialny za polaczenie z baza danych
  2.  
  3. // w stalych umieszczam dane do laczenia sie z baza..
  4. $DB_USER = 'nazwa';
  5. $DB_PASSWORD = 'haslo';
  6. $DB_HOST = 'localhost';
  7. $DB_NAME = 'nazwa_bazy';
  8.  
  9. // laczymy sie z baza i wybieramy baze
  10. mysql_conect ( $DB_HOST, $DB_USER, $DB_PASSWORD) 
  11. // wyświetlenie błedu jeśli zaistnieje
  12. or die ( mysql_error() );
  13. mysql_select_db ( $DB_NAME ) 
  14. // wyświetlenie błedu jeśli zaistnieje
  15. or die ( mysql_error() );
  16. ?>


Zresztą popatrz czasem na błędy, które Ci pokazuje...
krzyzak_p
WIELKIE DZIEKI!! w koncu dziala.. a juz tracielm nadzieje..
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.