16. november 2006 - 11:40
Der er
8 kommentarer og 1 løsning
Call funktion query() laver en error hvordan ratter jeg den?
Nogle som kan hjælpe mig med min fejl. Kan ikke finde ud af hvad jeg skal gøre for at ratte den. Fejl kode:: Fatal error: Call to a member function query() on a non-object in insert.php on line 19 <?php include("..//func.php"); DB::Conn("open"); if (isset($_POST['submit'])) { // if form has been submitted if (!$_POST['username'] | !$_POST['password'] | !$_POST['password_validation'] | !$_POST['email']) { die('You did not fill in a required field.'); } // check if username exists in database. if (!get_magic_quotes_gpc()) { $_POST['username'] = addslashes($_POST['username']); } $name_check = $db_object->query("SELECT username FROM webhosteu_users WHERE username = '".$_POST['username']."'"); if (DB::isError($name_check)) { die($name_check->getMessage()); } $name_checkk = $name_check->numRows(); if ($name_checkk != 0) { die('Sorry, the username: <strong>'.$_POST['username'].'</strong> is already taken, please pick another one.'); } // check passwords match if ($_POST['password'] != $_POST['password_validation']) { die('Passwords did not match.'); } // check e-mail format if (!preg_match("/.*@.*..*/", $_POST['email']) | preg_match("/(<|>)/", $_POST['email'])) { die('Invalid e-mail address.'); } // no HTML tags in username, website, location, password $_POST['username'] = strip_tags($_POST['username']); $_POST['password'] = strip_tags($_POST['password']); // now we can add them to the database. // encrypt password $_POST['password'] = md5($_POST['password']); if (!get_magic_quotes_gpc()) { $_POST['password'] = addslashes($_POST['password']); $_POST['email'] = addslashes($_POST['email']); } $regdate = date('d m, Y'); $insert = "INSERT INTO webhosteu_users ( username, password, regdate, email) VALUES ( '".$_POST['username']."', '".$_POST['password']."', '$regdate', '".$_POST['email']."' )"; $add_member = $db_object->query($insert); if (DB::isError($add_member)) { die($add_member->getMessage()); } $db_object->disconnect(); ?> <h1>Registered</h1> <p>Thank you, your information has been added to the database, you may now <a href="login.php" title="Login">log in</a>.</p> <?php }?>
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
16. november 2006 - 11:51
#1
har du husket at oprette "$db_object" ?
16. november 2006 - 12:02
#2
Det er vist mig der fuckker op i det her. bruger jo ikke db:pearl mere men mysql sp det er en lidt anden connection jeg skal bruge :S
16. november 2006 - 12:06
#3
Så der er problemet :)
16. november 2006 - 12:07
#4
nu er problemet bare at jeg ikke kan komme på hvordan jeg laver en username tjek med databasen? // check if username exists in database. $SQL = "SELECT username FROM webhosteu_users WHERE username = '".$_POST['username']."'"; if ($SQL != 0) { die('Sorry, the username: <strong>'.$_POST['username'].'</strong> is already taken, please pick another one.'); }
16. november 2006 - 12:14
#5
<?php include("..//func.php"); DB::Conn("open"); if (isset($_POST['submit'])) { // if form has been submitted if (!$_POST['username'] | !$_POST['password'] | !$_POST['password_validation'] | !$_POST['email']) { die('You did not fill in a required field.'); } // check if username exists in database. //$SQL = "SELECT username FROM webhosteu_users WHERE username = '".$_POST['username']."'"; //if ($name_check != 0) { // die('Sorry, the username: <strong>'.$_POST['username'].'</strong> is already taken, please pick another one.'); //} // check passwords match if ($_POST['password'] != $_POST['password_validation']) { die('Passwords did not match.'); } // check e-mail format if (!preg_match("/.*@.*..*/", $_POST['email']) | preg_match("/(<|>)/", $_POST['email'])) { die('Invalid e-mail address.'); } // no HTML tags in username, website, location, password $_POST['username'] = strip_tags($_POST['username']); $_POST['password'] = strip_tags($_POST['password']); // now we can add them to the database. // encrypt password $_POST['password'] = md5($_POST['password']); $regdate = date('d m, Y'); mysql_query("INSERT INTO webhosteu_users ( username, password, regdate, email ) VALUES ( '".$_POST['username']."', '".$_POST['password']."', '$regdate', '".$_POST['email']."' )"); ?> <h1>Registered</h1> <p>Thank you, your information has been added to the database, you may now <a href="login.php" title="Login">log in</a>.</p> <?php }?> Her er koden som virker! men hvordan laver jeg en username tjek?!
16. november 2006 - 12:47
#6
Closed
16. november 2006 - 13:33
#7
du kunne prøve det her: // check if username exists in database. $SQL = "SELECT username FROM webhosteu_users WHERE username = '".striptags($_POST['username'])."'"; $result = mysql_query($SQL); $name_check = mysql_num_rows($result); if ($name_check != 0) { die('Sorry, the username: <strong>'.$_POST['username'].'</strong> is already taken, please pick another one.'); } er dog ikke sikker på det vil virke med den striptags() sat på der..
16. november 2006 - 13:40
#8
Nej striptags virker ikk. har ikke den funktion men trim kan brues? Men ellers virker det fint tak / du ved selv hvilken side du kan få points på ;)
16. november 2006 - 13:43
#9
Her er final kode som virker. // check if username exists in database. $SQL = "SELECT username FROM webhosteu_users WHERE username = '".$_POST['username']."'"; $result = mysql_query($SQL); $name_check = mysql_num_rows($result); if ($name_check != 0) { Java::Alert("Det Brugernavn '".$_POST['username']."' er i brug, vælg venligst et andet. "); Java::GoToURL("index.php?page=form_opret"); die; } Tak sw_red_6
Vi tilbyder markedets bedste kurser inden for webudvikling