2016-10-24 3 views
0

Ich versuche, Name, E-Mail, Bildinformationen in Form zu aktualisieren.aktualisierte Werte werden erst nach der Aktualisierung der Seite angezeigt

Name, E-Mail wurde die Aktualisierung in Ordnung, aber Bild wurde nicht in Ordner speichern, so entfernt i ; in folgenden Zeile:

if ($user_home->update($uname,$email, $phone, $uid));,

jetzt, wenn wir auf "Speichern" klicken, Bilder speichern in Ordnern,

aber Name & E-Mails zeigen alte Werte, & nach Aktualisierung der Seite Anzeige aktualisierter Werte. aber ich möchte aktualisierte Werte anzeigen, sobald wir auf Speichern klicken.

Form

<form action="profile.php" method="POST" enctype="multipart/form-data"> 
Name : 
<?php echo $row['userName'] ?> <br/> 
Email : 
<?php echo $row['userEmail'] ?> <br> 

<h3>photo</h3> 

<input type="file" name="photo" id="fileSelect"><br> 
<input type="submit" name="submit" value="Save" /> 
</form> 

Code für Name, E-Mail

<?php 
include 'home.php'; 

// session_start(); 
require_once 'class.user.php'; 
$user_home = new USER(); 

if(!$user_home->is_logged_in()) 
{ 
    header("Location: index.php"); 
die(); 
} 

$stmt = $user_home->runQuery("SELECT * FROM tbl_users WHERE userID=:uid"); 
$stmt->execute(array(":uid"=>$_SESSION['userSession'])); 
$row = $stmt->fetch(PDO::FETCH_ASSOC); 

?> 



    <?php 

    $FORM['uname'] = ""; 
    $FORM['txtuname'] = ""; 
    if (isset($_POST['submit'])) { 
    // new data 
    $uname = $_POST['txtuname']; 
    $email = $_POST['txtemail']; 
    $phone = $_POST['phone']; 
    $uid = (isset($_GET['userID']) ? intval($_GET['userID']) : -1); 

    // query 
    if ($user_home->update($uname,$email, $phone, $uid)); // This is the line 
    { 
     header("Location: profile.php"); 
     die(); 
    } 
    } 

    ?> 

Code für Bild

<?php 
if(isset($_FILES["photo"]["error"])){ 
if($_FILES["photo"]["error"] > 0){ 
echo "Error: " . $_FILES["photo"]["error"] . "<br>"; 

} else{ 
$allowed = array("jpg" => "image/jpg", "jpeg" => "image/jpeg", "gif" => "image/gif", "png" => "image/png"); 
$filename = $_FILES["photo"]["name"]; 
$filetype = $_FILES["photo"]["type"]; 
$filesize = $_FILES["photo"]["size"]; 

// Verify file extension 
$ext = pathinfo($filename, PATHINFO_EXTENSION); 
if(!array_key_exists($ext, $allowed)) die("Error: Please select a valid file format."); 

// Verify file size - 5MB maximum 
$maxsize = 5 * 1024 * 1024; 
if($filesize > $maxsize) die("Error: File size is larger than the allowed limit."); 

// Verify MYME type of the file 
if(in_array($filetype, $allowed)){ 
// Check whether file exists before uploading it 
if(file_exists("upload/" . $_FILES["photo"]["name"])){ 
echo $_FILES["photo"]["name"] . " is already exists."; 

} else{ 
move_uploaded_file($_FILES["photo"]["tmp_name"], "upload/" . $_FILES["photo"]["name"]); 

echo "Your file was uploaded successfully."; 
} 
} else{ 

echo "Error: There was a problem uploading your file - please try again."; 
} 

} 

} else{ 
echo "Error: Invalid parameters - please contact your server administrator."; 
} 

?> 

Antwort

0

Sie müssen die Auswahlabfrage nach der Aktualisierungsabfrage ausführen, andernfalls erhalten Sie die alte Information und aktualisieren dann den Datensatz in der Datenbank.

<?php 
include 'home.php'; 

// session_start(); 
require_once 'class.user.php'; 
$user_home = new USER(); 

if(!$user_home->is_logged_in()) 
{ 
    header("Location: index.php"); 
    die(); 
} 

$FORM['uname'] = ""; 
$FORM['txtuname'] = ""; 
if (isset($_POST['submit'])) { 
// new data 
$uname = $_POST['txtuname']; 
$email = $_POST['txtemail']; 
$phone = $_POST['phone']; 
$uid = (isset($_SESSION['userSession']) ? intval($_SESSION['userSession']) : 0); 

// query 
if ($uid > 0 && $user_home->update($uname,$email, $phone, $uid)) // This is the line 
{ 
    header("Location: profile.php"); 
    die(); 
} 
} 

$stmt = $user_home->runQuery("SELECT * FROM tbl_users WHERE userID=:uid"); 
$stmt->execute(array(":uid"=>$_SESSION['userSession'])); 
$row = $stmt->fetch(PDO::FETCH_ASSOC); 

?> 

Oder Sie können dieses benutzerdefinierte Update verwenden:

// query 
if ($uid > 0) 
{ 
    $stmt = $user_home->runQuery("UPDATE tbl_users SET userName=:uname, 
           userEmail=:email, phone=:phone WHERE userID=:uid"); 
    $stmt->execute(array(
       ":uid"=>$_SESSION['userSession'], 
       ":email" => $email, 
       ":phone" => $phone, 
       ":uname" => $uname 
    )); 
    header("Location: profile.php"); 
    die(); 
} 
+0

Sie meinen Tag Kumpel gerettet, jetzt ist es funktioniert gut, noch eine Frage, die ich bin immer einmal i Bild hochladen und klicken Sie auf 'save' Taste Bilder werden im Ordner gespeichert, das ist in Ordnung. aber sein Anzeigefehler: "SQLSTATE [HY000]: Allgemeiner Fehler", ich vermute ein Problem mit Code-Teil des Bildes, können Sie mir bitte auch dafür helfen? –

+0

das ist okay, ich werde versuchen, für die etwas mehr Zeit ..... –

+0

Was ist die Abfrage, die fehlschlägt – krasipenkov

Verwandte Themen