Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Mój kod ie dodaje wpisu do bazy
Forum PHP.pl > Forum > Przedszkole
Luke_Star
Mam problem ze skryptem poniewaz zdaje mi sie ze wszystko jest OK niestewty nie daodaj mi wpisu do bazy i nie wiem dlaczego, moze wy pomozecie
  1. <?
  2. if (isset($_POST['submit_autor'])&& isset($_POST['submit_text']))
  3. {
  4. $connect=@mysql_connect("localhost","root","");
  5.  
  6. $submit_autor=$_POST['submit_autor'];
  7. $submit_text=$_POST['submit_text'];
  8.  
  9. $query='INSERT INTO oficial_cytaty VALUES(\"$submit_autor\",\"$submit_text\")';
  10. $write=mysql_query ($query)
  11.  
  12. echo 'Teść autora $submit_autor została pomyślnie dodana';
  13. }
  14. else {
  15. echo "BŁĄD W TRAKCIE WYKONYWANIA SKRYPTU"; }
  16.  
  17. if (isset($_GET['panel']) && $_GET['panel']=="submit") {
  18. ?>
  19. <form action="panel.php" method="post">
  20. <input type="text" name="submit_autor" size="30">
  21. textarea name="submit_text" wrap="VIRTUAL"></textarea>
  22. <input type="submit" value="Dodaj">
  23. </form>
  24. <?
  25. }
  26. else {
  27.  
  28. echo "Błędny Parametr lub zła ścieżka tongue.gif";
  29. }
  30. ?>
nospor
  1. <?php
  2. $query='INSERT INTO oficial_cytaty VALUES(\"$submit_autor\",\"$submit_text\")';
  3. ?>
Odnosnie tego kodu, polecam lekturę:
http://pl.php.net/manual/pl/language.types.string.php
http://pl.php.net/manual/pl/language.operators.string.php

na przyszlosc też uzywaj wyswietlania bledow oraz koncz instrukcje srednikiem:
  1. <?php
  2. $write=mysql_query ($query) or die (mysql_error());
  3. ?>
smile.gif
zbig13
Tak na pierwszy rzut oka to nie pasuje mi wiersz 10:
  1. <?php
  2. $query='INSERT INTO oficial_cytaty VALUES(\"$submit_autor\",\"$submit_text\")';
  3. ?>

po co dajesz \ przed cudzysłowem? Jeżeli cały zapytanie byłoby objęte znakami " ", to wtedy tak, ale zapytanie masz objęte apostrofami więc nie trzeba. Poza tym bezpieczniej zrobić tak:
  1. <?php
  2. $query="INSERT INTO oficial_cytaty VALUES('".$submit_autor."', '".$submit_text."')";
  3. ?>


Poczytaj trochę o stosowaniu zmiennych w stringach.

PS. jak nie pójdzie to wyłącz wyciszanie błedów przed mysql_connect (usuń znak @).

Edit: no nie, @nospor mnie uprzedził tongue.gif
Luke_Star
tak faktycznie chyba bede musiał poszerzyc swoja wiedze :] Czyli ogólnie to ze skrypt nie odpowiada jest wina złego stosowania stringów?
zbig13
Nie widzę żadnych innych błędów w kodzie, więc raczej to te złe stosowanie stringów jest przyczyną. Zresztą sprawdź to zapytanie co Ci napisałem i zobacz czy działa. Poza tym przejrzyj te linki co podał Ci nospor, masz tam opisane jak poprawnie stosować łańcuchy znaków.
Luke_Star
kurde cos nie umiem sobie z tym poradzić :/ Czy nie byłoby w złym guście poprosic o pokazanie naprawionego kodu sad.gif Bo albo ja nie myśle albo coś...
zbig13
Ehh no przecież napisałem Ci jak powinno wyglądać to zapytanie:
  1. <?php
  2. $query="INSERT INTO oficial_cytaty VALUES('".$submit_autor."', '".$submit_text."')";
  3. ?>


A jak mimo to dalej nie będzie działać, to weź usuń znak @ z przed mysql_connect, to może wyrzuci jakiś błąd.

Teraz zauważyłem jeszcze że w formularzu brakuje znaku < przed textarea (linia 22)
Kod
<input type="text" name="submit_autor" size="30">

textarea name="submit_text" wrap="VIRTUAL"></textarea>

<input type="submit" value="Dodaj">


Popraw te wszystkie błędy i napisz czy działa smile.gif
Luke_Star
własnie w tym problem że nie działa :| Dlatego sobie nie racze :| To wygląda troche tak jakby apache nie przekazywał wartość $_POST :| Mam serwa na kompie (PHPtriad) pod winde

P>S Brak jakichkolwiek błedów :|
pEbE
  1. <?php
  2. if (isset($_POST['submit_autor']) && isset($_POST['submit_text']))
  3. {
  4. $connect=mysql_connect("localhost","root","");
  5.  
  6. $submit_autor=$_POST['submit_autor'];
  7. $submit_text=$_POST['submit_text'];
  8.  
  9. $query="INSERT INTO oficial_cytaty VALUES ('$submit_autor', '$submit_text')";
  10. $write=mysql_query($query);
  11.  
  12. if($write) {
  13. echo 'Treść autora '.$submit_autor.' została pomyślnie dodana';
  14. }
  15. else {
  16. echo 'BŁĄD W TRAKCIE WYKONYWANIA SKRYPTU';
  17. }
  18. }
  19.  
  20. if (isset($_GET['panel']) && $_GET['panel']=='submit') {
  21. ?>
  22. <form action="panel.php" method="post">
  23. <input type="text" name="submit_autor" size="30">
  24. <textarea name="submit_text" wrap="VIRTUAL"></textarea>
  25. <input type="submit" value="Dodaj">
  26. </form>
  27. <?
  28. }
  29. else {
  30.  
  31. echo "Błędny Parametr lub zła ścieżka tongue.gif";
  32. }
  33. ?>
Luke_Star
Wiem że może zanudzam... ale to nie trybi :| i nie wiem dlaczego. Jeżeli zrobi skrypt który tylko i wyłacznie łaczy i wysyła wpisane dane (bez formularza, dane jako zmienne) wszystko trybi ślicznie. Jak chce przekazac przez post :| To już nic....

Nawet jak zrobie na metode GET to mam to samo :|
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.