Nefunkcny kod na vkladanie dat do databazy

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Odpovědět
fili
Level 1.5
Level 1.5
Příspěvky: 102
Registrován: 29 pro 2011 14:51

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvek od fili »

Tiez neviem, ale niekde bude problem, aaaaaaaaale kde?
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvek od CZechBoY »

tak pošli tvůj kod, asi je jinačí než ten co jsem poslal
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
fili
Level 1.5
Level 1.5
Příspěvky: 102
Registrován: 29 pro 2011 14:51

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvek od fili »

Tu je kod:

Kód: Vybrat vše

<?

$chyba=Array();
//zjištuje zda došlo k odeslání formuláre
if ($send !="submitted") {
echo"$form";
return;
}
else {
if (empty($objekt)) {
$chyba[]="Neuviedli ste oficiálny názov objektu!";
}
if (empty($ulica)) {
$chyba[]="Neuviedli ste Vaše meno!";
}
if (empty($cislo)) {
$chyba[]="Neuviedli ste číslo domu!";
}
if (empty($mesto)) {
$chyba[]="Neuviedli ste mesto!";
}
if (empty($psc)) {
$chyba[]="Neuviedli ste PSČ!";
$psc_chyba=1;
}
if (empty($mail)) {
echo $chyba[]="Neuviedli Vašu e-mailovú adresu!";
}
if (empty($www)) {
echo $chyba[]="Neuviedli ste PSČ!";
}
if (empty($mobil)) {
echo $chyba[]="Neuviedli číslo telefónu alebo mobilu!";
}
if (empty($login)) {
echo $chyba[]="Neuviedli ste login/prihlasovacie meno!";
}
if (empty($password)) {
echo $chyba[]="Neuviedli ste heslo!";
}

if (count($chyba)>0) {
echo "<p>";
foreach($chyba as $ch)
echo "<span style='color:red'>Chyba: ".$ch."</span><br />";
echo "</p>";

echo $form;
return;
} else {
echo "dáta sa spracovávajú<br />";
}
}

$objekt = MySQL_Real_Escape_String($_POST['objekt']);
$meno = MySQL_Real_Escape_String($_POST['meno']);
$ulica = MySQL_Real_Escape_String($_POST['ulica']);
$cislo = MySQL_Real_Escape_String($_POST['cislo']);
$mesto = MySQL_Real_Escape_String($_POST['mesto']);
$psc = MySQL_Real_Escape_String($_POST['psc']);
$mail = MySQL_Real_Escape_String($_POST['mail']);
$www = MySQL_Real_Escape_String($_POST['www']);
$mobil = MySQL_Real_Escape_String($_POST['mobil']);
$login = MySQL_Real_Escape_String($_POST['login']);
$password = MySQL_Real_Escape_String($_POST['password']);


$sql="INSERT INTO owners(objekt, meno, ulica, cislo, mesto, psc, mail, www, mobil, login, password) VALUES('$objekt', '$meno', '$ulica', '$cislo', '$mesto', '$psc', '$mail', '$www', '$mobil', '$login', '$password')";
$query=MySQL_Query($sql);

if($query){
echo "<center>Registrácia prebehla v poriadku. Teraz sa môžete <a href=\"../prihlasenie.php\">prihlásiť</a></center><br>";
}
elseif(mysql_errno()==1062){
echo "<center><span style=\"color:red\">Užívateľské meno </span><b>".htmlentities(StripSlashes($meno))."</b> <span style=\"color:red\">je obsadené, zvolte </span><a href=\"../registracny-form.php\">iné</a>.<br>".mysql_error()."</center>";
}
else {
echo "<center>Údaje sa nepodarilo vložiť! Vyplňte znova pozorne formular.<br><br>";
echo "<span style='color:red'>".MySQL_Error()."</span></center><br>";
}

mysql_close();
?>
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvek od CZechBoY »

máš zaplé register_globals?
tenhle kod by měl vyhodit všechny chyby, nemáš tam přiřazení hodnot k proměnným
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
fili
Level 1.5
Level 1.5
Příspěvky: 102
Registrován: 29 pro 2011 14:51

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvek od fili »

Máš pravdu je to Disabled.
Sice mi to trvalo nez som to zistil, ale vraj je dobre to mat vypnute kvoli bezpecnosti.
Da sa to nejako obist?
Kvoli tomu mam vecne problemy s php kodmi?
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvek od CZechBoY »

jo register_globals mají být vypnuté
pošli, kde to máš uploadnutý, protože tenhle kod by měl vždycky vyhodit všechny chyby

dej nahoru ještě
PHP píše:error_reporting(E_ALL);
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
fili
Level 1.5
Level 1.5
Příspěvky: 102
Registrován: 29 pro 2011 14:51

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvek od fili »

Vyhodilo mi toto:
Notice: Undefined variable: send in /domains1/.../registracia2.php on line 57
Notice: Undefined variable: form in /domains1/.../registracia2.php on line 58

Kód: Vybrat vše

<?
error_reporting(E_ALL);
$chyba=Array();
//zjištuje zda došlo k odeslání formuláre
[b]riadok 57:[/b]  if ($send !="submitted") {
[b]riadok 58: [/b]  echo"$form";

?>
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvek od CZechBoY »

no $send má být nejspíš $_POST['send'] a ten $form si budeš muset doplnit sám
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
fili
Level 1.5
Level 1.5
Příspěvky: 102
Registrován: 29 pro 2011 14:51

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvek od fili »

Vdaka, na riadok 57 to funguje, ale na 58 to treba napisat inak, tam mi to nefunguje.
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvek od CZechBoY »

$form musí obsahovat HTML toho formuláře
třeba:
PHP píše:$form = '<form action="post.php" method="POST">';
$form.= '<input type="text" name="psc" maxlength="5" />';

$form.= '</form>';
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
fili
Level 1.5
Level 1.5
Příspěvky: 102
Registrován: 29 pro 2011 14:51

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvek od fili »

No ja som to mal takto:

Kód: Vybrat vše

<?php
 if ($form);
?>
 <form action="registracia.php" method="post">
<table class="pridanie">
<tr><td>
Meno priezvisko/Firma <input type="text" size="50" name="meno" value="<? echo $meno ?>"></input>
</td></tr>
</table></form>


Prepisal som to podla Tvojej rady a ukazuje mi chybu v tomto riadku
Undefined variable: form in /.../registracny.php on line 94

Kód: Vybrat vše

</table>'.$form.='</form>';
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvek od CZechBoY »

ty tam máš echo $form, jenže v tom $form nic není
v případě echo $form; bys musel mít celý HTML toho formuláře v proměnný $form

PHP píše:<?php
ob_start();
?>
<form action="registracia.php" method="post">
<table class="pridanie">
<tr><td>
Meno priezvisko/Firma <input type="text" size="50" name="meno" value="<?=$meno?>"></input>
</td></tr>
</table></form>
<?php
$form=ob_get_contents();
ob_clean();
?>


nebo klasicky přes $form=
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Odpovědět

Zpět na „Programování a tvorba webu“