20. april 2011 - 14:06
Der er
2 kommentarer og 1 løsning
Opdatere
Hej eksperter. Hvorfor opdatere den ikke de felter jeg vil have med denne kode: $sql = $dbh->prepare('UPDATE users SET aktivering = ? WHERE code = ? AND navn = ?'); $sql->bind_param('iss', 1, $code, $navn); $sql->execute(); if($sql->affected_rows == 1){ return true; Den opdatere ikke, men alligevel får jeg true tilbage. Hvorfor gør jeg det?
Annonceindlæg fra FPT Software
20. april 2011 - 14:37
#1
Har lige fundet ud af problemet er meget større. Den går slet ikke igennem nogle af mine if statements eller noget af det andet jeg har. Her er min kode: <? function getDBH() { static $DBH = null; if (is_null($DBH)) { $DBH = new mysqli('kage', 'kage', 'kage', 'frugt'); } if (mysqli_connect_errno()) { printf('Connecting error'); exit(); }else{ return $DBH; } } function activate($var){ $dbh = getDBH(); if(preg_match('/[^0-9a-f]{32}/i',stripslashes(trim($var)))){ $stmt = $dbh->prepare('SELECT code, navn FROM users WHERE code = ?'); $stmt->bind_param('s', $var); $stmt->execute(); $stmt->bind_result($code, $navn); $stmt->fetch(); $stmt->free_result(); if($stmt->num_rows == 1 && $code && $navn){ $sql = $dbh->prepare('UPDATE users SET aktivering = ? WHERE code = ? AND navn = ?'); $sql->bind_param('iss', 1, $code, $navn); $sql->execute(); $sql->store_result(); if($sql->affected_rows == 1){ return true; }else{ functions('errorTjek'); return $error = error('noEffect'); } }else{ functions('errorTjek'); return $error = error('noMatchAkk'); } }else{ functions('errorTjek'); return $error = error('codeError'); } } ?> Og det hvor den bliver kørt: <?php session_start(); function functions($value) { require("functions/" . $value . ".php"); } functions('activation'); functions('ipTjek'); if(!$_SESSION['login'] == 1){ if($_GET['code']){ $aktivering = activate($_GET['code']); if($aktivering == true){ echo 'Din bruger blev korrekt aktiveret. Du kan nu logge ind.'; }else{ echo $aktivering; } }else{ functions('errorTjek'); echo $error = error('getError'); } }else{ functions('errorTjek'); echo $error = error('logged_in'); } ?>
20. april 2011 - 18:00
#2
Jeg smider lige 100 points oven i hatten, da der er en del mere der skal kigges igennem nu hvor jeg fandt ud af fejlen er større.