2017-08-07 34 views
0

我已经制定了此代码,以便正确上载,并且有一些帮助,现在我无法在上传图像时在数据库中看到用户名。有什么我需要包括像session_start()到上传文件?我想我已经有我的会话集每当我登录。如何上传此图片以及我的用户名?

<?php 

     $msg = ""; 
if (isset($_POST['upload'])) { 
    $target = "profile/images/".basename($_FILES['image']['name']); 

    if (move_uploaded_file($_FILES['image']['tmp_name'], $target)) { 
     $db = mysqli_connect("localhost", "root", "", "database"); 
     $result = mysqli_query($con, "SELECT * FROM users WHERE username = '" . $username. "'"); 
     if ($row = mysqli_fetch_array($result)) { 
      $_SESSION['username'] = $row['username']; 
     } 
     $username = $row['username']; 
     $images = $_FILES['image']['name']; 
     $sql = "INSERT INTO user (images,username) VALUES ('$images', '$username')"; 
     mysqli_query($db, $sql); 
     $msg = "Image Uploaded Successfully"; 
     header("Location: images.php?uploadsuccess"); 
    } else { 
     $msg = "There Was A problem uploading image"; 
    } 
} 
?> 

有可能是坏了我的询问,我相信。

<?php 
session_start(); 

if(isset($_SESSION['user_id'])) { 
    header("Location: index.php"); 
} 

include_once 'dbconnect.php'; 

//set validation error flag as false 
$error = false; 

//check if form is submitted 
if (isset($_POST['signup'])) { 
    $first_name = mysqli_real_escape_string($con, $_POST['first_name']); 
    $last_name = mysqli_real_escape_string($con, $_POST['last_name']); 
    $username = mysqli_real_escape_string($con, $_POST['username']); 
    $email = mysqli_real_escape_string($con, $_POST['email']); 
    $password = mysqli_real_escape_string($con, $_POST['password']); 
    $cpassword = mysqli_real_escape_string($con, $_POST['cpassword']); 
    $quote = mysqli_real_escape_string($con, $_POST['quote']); 
    $who = mysqli_real_escape_string($con, $_POST['who']); 

    //name can contain only alpha characters and space 
     $sql = "SELECT * FROM users WHERE username = '".$username."'"; 
     $result = mysqli_query($con,$sql); 
     if(mysqli_num_rows($result)>=1){ 
      $error = true; 
      $username_error ='<div class="error-notice"> 
          <div class="oaerror danger"> 
          <strong>Uh oh!</strong> - That Username is already taken. Please use a different Username. 
          </div>'; 


     }else{ 
     } 
     $sql = "SELECT * FROM users WHERE email = '".$email."'"; 
     $result = mysqli_query($con,$sql); 
     if(mysqli_num_rows($result)>=1){ 
      $error = true; 
      $email_exist ='<div class="error-notice"> 
          <div class="oaerror danger"> 
          <strong>Uh oh!</strong> - That E-mail already in use. Please use a different E-mail. 
          </div>'; 


     }else{ 
     } 

    if (!preg_match("/^[a-zA-Z ]+$/",$first_name)) { 
     $error = true; 
     $firstname_error = '<div class="error-notice"> 
          <div class="oaerror danger"> 
          <strong>Uh oh!</strong> - First Name must contain only alphabets and space. 
          </div>'; 

    } 

    if (!preg_match("/^[a-zA-Z ]+$/",$last_name)) { 
     $error = true; 
     $lastname_error = '<div class="error-notice"> 
          <div class="oaerror danger"> 
          <strong>Uh oh!</strong> - Last Name must contain only alphabets and space. 
          </div>'; 

    } 

    if(!filter_var($email,FILTER_VALIDATE_EMAIL)) { 
     $error = true; 
     $email_error = '<div class="error-notice"> 
          <div class="oaerror danger"> 
          <strong>Uh oh!</strong> - Please Enter Valid E-mail. 
          </div>'; 
    } 
    if(strlen($password) < 6) { 
     $error = true; 
     $password_error = '<div class="error-notice"> 
          <div class="oaerror danger"> 
          <strong>Uh oh!</strong> - Password must be minimum of 6 characters. 
          </div>'; 
    } 
    if($password != $cpassword) { 
     $error = true; 
     $cpassword_error = '<div class="error-notice"> 
          <div class="oaerror danger"> 
          <strong>Uh oh!</strong> - Make sure your passwords match. 
          </div>'; 

    } 
    if (!$error) { 
     if(mysqli_query($con, "INSERT INTO users(first_name,last_name,username,email,password,quote,who) VALUES('" . $first_name . "', '" . $last_name . "', '" . $username . "', '" . $email . "', '" . md5($password) . "', '" . $quote . "', '" . $who . "')")) { 
      $successmsg = '<div class="error-notice"> 
          <div class="oaerror success"> 
          <strong>Wooh!</strong> - Successfully Registered! <a href="login.php">Click here to Login</a> 
          </div>'; 

     } else { 
      $errormsg = '<div class="error-notice"> 
          <div class="oaerror info"> 
          <strong>Hmm.</strong> - Error in registering...Please try again later. 
          </div>'; 


     } 
    } 
} 
?> 
+0

您在哪里设置'$ username'?你有没有查看错误日志中的错误? –

+0

我没有,我怎么看这些错误? –

+0

您可以在文本编辑器中打开Web服务器的错误日志,并查找尝试执行查询时生成的错误。 –

回答

0

您没有在代码中设置$ username。您的选择查询将无法正常工作。首先你必须设置$ username。否则,您可以通过任何其他细节(如useremail,userID等)从数据库获取用户名。

+0

在我的代码中,我更新了第一个正确的,是你的意思是定义用户名? –

+0

不,他的意思是(像我一样)在第一个代码块中定义'$ username',这似乎是一个单独的脚本。 –

+0

是在第二个代码中,您正在定义$用户名。但第二个代码与第一个完全不同。现在选择查询和表在第二个代码中显示数据在哪里? –