Gb – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Gb – PHP – Fórum – Programujte.comGb – PHP – Fórum – Programujte.com

 

sdas0
Newbie
25. 11. 2006   #1
-
0
-

caute,
snazil som sa naprogramovat gb s vyuzitim databazi ale mám problém....
Vytvoril som si formulár na stránke http://www.heck.php5.cz/Projekt%20GB/ a potom som si napisal script , ktory tieto polia ma ulozit do tabulky , ale aj ked vsetky premenne obsahuju hodnoty , tak aj tak mi to na stranke http://www.heck.php5.cz/Projek GB/spracuj.php vypíše



Neviplnili ste pole nick!!! Prosím viplnte ho !Neviplnili ste pole mail!!! Prosím viplnte ho !Neviplnili ste pole text !!! Prosím viplnte ho !
a obsah premennych sa tak neulozi do tabulky ...
preto sem pridavam este zdrojak suboru spracuj.php
tu je :


<?php
include_once("mysql_spojit.php");
if (strlen($nick > 0)){
$nick = $_POST[nick];
}
else{
$nick = FALSE;
$sprava .= "Neviplnili ste pole nick!!! Prosím viplnte ho !";
}
if (strlen($nick > 0)){
$mail = $_POST[mail];
}
else{
$mail = FALSE;
$sprava .= "Neviplnili ste pole mail!!! Prosím viplnte ho !";
}
if (strlen($nick > 0)){
$text = $_POST[text];
}
else{
$text = FALSE;
$sprava .= "Neviplnili ste pole text !!! Prosím viplnte ho !";
}
$ip = $_SERVER[REMOTE_ADDR];
if ($nick && $mail && $text ){
$dotaz = "INSERT INTO guestbook (nick, mail,text, ip,)
VALUES
('$nick', '$mail', '$text', '$ip',)";
global $dbc;
$splnit = mysql_query($dotaz);
}else{
echo "$sprava";
}
?>


urobil som niekde v podmienkach chybu ???
ZA pripadnu odpoved vopred dik ...

Nahlásit jako SPAM
IP: ...–
Ondrej Juríček
~ Moderátor
0
Stálý člen
25. 11. 2006   #2
-
0
-

V podmienkach if, by malo byť: if (strlen($nick) > 0)

Nahlásit jako SPAM
IP: ...–
sdas0
Newbie
25. 11. 2006   #3
-
0
-

To OndreJ:
Ok fakt dík , fakt primitívna chyba , mal som sa lepsie pozriet do manualu ...
ale bouzial moj problem to nevyriesilo ....
kod som pozmenil na :



<?php
include_once("mysql_spojit.php");
if (strlen($nick) > 0){
$nick = $_POST[nick];
}
else{
$nick = FALSE;
$sprava .= "Nevyplnili ste pole nick!!! Prosím vyplnte ho !";
}
if (strlen($mail) > 0){
$mail = $_POST[mail];
}
else{
$mail = FALSE;
$sprava .= "Nevyplnili ste pole mail!!! Prosím vyplnte ho !";
}
if (strlen($text) > 0){
$text = $_POST[text];
}
else{
$text = FALSE;
$sprava .= "Nevyplnili ste pole text !!! Prosím vyplnte ho !";
}
$ip = $_SERVER[REMOTE_ADDR];
if ($nick && $mail && $text ){
$dotaz = "INSERT INTO guestbook (nick, mail,text, ip,)
VALUES
('$nick', '$mail', '$text', '$ip',)";
global $dbc;
$splnit = mysql_query($dotaz);
}else{
echo "$sprava";
}
?>

Nahlásit jako SPAM
IP: ...–
Jakub0
Super člen
25. 11. 2006   #4
-
0
-

Omluvte mě, ale tak prasácky napsaný skript jsem ještě neviděl. Tady je opravená verze:



<?php
include_once("mysql_spojit.php");

function escape($str) {
if(get_magic_quotes_gpc())
$str = stripslashes($str);
if(function_exists('mysql_real_escape_string'))
$str = mysql_real_escape_string($str);
else
$str = addslashes($str);
return $str;
}
//jak muzete testovat neexistujuci promennou? Navic jeste uplne spatne
//Navic neni potreba duplikovat promenne
if(strlen($_POST['nick']) > 0 && preg_match("/^.+@.+.[a-zA-Z]{2,4}$/", $_POST['mail']) && strlen($_POST['text']) > 0) {
if(mysql_query('INSERT INTO guestbook
(nick, mail, text, ip)
VALUES (''.escape($_POST['nick']).'', ''.escape($_POST['mail']).'', ''.escape($_POST['text']).'', ''.$_SERVER['REMOTE_ADDR'].'')')) {
echo 'Prispevek uspesne pridan, dekujeme.';
}
else {
trigger_error('Dotaz na pridani prispevku probehl neuspesne. MySQL hlasi: '.mysql_error(), E_USER_WARNING);
}
}
else {
echo 'Vyplnte prosim korektne vsechny povinna policka.';
}
?>

Nahlásit jako SPAM
IP: ...–
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar TOPlist
sdas0
Newbie
25. 11. 2006   #5
-
0
-

ok dik uz to jede, samozrejme ten "prasacky napsany script " byl este ve vivoji , postupne by som ho zacal zabespecovat , tuna mi islo len o radu preco mi ten moj nejde, ...
Ale dík moc...

Nahlásit jako SPAM
IP: ...–
Jakub0
Super člen
25. 11. 2006   #6
-
0
-

Trochu jsem ujel, ale to nic nemění na stylu napsaní skriptu. Dovolil bych si doporučit přečíst nějaký tutoriaál nebo knihu než něco naskriptíte. Asi nejlepší je začít na linuxsoftu - http://www.linuxsoft.cz/php/.

Nahlásit jako SPAM
IP: ...–
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar TOPlist
sdas0
Newbie
26. 11. 2006   #7
-
0
-

Nejde mi to ani takto :

<?php

include_once("mysql_spojit.php");
if (strlen($_POST[nick]) > 0){
$nick = $_POST[nick];
}
else{
$nick = FALSE;
$sprava .= "<b>Nevyplnili ste pole nick!!! Prosím vyplnte ho !</b>";
}
if (strlen($_POST[mail]) > 0){
$mail = $_POST[mail];
}
else{
$mail = FALSE;
$sprava .= "<b>Nevyplnili ste pole mail!!! Prosím vyplnte ho !</b>";
}
if (strlen($_POST[text]) > 0){
$text = $_POST[text];
}
else{
$text = FALSE;
$sprava .= "<b>Nevyplnili ste pole text !!! Prosím vyplnte ho !</b>";
}
$ip = $_SERVER[REMOTE_ADDR];
if ($nick && $mail && $text ){
$dotaz = "INSERT INTO guestbook (nick, mail,text, ip,)
VALUES
('$nick', '$mail', '$text', '$ip',)";
GLOBAL $dbc;
$ulozenie = mysql_query($dotaz);
if ($ulozenie){
echo "Váš príspevok bol prijat !";
}else{
echo "Doslo k chybe!";
}
}else{
echo "$sprava";
}

?>

pritom vsetko ine funguje spravne .... Neviete preco ?
To D1ce : to tvoje mi hlasi chybu ...

Nahlásit jako SPAM
IP: ...–
Jakub0
Super člen
26. 11. 2006   #8
-
0
-

To kfsws: Jakou chybu?

Nahlásit jako SPAM
IP: ...–
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar TOPlist
sdas0
Newbie
27. 11. 2006   #9
-
0
-

To D1ce:

Warning: Dotaz probehl na pridani prispevku probehl neuspesne. MySQL hlasi: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 3 in /www/5/site28605/wwwroot/Projekt GB/guestbook.php on line 22

Nahlásit jako SPAM
IP: ...–
27. 11. 2006   #10
-
0
-

tam pred tou zavorkou v tom MySQL INSERTu musi byt sluvko VALUES

Nahlásit jako SPAM
IP: ...–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Ondrej Juríček
~ Moderátor
0
Stálý člen
27. 11. 2006   #11
-
0
-

Veš VALUES tam má!
Po poslednej položke v zozname nepchaj čiarku!

$dotaz = "INSERT INTO guestbook (nick, mail, text, ip) VALUES ('$nick', '$mail', '$text', '$ip')";

Nahlásit jako SPAM
IP: ...–
sdas0
Newbie
27. 11. 2006   #12
-
0
-

To OndreJ:
njn dík uz to fahčí ako má :-).

Nahlásit jako SPAM
IP: ...–
Jakub0
Super člen
27. 11. 2006   #13
-
0
-

kfsws píše:#
# To D1ce:#
##
#

Warning: Dotaz probehl na pridani prispevku probehl neuspesne. MySQL hlasi: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ##uvozovka##)##uvozovka## at line 3 in /www/5/site28605/wwwroot/Projekt GB/guestbook.php on line 22#
#


Omlouvám se, neměl jsem slepě zkopírovat ten dotaz, chybu napravím editací...

Nahlásit jako SPAM
IP: ...–
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar TOPlist
sdas0
Newbie
28. 11. 2006   #14
-
0
-

Jo a eště hádam poslední problém ...
Jak na presmerovanie pomocou funkcie header() :????
Napisal som si script , ktory vymaze prispevok z tabulky podla id_prispevku to ide , ale pak by som to chcel presmerovat spet na index...
Ak pouzim k presmerovaniu funkciu header tak to skonci chybou :

Warning: Cannot modify header information - headers already sent by (output started at /www/5/site28605/wwwroot/Projekt GB/mysql_spojit.php:10) in /www/5/site28605/wwwroot/Projekt GB/vymazprispevok.php on line 8

no a celý kod vyzerá následovne :
<?php

include ('mysql_spojit.php');
GLOBAL $dbc;
$dotaz = "DELETE FROM guestbook WHERE id_prispevku=$_POST[zmazat] LIMIT 1";
$vysledok = mysql_query($dotaz);
if ($vysledok){
echo "<b><H1>Príspevok bol vymazaný !</b></H1>";
header("Location:http://www.heck.php5.cz/Projekt GB/index.php");
}else{
echo "<b><H1>Príspevok sa nepodarilo vymazat !</b></H1>";
echo "<BR/><b><h1><a href=admin.php>N?vrat do administr?cie</a></b></h1>";
}

?>


Nahlásit jako SPAM
IP: ...–
Ondrej Juríček
~ Moderátor
0
Stálý člen
28. 11. 2006   #15
-
0
-

header musí byť použité pred akýmkolvek výstupom! V tvojom prípade nesmieš vypísať text, ktorý informuje, že príspevok bol vymazaný!

Nahlásit jako SPAM
IP: ...–
Jakub0
Super člen
28. 11. 2006   #16
-
0
-

Doporučil bych využít metatag refresh:



//...
define('POCET_SEKUND', 6);
echo "<b><H1>Príspevok bol vymazaný!</b></H1>";
echo '<meta http-equiv="refresh" content="'.POCET_SEKUND.';URL=http://www.heck.php5.cz/Projekt GB/index.php">';
//...


Jen pro úplnost, metatagy se obvykle vnořují jako první mezi <head> a </head>.

Nahlásit jako SPAM
IP: ...–
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar TOPlist
~ Anonymní uživatel
0 příspěvků
29. 11. 2006   #17
-
0
-

Nahlásit jako SPAM
IP: ...–
sdas0
Newbie
29. 11. 2006   #18
-
0
-

Napisal som si script login , tu je :(login.php)



<body bgcolor="black" text="red">
<?php
$password = "test";
if ($_POST[heslo] == $password){
@session_start();
$_SESSION['password'] = "$password";
echo "<b><H1><font color=red>Vitajte p?n ADMIN</b></H1></font>";
}else{
echo "Lutujem , ale heslo je nespr?vne !";
}
if ($_SESSION['password'])
{
echo "<b>heslo je spr?vne ...</b>";
echo "<b><h3><a href=admin.php>Administr?cia</a>";
}else{
echo "<center><form method=post action=>
<input type=password name=heslo size=14>
<input type=submit value=odoslat>
</form></center>";
}

?>
</body>

tento script funguje spravne ale potom som si napisal script , ktory je vlastne administracia gb (admin.php), tu je :


<body bgcolor="black" text="red" link="#00fcff" vlink="#00fcff" alink="#00fcff">
<div align="center">
<fieldset><legend>Guestbook</legend>
<FORM method="post" action="guestbook.php">
<TABLE border=0 width="10%" cellspacing=0 cellpadding=3 align="center">
<TR><TD>Nick:</TD><TD><INPUT type="text" name="nick" size="20" maxlength="15" value=""></TD></TR>
<TR><TD>Email:</TD><TD><INPUT type="text" name="mail" size="20" maxlength="30" value=""></TD></TR>
<TR><TD>Text:</TD><TD><TEXTAREA name="text" cols="30" rows="5"></TEXTAREA></TD></TR>

<TR><TD colspan=2 align=center><INPUT type="submit" value="Odeslat" class="tlacitko"></TD></TR>
</TABLE>
</FORM>
</fieldset>
</div>
<?php
@session_start();

if (isset($_SESSION['password'])):




require_once ('mysql_spojit.php'); // Pøipojit se k datab?zi


$dotaz = "SELECT nick, mail, text, datum, id_prispevku, ip FROM guestbook ORDER BY id_prispevku DESC";
$v?sledek = @mysql_query ($dotaz); // Spuste dotaz.
if ($v?sledek) { // Je-li v?e OK, zobrazit u?ivatele.



// Naè?st a zobrazit v?echny z?znamy.
while ($radek = mysql_fetch_array($v?sledek, MYSQL_NUM)) {
echo "<center><TABLE width=520 cellspacing=0 cellpadding=2 style=border : 2px solid #663300;><TR bgcolor=#884400><TD><b><pre><font color=#FF8800><a href=mailto:$radek[1]>$radek[0]</a>
</form> <div align=right>$radek[3]$radek[5]</div></font></pre></b></TD><td></td><td align=right></td></TR><TR bgcolor=#26003a><TD colspan=3 width=520><font color=#f3dbff><pre>$radek[2]</pre></font></TD></center></TR><TR><TD bgcolor=black><form action=vymazprispevok.php method=post>
<input type=hidden name=zmazat value=$radek[4]>
<div align=left><input type=submit value=zma?></div>
</form></TD><TD><form action=upravprispevok.php method=post>
<input type=hidden name=uprav value=$radek[4]>
<div align=right><input type=submit value=uprav></div>
</form></TR></TD></TABLE><br>n";
}

echo '</table>';
mysql_free_result ($v?sledek); // Uvolnit prostøedky.

} else { // Nìco nevy?lo.
echo '<p>Moment?lne nem?me ?iadne pr?spevky.</p><p>'. mysql_error(). '</p>';
}

mysql_close(); // Zavø?t datab?zov? pøipojen?.
else: echo"<h3>Nepovoleny pristup!!!</h3>";
endif;


?>
</body>

No a problem je v tom , ze aj ked v zadam spravne heslo v na stranke login.php tak na stranke admin.php mi to aj tak pise ze "Nepovoleny pristup"
preco ? urobil som niekde chybu ? kde ?
Za pripadnu odpoved vobred dik ...

Nahlásit jako SPAM
IP: ...–
Michal Oktábec0
Stálý člen
29. 11. 2006   #19
-
0
-

nějak nemůžu přijít na to, kde by mohla bejt chyba, ale pokud ti nikdo neporadí nic lepšího, tak bych si zkontroloval, co je v Session vůbec za hodnotu...

</fieldset>

</div>
<?php
@session_start();

if (isset($_SESSION['password'])):




require_once ('mysql_spojit.php'); // P?ipojit se k datab?zi


dal bych p?ed tu podm?nku vyps?n? hodnoty dan? session:

</fieldset>

</div>
<?php
@session_start();
echo $_SESSION['password'];
if (isset($_SESSION['password'])):




require_once ('mysql_spojit.php'); // P?ipojit se k datab?zi


zjisti, co tam vůbec je a pak to sem p??padn? p?sni...

Nahlásit jako SPAM
IP: ...–
Nestačí pouze žít, musíte mít pro co žít. "ze seriálu BSG"
Jakub0
Super člen
30. 11. 2006   #20
-
0
-

To kfsws: Ten skript je úplně blbý, prosím pokuste se co nejpodrobněji popsat co od administrace požadujete a já už něco funkčního sesmolím, protože to ani z toho paskvilu nevyčmuchám.

Nahlásit jako SPAM
IP: ...–
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar TOPlist
sdas0
Newbie
1. 12. 2006   #21
-
0
-

Ne uz netrebva dakujem , problem je vyrieseny ... Dik kazdemu za pomoc :-)

Nahlásit jako SPAM
IP: ...–
Ondrej Juríček
~ Moderátor
0
Stálý člen
1. 12. 2006   #22
-
0
-

A nebol náhodou problém v tom, že ste si neprenášali SID? ;)

Nahlásit jako SPAM
IP: ...–
Jakub0
Super člen
1. 12. 2006   #23
-
0
-

OndreJ píše:#
# A nebol n?hodou probl?m v tom, ?e ste si nepren??ali SID? ;)


Ano, volal fci session_start() po v?stupu, proto mu sessions nemohli vůbec fungovat. Nav?c nikde nenastavoval $_SESSION['password'], a tud?? se nikdy nemohl p?ihl?sit. Mo?n? je tam je?t? v?c chyb, ale mn? sta?ilo vid?t za??tek skriptu. ;)

Nahlásit jako SPAM
IP: ...–
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar TOPlist
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 26 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý