Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nic sie nie dzieje... Bardzo wazne!
Forum PHP.pl > Forum > PHP
cichy_bob
Kod
if($news == "add")

{



    echo "<FORM METHOD=POST ACTION='$PHP_SELF?news=save'>";

echo "<TABLE ALIGN=center CELLSPACING=0 CELLPADING=0 WIDTH=100%>";

echo "<TR>";

    echo "<TD BGCOLOR=#333333> &nbsp; DODAJ NEWS</TD>";

echo "</TR>";

echo "</TABLE>";

echo "<TABLE ALIGN=center CELLSPACING=0 CELLPADING=0>";

echo "<TR>";

    echo "<TD>Podpis:</TD>";

    echo "<TD><INPUT TYPE='text' NAME='nick' MAXLENGHT=20></TD>";

echo "</TR>";

echo "<TR>";

    echo "<TD>Temat:</TD>";

    echo "<TD><INPUT TYPE='text' NAME='subject' MAXLENGHT=20></TD>";

echo "</TR>";

echo "<TR>";

    echo "<TD>Tresc:</TD>";

    echo "<TD><TEXTAREA NAME='news' ROWS='10' COLS='50'></TEXTAREA></TD>";

echo "</TR>";

echo "<TR>";

echo "<TR>";

    echo "<TD><INPUT TYPE='reset' VALUE=Wyczysc></TD>";

    echo "<TD><INPUT TYPE='submit' VALUE=Dodaj></TD>";

echo "</TR>";

echo "</TABLE>";

    echo "</FORM>";



}



elseif($news == "save")

{

    echo "<TABLE ALIGN=center CELLSPACING=0 CELLPADING=0 WIDTH=100%>";

  echo "<TR>";

     echo "<TD BGCOLOR=#333333> &nbsp; DODAJ NEWS</TD>";

  echo "</TR>";

    echo "</TABLE>";



    if(empty($nick) OR empty($news) OR empty($subject))

  {

     echo "<TABLE><TR><TD>Nie wypelniles niektorych pol formularza! <A HREF=javascript:history.back(1) CLASS=menu>Powrot...</A></TD></TR></TABLE>";

  }

    else

  {



  $query = "INSERT INTO $db[news] VALUES('', '$subject', '$nick', '$_POST[news]', '$info[date]')";



     $result = mysql_query($query);



  if(!($result))

  {

  echo "<TABLE><TR><TD>Wystapil blad podczas dodawania newsa!</TD></TR></TABLE>";

  }

  else

  {

  echo "<TABLE><TR><TD>News zostal pomyslnie dodany! <A HREF=news.php?a=add CLASS=menu>Dodaj kolejny</A></TD></TR></TABLE>";

  }



    }



}


To taki maly skrypcik do dodawania newsa, problem w tym ze gdy juz wpisze wszystko to nic sie nie dzieje. Polaczenie z baza jest i wogole wszystko OK bo mialem wczesniej na funkcjach to i dzialalo ale teraz nie dziala. Gdy bez wpisywania czegokowliek w formularzu, podam adres: index.php?news=save to wyskakuje ze nie wypelnilem wszystkich pol formularza. Co moze byc przyczyna? Co mam dodac do skryptu aby wszystko bylo OK?
kurtz
Hej
Cytat
Co moze byc przyczyna?
Prawdopodobnie chodzi problem zmiennych globalnych - czyli wychodzi niepelna wiedza nt php oraz parametru register_globals. Twoj skrypt zaklada ze ten parametr (php.ini) ma wartosc On, tymczasem ze wzgledow bezpieczenstwa powinno i pewnie jest Off.

Aby przekonwac czy o to chodzi stowrz prosty plik np test.php z trescia[php:1:015e013764]echo "news global: " . $news . "<br />";
echo "news GET: " . $_GET["news"];
[/php:1:015e013764]Teraz wywolaj plik w przgladarce podajac parametr news np http://localhost/robotki_reczne/test.php?news=aaa . Jesli pokaze sie tobie aaa tylko dla "news GET" to jest to wlasnie register_globals :)
Cytat
Co mam dodac do skryptu aby wszystko bylo OK?
Jesli to problem register_globals to na poczatek zmienic $news na $_REQUEST["news"], pozniej to samo z $subject $nick oraz $info z tego co widze.. Jesli dane zostaly przeslane postem mozesz od razu pisac $_POST["subject"]. To na poczatek wystarczy.
Luke
Na przyszłość...
[php:1:33690b5542]
<?php
if($news == "add")
{
?>
<FORM METHOD=POST ACTION=<?php $PHP_SELF."?news=save"; ?>>
<TABLE ALIGN=center CELLSPACING=0 CELLPADING=0 WIDTH=100%>
<TR>
<TD BGCOLOR=#333333> &nbsp; DODAJ NEWS</TD>
</TR>
</TABLE>
<TABLE ALIGN=center CELLSPACING=0 CELLPADING=0>
<TR>
<TD>Podpis:</TD>
<TD><INPUT TYPE='text' NAME='nick' MAXLENGHT=20></TD>
</TR>
<TR>
<TD>Temat:</TD>
<TD><INPUT TYPE='text' NAME='subject' MAXLENGHT=20></TD>
</TR>
<TR>
<TD>Tresc:</TD>
<TD><TEXTAREA NAME='news' ROWS='10' COLS='50'></TEXTAREA></TD>
</TR>
<TR>
<TR>
<TD><INPUT TYPE='reset' VALUE=Wyczysc></TD>
<TD><INPUT TYPE='submit' VALUE=Dodaj></TD>
</TR>
</TABLE>
</FORM>
<?php
}

elseif($news == "save")
{
?>
<TABLE ALIGN=center CELLSPACING=0 CELLPADING=0 WIDTH=100%>
<TR>
<TD BGCOLOR=#333333> &nbsp; DODAJ NEWS</TD>
</TR>
</TABLE>
<?php
if(empty($nick) OR empty($news) OR empty($subject))
{
?>

<TABLE><TR><TD>Nie wypelniles niektorych pol formularza! <A HREF=java script:history.back(1) CLASS=menu>Powrot...</A></TD></TR></TABLE>
<?php
}
else
{

$query = "INSERT INTO $db[news] VALUES('', '$subject', '$nick', '$_POST[news]', '$info[date]')";

$result = mysql_query($query);

if(!($result))
{
?>
<TABLE><TR><TD>Wystapil blad podczas dodawania newsa!</TD></TR></TABLE>
<?php
}
else
{
?>
<TABLE><TR><TD>News zostal pomyslnie dodany! <A HREF=news.php?a=add CLASS=menu>Dodaj kolejny</A></TD></TR></TABLE>
<?php
}

}

}
?>
[/php:1:33690b5542]
kurtz
Hej
Cytat
Na przyszłość...
No i?..Bo nie rozumiem do czego dazysz..

Pozdrawiam
cichy_bob
Wynik tego co napisales taki:
news global: aaa
news GET: aaa

Nie wiem dlaczego ale jak mam usuwanie newsa:
Kod
elseif($news == "delete")

{



    db_connect();



    echo "<TABLE ALIGN=center CELLSPACING=0 CELLPADING=0 WIDTH=100%>";

  echo "<TR>";

     echo "<TD BGCOLOR=#333333> &nbsp; ZARZADZAJ NEWSAMI</TD>";

  echo "</TR>";

    echo "</TABLE>";



  $query = "DELETE FROM $db[news] WHERE id='$id'";



     $result = mysql_query($query);



    if(!($result))

    {

    echo "<TABLE><TR><TD>Wystapil blad podczas usuwania newsa! <A HREF=$PHP_SELF?news=menage CLASS=menu>Powrot...</A></TD></TR></TABLE>";

    }

    else

    {

    echo "<TABLE><TR><TD>News zostal pomyslnie usuniety! <A HREF=$PHP_SELF?news=menage CLASS=menu>Powrot...</A></TD></TR></TABLE>";

    }



}


To takich bledow nie ma... Chociarz tez przekazuje zmienna $id
Luke
Uważam, że lepiej jest wychodzić i wchodzić z php celem łatwiejszego edytowania kodu html... Chyba, że się mylę?
spenalzo
Co tu dzisiaj wszyscy naburmuszeni na tym forum chodza?? Ludzie, przecież dzisiaj piątek biggrin.gif tongue.gif
cichy_bob
Cytat
Co tu dzisiaj wszyscy naburmuszeni na tym forum chodza?? Ludzie, przecież dzisiaj piątek biggrin.gif tongue.gif


Nie wiem, ja mam problem i nie wiem jak go rozwiazac... :/
kurtz
Hej
Cytat
Wynik tego co napisales taki:
news global: aaa
news GET: aaa
:O
a to przyznaje zagioles mnie. Przepraszam Luca. Wszystko wygldalo na ukochane globalsy. Hmmmm


Pozdrawiam
zombie
Masz dwa razy użytą zmienną $news. Po wysłaniu ona nie ma wartości save, tylko to, co wpisałeś w formularzu. Zmien nazwe TEXTAREA.
cichy_bob
Cytat
Hej
Cytat
Wynik tego co napisales taki:
news global: aaa
news GET: aaa
ohmy.gif
a to przyznaje zagioles mnie. Przepraszam Luca. Wszystko wygldalo na ukochane globalsy. Hmmmm


Pozdrawiam


Nom... 8)

Ale nadal nie wiem jak to zrobic... smile.gif Wszystko wydaje sie byc ok bo gdy daje spowrotem do funkcji to dzial, wystarczy ze pod funkcja dodam GLOBAL i zmienne np.

Kod
function save() {

    global $nick, $news, $subject, $PHP_SELF;



i tutaj skrypcik



}


Z tym dziala... A swoja droga to ja sie dopiero ucze wiec tego niedouczeniem bym nie nazwal, ale raczej brakiem wiedzy na ten temat...
cichy_bob
Cytat
Masz dwa razy użytą zmienną $news. Po wysłaniu ona nie ma wartości save, tylko to, co wpisałeś w formularzu. Zmien nazwe TEXTAREA.


Ale bonus biggrin.gif
Slepy jestem biggrin.gif

To tylko potwierdza to ze trzeba uwarznie przegladac co sie napisalo zanim sie zacznie wkurzac... Wielkie dzieki :idea:
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.