Ahoj, mam jeden scrip a ukladam naky data do databaze, na localhostu vsechno funguje v pohode, ale na webu uz ne.Nechtej se uloz data. A jiny scripty mi fungujou na webu, ale tenhle jeden vubec ne. Nevite v cem by mohl byt asi problem?
<HTML>Bohužel, křišťálová koule mlčí. Ale když sem dáš ten skript a napíšeš, jakou to píše chybovou hlášku, tak na to možná přijdeme.</HTML>
Prave, ze mi to zadnou chybu nepise, vse se chova normalne. Jako by se data vlozily. Ale kdyz kouknu do databaze tak tam nic neni. A rikam, na localhostu to funguje.......Mel jsem uz jednou takovej problem a nevim ani jak, ale po chvili to zase fungovalo
<?php
session_start();
include "config.php";
if(isset($_POST["submit"]))
{
$log = strip_tags($_POST["login"], '');
$login = strtolower($log);
$heslo = $_POST["heslo"];
$heslop = $_POST["heslop"];
$jmeno = strip_tags($_POST["jmeno"], '');
$prijmeni = strip_tags($_POST["prijmeni"], '');
$ic = $_POST["icq"];
$icq = str_replace("-", "", "$ic");
$pohlavi = $_POST["pohlavi"];
$email = $_POST["email"];
$poznamka = strip_tags($_POST["poznamka"], '');
$md5heslo = md5($heslo);
$md5heslop = md5($heslop);
$kontrolnikod = $_POST["kontrolnikod"];
$podminky = $_POST["podminky"];
$ip = $REMOTE_ADDR;
$dotaz = mysql_query("select id from uzivatele where login = '$login' OR email = '$email'");
echo mysql_error();
$overeni = mysql_num_rows($dotaz);
if($overeni > 0) {
echo "Někdo již vlastní tento <b>login</b> nebo <b>email</b>!";
}
else {
if(strlen($login) == 0) {
echo "Políčko <b>login</b> je nevyplněné!";
}
if(strlen($jmeno) == 0) {
echo "Políčko <b>jméno</b> je nevyplněné!";
}
if(strlen($prijmeni) == 0) {
echo "Políčko <b>příjmení</b> je nevyplněné!";
}
else {
if(strlen($heslo) < 6) {
echo "V políčko <b>heslo</b> je málo znaků!";
}
else {
if($md5heslo != $md5heslop) {
echo "Políčko <b>heslo</b> není shodné s políčkem <b>potvrzení hesla</b>!";
}
else {
if(strpos($email, "@") === false) {
echo "Políčko <b>e-mail</b> je neplatně vyplněné!";
}
else {
if(strpos($email, ".") === false) {
echo "Políčko <b>e-mail</b> je neplatně vyplněné!";
}
else {
if(strtolower($kontrolnikod) != $_SESSION['kontrolni_kod']) {
echo "Políčko pro <b>kontrolní kód</b> je nesprávně vyplněné.";
}
else {
if($icq != 0) {
if(is_numeric($icq) != true) {
echo "Zadal(a) jsi sice <b>ICQ</b> číslo, ale ve špatném formátu!";
}
}
else {
if($podminky != 1) {
echo "Pokud neodsouhlasíte <b>podmínky</b> tak se na tomto serveru nemůžete stát registrovaným uživatelem.";
}
else {
$sql = "insert into uzivatele (id, login, heslo, jmeno, prijmeni, icq, pohlavi, email, poznamka, IP) VALUES ('', '$login', '$md5heslo', '$jmeno', '$prijmeni', '$icq', '$pohlavi', '$email', '$poznamka', '$ip')";
$result = mysql_query($sql);
if (!$result) {
echo "Registrace probehla neůspěšně skuste to znovu.";
}
header("location:index.php");
}
}
}
}
}
}
}
}
}
}
?>
<HTML>Když tam doplníš mysql_error
$result = mysql_query($sql) or die(mysql_error());
tak to něco napíše?</HTML>
jj tak mi to napsalo: Field 'aheslo' doesn't have a default value.
A tady je ta tabulka
-- Struktura tabulky `uzivatele`
--
CREATE TABLE `uzivatele` (
`id` int(11) NOT NULL auto_increment,
`login` varchar(20) character set cp1250 collate cp1250_czech_cs default NULL,
`heslo` text character set cp1250 collate cp1250_czech_cs,
`jmeno` varchar(20) character set cp1250 collate cp1250_czech_cs default NULL,
`prijmeni` varchar(20) character set cp1250 collate cp1250_czech_cs default NULL,
`icq` text character set cp1250 collate cp1250_czech_cs,
`pohlavi` varchar(50) character set cp1250 collate cp1250_czech_cs default NULL,
`email` varchar(100) character set cp1250 collate cp1250_czech_cs default NULL,
`poznamka` varchar(250) character set cp1250 collate cp1250_czech_cs default NULL,
`IP` varchar(15) character set cp1250 collate cp1250_czech_cs default NULL,
`aheslo` text character set cp1250 collate cp1250_czech_cs NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs AUTO_INCREMENT=66 ;
Nastav v phpMyAdminu sloupci "aheslo" defaultní hodnotu. Potom to (možná) pojede ;)
No a nebo druhá možnost, spolu s ostatními daty ukládej i obsah buňky "a heslo"...
<HTML>U sloupce 'aheslo' máš nastaveno NOT NULL a žádnou defaultní hodnotu, takže při vkládání záznamu musíš 'aheslo' taky vyplnit.</HTML>
Tak jsem do aheslo ulozil nejakou hodnotu a vypise to chybu: Out of range value adjusted for column 'id' at row 1.
Kdyz jsem zadal aheslo NULL tak tak ta stejna chyba. A kdyz v phpMyAdminu priradim vychozi hodnotu tak mi napise chybu #1101 - BLOB/TEXT column 'aheslo' can't have a default value. Tak vazne nevim
<HTML>>>Out of range value adjusted for column 'id' at row 1.
To je imho způsobeno striktním módem mysql 5. Nevyplňuj tu hodnotu id jako prázdný řetězec '', ale zkus NULL.</HTML>
SLAVA! tak uz to jede. Bylo to tim id