Zadejte hledaný výraz...

Query was empty

mjohnniej18
verified
rating uzivatele
28. 1. 2011 15:16:49
Nazdar mam problem s registraciou... vypisuje mi ze query was empty a stale neviem. Dalej mam este problem s premennou $referer ktora ked je prazdna tak sa nic neudeje a potrebujem aby sa dala odoslat aj prazdna. Dopredu diky. Ak by mal niekto zaujem mi pomoct s viacerimi vecmi tak raz za cas tak nech mi napise na 277-601-160 a rad sa s nim odhodnem na dakej malej financnej odmene dik tu uz je kod
require_once 'config.php';
// require_once 'http.php';
require_once 'mailer/class.phpmailer.php';
if ( isset( $_REQUEST) ) {
switch ( $_REQUEST) {
case 'Complete registration':
if ( isset( $_POST) and isset( $_POST) and isset( $_POST) and isset( $_POST) and isset( $_POST) and isset( $_POST) and ($_POST == $_POST) and ( $_POST) and ($_POST == $_POST)) {
$login = $_POST; $mail1 = $_POST; $mail2 = $_POST; $pwd1 = $_POST; $pwd2 = $_POST; $referer = $_POST; $country = $_POST; $a = $_POST; $b=$_POST; $c=$_POST; $res = $_POST;
// echo "db = ".$_POST."
".$_POST."
".$_POST."
".md5($_POST)."
".$_POST."
".$_POST."
".$_POST."
".$_POST."+".$_POST."-".$_POST."=".$_POST."
";
// Check if referer is provided
if ($_POST != "") {
$checkref = mysql_query("SELECT username FROM users WHERE username='$referer'");
$referer_exist = mysql_num_rows($checkref);
if ($referer_exist<1) {
// In the absence of referer give an error message
errorMsg("The referer User Doesn't Exists.",1); exit();
} else {
// If everything seems ok proceed
$sqlz = "SELECT * FROM users WHERE username='$referer'";
$resultz = mysql_query($sqlz);
$myrowz = mysql_fetch_array($resultz);
$numero=$myrowz;
$sqlex = "UPDATE users SET referals='$numero' +1 WHERE username='$referer'";
$resultex = mysql_query($sqlex);
}
}else{
$referer = "";
}
$length_nick = strlen($login); $length_pwd = strlen($pwd1); $d = $a + $b - $c;
if ($login=="") $error="You must enter nickname";
if ($mail1=="") $error="You must enter e-mail";
if ($mail1 != $mail2) $error="Entered e-mails are not same";
if ($pwd1=="") $error="You must enter password";
if ($pwd1!=$pwd2) $error="Entered passwords are not same";
if ($country=="") $error="You must select country";
if ($length_nick < 4) $error="Nickname is too short. You must write 4 characters min...";
if ($length_nick > 50) $error="Nickname is too long. You must write 50 characters max...";
if ($length_pwd < 6) $error="Password is too short. You must write 6 characters min...";
if ($length_pwd > 50) $error="password is too long. You must write 50 characters max...";
if ($d != $res) $error = "You wrote wrong result, please count it again";
if (isset($error))
$sql = "INSERT INTO users VALUES( '','".$_POST."','".$_POST."','".$_POST."','".$_POST."','".$_POST."','".date( "Y-m-d" )."','".$_POST."','".$referer."','0.000','user','0' )";
mysql_query( $sql, $connect )
or die('Cannot create new user account; ' . mysql_error() );
$mail = new phpmailer();
$mail->From = "arkaz99@gmail.com";
$mail->FromName = "Arkaz99";
$mail->AddAddress($_POST);
$mail->Subject="New registration - profiinvest.org";
$mail->Body="You was successful registrated into our system profiinvest.org: n Information: n Nick: " .$_POST. "n Password: " .$_POST."n For: n Paypal mail: " .$_POST. "n Alertpay mail: " .$_POST. "n From: " .$_POST. "n Thanks for registration and for using our system. Profiinvest administrators.";
$mail->Send();
session_start();
break;
}
}
}
?>
28. 1. 2011 15:16:49
https://webtrh.cz/diskuse/query-was-empty/#reply604531
milda
verified
rating uzivatele
(1 hodnocení)
28. 1. 2011 16:24:25
ta chybová hláška nejspíš pochází z tohohle místa
if (isset($error))
$sql = "INSERT INTO users VALUES( '','".$_POST."','".$_POST."','".$_POST."','".$_POST."','".$_POST."','".date( "Y-m-d" )."','".$_POST."','".$referer."','0.000','user','0' )";
mysql_query( $sql, $connect )
za tím if-em ti nejspíš chybí akce co se má stát když je definovaná proměnná $error.
Pokud nedošlo k chybám, je proměnná $error nedefinovaná, tudíž se následující část ($sql = ... ) nevykoná. V mysql_query proměnná $sql neexistuje -> funkci je předán prázdný řeťezec, což je ohlášeno uvedenou chybou. (která mimochodem situaci přesně popisuje :-))
Nemám tolik času pomáhat ti s dalšími problémy, ale dovolím si pár rad.
1. za if, else, elseif,... vždy piš blok ve složených závorkách
2. odsazuj kód a odpovídající ukončovaní závorky
if ($a == 1) {
if ($b == 2) {
$c = 3;
}
}
3. složitější podmínku rozděl na víc řádků
4. nepiš víc příkazů na jeden řádek, je to nepřehledné
if ( isset( $_POST)
and isset( $_POST)
and isset( $_POST)
and isset( $_POST)
and isset( $_POST)
)
{
$login = $_POST;
$mail1 = $_POST;
$mail2 = $_POST;
}
5. Zapni si v PHP error reporting - nejlépe na hodnotu E_ALL a největší pozornost věnuj notice chybám - právě z takových se dozvíš, že např. proměnná $sql na řádku 70 není definovaná...
- myslím na vývojovém serveru, na provozním serveru je v pořádku chyby skrývat.
28. 1. 2011 16:24:25
https://webtrh.cz/diskuse/query-was-empty/#reply604530
hm
verified
rating uzivatele
(20 hodnocení)
28. 1. 2011 16:28:03
nezapomen mi pak poslat adresu kde ten script bezi, protoze je to deravy jak cednik... rad se ti projdu databazi ;)
28. 1. 2011 16:28:03
https://webtrh.cz/diskuse/query-was-empty/#reply604529
milda
verified
rating uzivatele
(1 hodnocení)
28. 1. 2011 16:41:08
Tím jsem chtěl taky pokračovat...
dávat do SQL dotazu neošetřený data je průser - přečti si něco o SQL Injection, protože takhle je to opravdu nebezpečný kód...
třeba tohle
$referer = $_POST; // pokud $_POST; bude mít hodnotu " ' OR 1' "
.
.
.
$sqlz = "SELECT * FROM users WHERE username='$referer'";
// pak dotaz bude SELECT * FROM users WHERE username='' OR '1';
// podmínka OR 1 je splněna vždy, takže bude vrácen seznam všech uživatelů
$resultz = mysql_query($sqlz);
Možná bys měl lepší používat nějakou knihovnu (třeba dibi), která se o bezpečnost stará sama.
Nicméně určitý znalosti by sis měl rozšířit, protože psát takovýhle slepence, ladit je, nebo (v horším případě) v nich hledat chyby po někom jiným. Je za trest.....
28. 1. 2011 16:41:08
https://webtrh.cz/diskuse/query-was-empty/#reply604528
mjohnniej18
verified
rating uzivatele
29. 1. 2011 16:53:08
no robim na tom... ta registracia uz ide ale chybu mam v tom referer... potrebujem tam proste spravit to ze v predchadzajucom formulari niekto odosle prazdneho alebo referera ktory neexistuje aby bol automaticky nastavane ze je "" a ze mi ho odosle do DB lebo ak je "" tak sa mi do DB nic nezapise
29. 1. 2011 16:53:08
https://webtrh.cz/diskuse/query-was-empty/#reply604527
Vladimír Benc
verified
rating uzivatele
(7 hodnocení)
29. 1. 2011 20:17:03
no já sem to jen tak přelítnul ale to že se ti nezapisuje prázdný referer je asi hned na začátku ne ?
if ( isset( $_POST) and ...... and ( $_POST) and ($_POST == $_POST)) {
$_POST je přece prázdný, takže vrací false, tím pádem se vůbec neprovede ten blok s inicializací $login $mail1... proměnných
jinak je to teda odstrašující příklad kódu :)
29. 1. 2011 20:17:03
https://webtrh.cz/diskuse/query-was-empty/#reply604526
mjohnniej18
verified
rating uzivatele
30. 1. 2011 14:15:24
sakra sak som to mazal odtial :( ok asi som to potom dako posral dik
30. 1. 2011 14:15:24
https://webtrh.cz/diskuse/query-was-empty/#reply604525
Pro odpověď se přihlašte.
Přihlásit