Autor Zpráva
pito
Profil
Nechce mi odeslat formular po odeslani to pise ze Nebyl odeslán formulář

Tady je script ktery ma formular zpracovat:

<?php
ob_start(); // cachujeme vystup
if(isset($_POST['sent'])){ // pokud byl odeslan formular pokracuj timto
$jmeno=trim($_POST['jmeno']);
$tip454=trim($_POST['tip454']);
$tip455=trim($_POST['tip455']);
$tip456=trim($_POST['tip456']);
$tip457=trim($_POST['tip457']);

if($jmeno==""){ // pokud nebylo vyplněno něco z toho, co je povinné, dáme vědět a skript ukončíme
echo "Pro odeslání tiketu se musíte přihlásit!";
}else{ // povinné udaje vyplněny vsechny
require "db.php"; // pripojime se k databazi
$PocetStejnych=mysql_result(mysql_query("SELECT COUNT(*) FROM `tipy` WHERE `jmeno`='$jmeno'"),0);
if($PocetStejnych!=0){ // pokud v db je jiz takove jmeno nebo heslo...
echo "Už jste tipoval/a!!!";
}
$VlozData=mysql_query("INSERT INTO tipy VALUES ('', '$jmeno', '$tip454', '$tip455', '$tip456', '$tip457')") or die (mysql_error());
// Vlozim do tabulky hodnoty - prvni je ID - nevyplnim, tvori se samo.
// Jako posledni hodnota je "0", to jsou ty prava uzivatele.
header ("Location: index.php?page=tipy");


}
}else{
echo "Nebyl odeslán formulář";
}
// pokud pouzijete HEADER LOCATION tak by pred nim nemelo byt zadne platne ECHO

// samozrejme zde muze byt presmerovani na jinou stranku pomoci
// header ("Location: index.php");
ob_end_flush();
?>
Akacko
Profil
pito
Ukaž ten formulář. Takto ti nemůžu poradit, když vidím jen část kódu. Ale to bude tím, že buď nemáš nastavenou metodu odesíláni, nebo nemáš vyplněný parametr value u odesílacího inputu.
pito
Profil
tady je formular:

<form action="tipy_zpracuj.php" method="post">
<table border="0">
<tr>
<td>Nick:</td>
<td valign="middle">
<input class="tabreg" name="jmeno" value="<?php if(isset($_SESSION['prihlasen'])){
echo $_SESSION['login'];
}
?>" size="20" readonly maxlength="50"/>
</td>
</tr>

</table>


<br><br>

<table border="0" cellspacing="1" cellpadding="2">
<tr>
<td colspan="8" bgcolor="#FAE363"><font color="black">
<b>&nbsp;&nbsp;
Pohár UEFA</b></center></td>
</tr>
<tr bgcolor="#333333">
<td><b><font color="white">PŘILEZITOST</b></td>
<td><center><b><font color="white">TIPY DO:</b></td>
<td><center><b><font color="white">1</b></td>
<td><center><b><font color="white">0</b></td>
<td><center><b><font color="white">2</b></td>
<td><center><b><font color="white">10</b></td>
<td><center><b><font color="white">12</b></td>
<td><center><b><font color="white">02</b></td>
<td><center><b><font color="white">Nic</b></td>
</tr>

<tr>
<td style="width:180px">S.Lisabon - Glasgow Rangers</td>
<td style="width:100px">10.4 20:45</td>
<td style="text-align:center"><input type="radio" name="tip454" value="1" /></td>
<td style="text-align:center"><input type="radio" name="tip454" value="0" /></td>
<td style="text-align:center"><input type="radio" name="tip454" value="2" /></td>
<td style="text-align:center"><input type="radio" name="tip454" value="10" /></td>
<td style="text-align:center"><input type="radio" name="tip454" value="12" /></td>
<td style="text-align:center"><input type="radio" name="tip454" value="02" /></td>
<td style="text-align:center"><input type="radio" name="tip454" value="none" checked /></td>
</tr>

<input class="submit" type="submit" value="odeslat">
</td></tr></form>
</TBODY></TABLE>
Akacko
Profil
pito
Tak chyba je v tom, že nemáš pojmenovaný input
<input class="submit" type="submit" value="odeslat">

a zde testuješ, zda input s názvem sent byl odeslán. Spraviš to tím, že do inputu připíšeš atribut name="sent"
<input class="submit" type="submit" value="odeslat" name="sent" />


a ještě taková rada. Vidím, že v inputech používaš if()
<input class="tabreg" name="jmeno" value="<?php if(isset($_SESSION['prihlasen'])){
echo $_SESSION['login'];
}
?>" size="20" readonly maxlength="50"/>

ale jednodušší a přehlednější řešení je
<input class="tabreg" name="jmeno" value="<?php echo ($_SESSION['prihlasen'] ? $_SESSION['login'] : '') ?>" size="20" readonly maxlength="50"/>

Je to zkrácená podmínka
vyraz ? pokud_je_pravdivy : pokud_neni_pravdivy;

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: