Autor Zpráva
janvoz
Profil *
Tak jsem se zmohl na svůj první výtvor v PHP, Snad to funguje. Na design nekoukejte, hlavne na kód PHP.
http://hlavicka.xf.cz/kniha/index.php

db.php
<?mysql_connect ( "******", "*****", "******" ) or die("Nepovedlo se připojit k databázi");
mysql_select_db ("*****") or die("Nepovedlo se načíst databázi");
$title = "Návštěvní kniha";
?>


index.php
<table><tr><td>Jméno:</td>
<input type="hidden" value="1" name="action" />
<td><input type="text" name="jmeno" value="" size="50"> </td>
</tr><tr><td>E-mail:</td>
<td><input type="text" name="mail" value="" size="50" ></td>
</tr><tr></tr>
<tr><td valign="top">Vzkaz:</td>
<td><textarea name="vzkaz" cols="39" value="" rows="5"></textarea></td></tr>
<tr><td></td><td>Ochrana proti spamu: 4 plus 5 =
<input type="text" name="kontrola" value="" size="8" >
</td>
<tr><td></td><td>
<input type="submit" value="odeslat"></td>
</tr>
</table>
</form></div>


<?
$vysledek=MySQL_Query("SELECT * FROM gbook ORDER BY datim DESC");
while ($zaznam = MySQL_Fetch_Array($vysledek)) {?>
<div id="vzkaz" style="margin: 0 auto;"><div class="zprava">
                <div class="hlavicka">
                        Od:<b> <?echo $zaznam["jmeno"];?> </b>- <?echo $zaznam["datim"];?>
                </div>

                <p><?echo $zaznam["zprava"];?>
                         
                <div class="paticka" style="height: 0 auto;">
                        <a href="mailto:<?$zaznam["email"];?>"><?echo $zaznam["email"];?></a>  
                </div>
        </div>
<?}


Zpracuj.php
<?
include"db.php";
$jmeno = $_POST['jmeno'];
$mail = $_POST['mail'];
$vzkaz = $_POST['vzkaz'];
$kontrola = $_POST['kontrola'];
$action = $_POST['action'];
$datum = StrFTime("%Y/%m/%d %H:%M:%S", Time());



if($action==0){echo"";}
else{


if(($vzkaz=="") or ($jmeno==""))
{}
else{
	if ($kontrola !=9 and $action !=0 ) {}
	else {
$insert= mysql_query("INSERT INTO gbook 
(jmeno, email, zprava, datim) VALUES('$jmeno', '$mail', '$vzkaz', '$datum'  ) ") 
or die(mysql_error());; 


		}
}
}
?>
<script>
window.location.replace("index.php");
</script>

Při tvorbě se mi v tom nějak udělal zmatek, tak to podle toho asi vypadá:D
Jen do mě....
jenikkozak
Profil
Proměnná action nenabývá hodnoty 0, takže tuhle podmínku nemá cenu dávat. Krom toho celá ta akce s actionem je zbytečná, máš tam dost jiných formulářových prvků, které můžeš testovat.
echo "";

Co je to za vynález? Proč otvíráš pusu, když nic nechceš říct?
if(($vzkaz=="") or ($jmeno==""))
{}
else{

Raději if($vzkaz!="" and $jmeno!=""){/*Ta část kódu, co byla v části else*/}
value=""

Když nic, tak nic.
while ($zaznam = MySQL_Fetch_Array($vysledek)) {?>
<div id="vzkaz"...

Každé id smí být na stránce pouze jednou. Nemůže se tedy vypisovat v cyklu.
if(($vzkaz=="") or ($jmeno==""))

Ty vnitřní závorky jsou zbytečné. Porovnání se provede před logickými výrazy.
Chybí ti tam ochrana před vkládáním apostrofů a HTML. Při jakékoliv akci (ať chybné, nebo správné) nenapíšeš uživateli, co se stalo.
janvoz
Profil *
Vkládání HTML by mělo být vyřešeno tímto:

$jmeno =  htmlspecialchars($_POST['jmeno']);
$mail  =  htmlspecialchars($_POST['mail']);
$vzkaz  = htmlspecialchars($_POST['vzkaz']);


Moc děkuji, jdu řešit zbytek....
__construct
Profil
To ako prosím ťa presmerovávaš?
janvoz
Profil *
Nevím jaké přeměrování máš na mysli?

Z index.php na zpracuj.php je to FORM ACTION
<form action="zpracuj.php" name="form" method="post">


A zpět to je:
<script>
window.location.replace("index.php");
</script>
__construct
Profil
janvoz:
Nevím jaké přeměrování máš na mysli?
Práve to javascriptové… Pozri si ešte raz ten odkaz čo som Ti poslal (funkcia header())
janvoz
Profil *
Taky by asi šlo použít...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0