Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Dėl nuotraukų kelimo į mysql naudojant php


Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2823 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki,

prašau pagalbos, nes kuomet sukūriau input foto sistem'ą svetainėje mano mysql rodo, kad [bLOB - 25B] (O jei rankiniu būdu įdedu rodo normaliai - 64 KIB) ir nerodo nuotraukytės. 

 

 

------------------------------------------------------------

 

PHP kodas:

------------------------------------------------------------

<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }


  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);


  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}


$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}


if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "Adding")) {




$Image  = $_FILES['Image']['tmp_name'];  


  $insertSQL = sprintf("INSERT INTO added_ad (Name, url,  Image) VALUES (%s, %s, '$Image')",
                       GetSQLValueString($_POST['Name'], "text"),
                       GetSQLValueString($_POST['url'], "text"),




  mysql_select_db($database_DATA_registration, $DATA_registration);
  $Result1 = mysql_query($insertSQL, $DATA_registration) or die(mysql_error());


  $insertGoTo = "../";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));


}


  
  


mysql_select_db($database_DATA_registration, $DATA_registration);
$query_Data = "SELECT * FROM added_ad";
$Data = mysql_query($query_Data, $DATA_registration) or die(mysql_error());
$row_Data = mysql_fetch_assoc($Data);
$totalRows_Data = mysql_num_rows($Data);


mysql_select_db($database_USER_registration, $USER_registration);
$query_Signup = "SELECT * FROM users";
$Signup = mysql_query($query_Signup, $USER_registration) or die(mysql_error());
$row_Signup = mysql_fetch_assoc($Signup);
$totalRows_Signup = mysql_num_rows($Signup);


?>
Redaguota , nario GGYep
Nuoroda į komentarą
Dalintis per kitą puslapį

Kam šitą nesamonę daryt?

$insertSQL = sprintf("INSERT INTO added_ad (Name, url,  Image) VALUES (%s, %s, '$Image')",
                       GetSQLValueString($_POST['Name'], "text"),
                       GetSQLValueString($_POST['url'], "text"),

mysql_real_escape_string naudok kintamiesiams(tai yra labai svarbu tam tavo $Image).
Ir po galais, nenaudok deprecated funkcijų.  Naudok mysqli_, nes mysql_ niekas nebenaudoja.

Redaguota , nario D34DC0D3
  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

Jei šito nėra:

meta: query was empty

Pabandyk:

 

$tmpName  = $_FILES['Image']['tmp_name'];  
$fileHandle = fopen($tmpName, "r");
$image = fread($fileHandle, filesize($tmpName));
fclose($fileHandle);
$insertSQL = "INSERT INTO added_ad (Name, url,  Image) VALUES ('"
            .mysql_real_escape_string($_POST['Name'])."', '"
            .mysql_real_escape_string($_POST['url'])."', '$image')";
patikslinau dar.

P.S. Atidžiau pažiūrėjęs tavo kodą pastebėjau, kad su $Image tu tik failo vardą pasiemi ir jį įrašai į duomenų bazę. Tu turi failo turinį pasiimt!

Redaguota , nario D34DC0D3
  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

$tmpName = $_FILES['Image']['tmp_name'];

$fileHandle = fopen($tmpName, "r");

$image = fread($fileHandle, filesize($tmpName));

fclose($fileHandle);

$insertSQL = "INSERT INTO added_ad (Name, url, Image) VALUES ('"

+mysql_real_escape_string($_POST['Name'])+"', '"

+mysql_real_escape_string($_POST['url'])+"', '$image')";

 

Nejaugi nėra skirtumo PHP kalboje tarp + ir .?

 

 

'" .mysql_real_escape_string( $_POST[ 'Name' ] ). "'

Nes kažkaip kiek rašiau kodą niekad neteko naudoti tik +, nebent +. , net įdomu pasidarė :D
  • Teigiamai 2
Nuoroda į komentarą
Dalintis per kitą puslapį

Nejaugi nėra skirtumo PHP kalboje tarp + ir .?

 

 

'" .mysql_real_escape_string( $_POST[ 'Name' ] ). "'

Nes kažkaip kiek rašiau kodą niekad neteko naudoti tik +, nebent +. , net įdomu pasidarė :D
Yep, thanks for correcting this. Metus jau pasinėręs į java ir ts, tai be editorious greit suvėliau ne ta sintakse :D Redaguota , nario D34DC0D3
  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

Viskas gerai, maniau aš jau pats čia kažko nežinau, galvojau kad atsilieku nuo technologijų :D


if ( ( isset( $_POST[ "MM_insert" ] ) ) && ( $_POST[ "MM_insert" ] == "Adding" ) ) {

    allowedExts = array( "gif", "jpeg", "jpg", "png" );
    $temp = explode( ".", $_FILES[ "file" ][ "name" ] );
    $extension = end( $temp );

    if ( ( ( $_FILES[ "file "][ "type" ] == "image/gif" )
            || ( $_FILES[ "file" ][ "type" ] == "image/jpeg" )
            || ( $_FILES[ "file" ][ "type" ] == "image/jpg" )
            || ( $_FILES[ "file" ][ "type" ] == "image/pjpeg" )
            || ( $_FILES[ "file" ][ "type" ] == "image/x-png" )
            || ( $_FILES[ "file" ][ "type" ] == "image/png" ) )
        && ( $_FILES[ "file" ][ "size" ] < 20000000000000 )
        && in_array( $extension, $allowedExts ) ) {
        if ( $_FILES[ "file" ][ "error" ] > 0 ) {
            echo " Return Code: " . $_FILES[ "file" ][ "error" ] . " <br> ";
        } else {

        /* 
        aplankalas į kurį keliamos nuotraukos jeigu reikia.

            move_uploaded_file( $_FILES[ "file" ][ "tmp_name" ],
                "../images/" . $_FILES[ "file" ][ "name" ] );
        */

        }
    } 
    $image = $_FILES[ "file" ][ "name" ];

    $insertSQL = "INSERT INTO added_ad ( Name, url, Image ) VALUES ( '" .$_POST[ "Name" ]. "', '" .$_POST[ "url" ]. "', '" .$image. "' )";


    mysql_select_db( $database_DATA_registration, $DATA_registration );
    $Result1 = mysql_query( $insertSQL, $DATA_registration ) or die( mysql_error() );

}
Pamėgink šita kodą, jeigu mes klaidą, parašyk čia ją :) Redaguota , nario DieseL`
  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

Viskas gerai, maniau aš jau pats čia kažko nežinau, galvojau kad atsilieku nuo technologijų :D

 


if ( ( isset( $_POST[ "MM_insert" ] ) ) && ( $_POST[ "MM_insert" ] == "Adding" ) ) {

    allowedExts = array( "gif", "jpeg", "jpg", "png" );
    $temp = explode( ".", $_FILES[ "file" ][ "name" ] );
    $extension = end( $temp );

    if ( ( ( $_FILES[ "file "][ "type" ] == "image/gif" )
            || ( $_FILES[ "file" ][ "type" ] == "image/jpeg" )
            || ( $_FILES[ "file" ][ "type" ] == "image/jpg" )
            || ( $_FILES[ "file" ][ "type" ] == "image/pjpeg" )
            || ( $_FILES[ "file" ][ "type" ] == "image/x-png" )
            || ( $_FILES[ "file" ][ "type" ] == "image/png" ) )
        && ( $_FILES[ "file" ][ "size" ] < 20000000000000 )
        && in_array( $extension, $allowedExts ) ) {
        if ( $_FILES[ "file" ][ "error" ] > 0 ) {
            echo " Return Code: " . $_FILES[ "file" ][ "error" ] . " <br> ";
        } else {

        /* 
        aplankalas į kurį keliamos nuotraukos jeigu reikia.

            move_uploaded_file( $_FILES[ "file" ][ "tmp_name" ],
                "../images/" . $_FILES[ "file" ][ "name" ] );
        */

        }
    } 
    $image = $_FILES[ "file" ][ "name" ];

    $insertSQL = "INSERT INTO added_ad ( Name, url, Image ) VALUES ( '" .$_POST[ "Name" ]. "', '" .$_POST[ "url" ]. "', '" .$image. "' )";


    mysql_select_db( $database_DATA_registration, $DATA_registration );
    $Result1 = mysql_query( $insertSQL, $DATA_registration ) or die( mysql_error() );

}
Pamėgink šita kodą, jeigu mes klaidą, parašyk čia ją :)

 

 

Error'ų nemeta, bet [bLOB - 10B]

Nuoroda į komentarą
Dalintis per kitą puslapį

tu ikelineji ne faila o jo vieta kompe, skaityk faila ir ikelk jo turini

 

btw, kodas siukslynas, visu pirma normaliai ji lygiuok, atsikratyk daugiau nei 2 \n, naudok PDO, ...

Jis gi nori blob įkelt, o ne image path. Kaip rašiau prieš tai, tam reikia nusiskaityt paveiksliuko failą:

$tmpName  = $_FILES['Image']['tmp_name'];  
$fileHandle = fopen($tmpName, "r");
$image = fread($fileHandle, filesize($tmpName));
fclose($fileHandle);

ir tada tik šitą $image kintamajį galima dėti į sql eilutę.

Redaguota , nario D34DC0D3
Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2823 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...