Jump to content
php.lv forumi

Neievieto bildi pie noteiktā lietotāja ID.


iall

Recommended Posts

Lūk kverijs:

mysql_query("INSERT INTO lietotaji (bilde) VALUES ('$bilde') WHERE id = '" . $_GET['id'] . "'");

 

Ar šo kveriju es cenšos ievietot bildi pie noteiktā lietotāja ID ,bet problēma tāda ,ka neizdodas!

 

Skripts resaizo un ievieto bildi noteiktajā mapē ,viss ļoti smuki ,tikai pie lietotāja nepievieno izvēlēto bildi.

 

Bet ja noņem nost daļu ,kas sākas no 'WHERE' ,tad skripts ievieto bildi ,tikai pie neesoša lietotāja (un arī izveido ID).

 

Bildes lauks ir `BLOB`.

 

Paldies.

 

EDIT: Tikko atcerējos ,ka man varbūt sesijā iesetot lietotāja ID un likt $_SESSION['id'] - $_GET['id'] vietā?

Edited by iall
Link to comment
Share on other sites

  • Replies 39
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Ahhh ,es muļķis ,kverijs laikam ir jāraksta šāds vaine:

mysql_query("UPDATE lietotaji SET bilde = $bilde WHERE id = '$_GET[id]'");

 

tagad viņš bildi nepievieno lietotājam! Laikam ,ka tas $_GET['id']; vainīgs.

 

Doma ir tāda ,ka lietotājs ir ielogojies un viņš grib nomainīt sev profila bildi.

 

P.S. - Paldies par padomu ,centīšos izvairītites no SQL injekcijām.

Edited by iall
Link to comment
Share on other sites

Nuja, ka SET ;) Es i nemaz nepaskatījos uz query sākumu.

 

<?php
// Izstrādājot ieslēdzam error ziņojumus
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Nolasi ID  un eskeipo specsimbolus (vari vēl pārbaudīt vai id ir skaitlis)
$id = isset( $_GET['id'] ) ? htmlspecialchars($_GET['id']) : '';

// Norādam, kas ir vajadzīgs iekš $bilde
$bilde = 'demo.gif';

// Atjaunojam datus + skatamies vai ir error ziņojumi
$sql = "UPDATE users SET bilde = '$bilde' WHERE id = '$id'";
if (!mysql_query($sql)) die(mysql_error());
?>

 

Ceram, ka palīdzēs.

Link to comment
Share on other sites

Skripts saka: Bilde ir veiksmiigi pievienota! - iall.jpg

Bilde uz server aiziet ,gan lielā ,gan mazā!

SQL izpildās un neko neziņo

Izvadās arī - $HTTP_POST_FILES['avatari']['name']

 

Nau ne jausmas ,kas verētu būt! :/ Nevarētu būt ,ka $_GET['id']; nav īsti riktīgs!?

Tikko pārbaudīju echo $id; ,neko neizvadīja.

Edited by iall
Link to comment
Share on other sites

Vēl varu ieteikt:

 

1) Beigās skriptā echo $HTTP_POST_FILES['avatari']['name']; nomaini uz echo $bilde; (lai var saprast vai mainīgais `bilde` kaut ko satur)

2) Pārbaudi vai datubāžu lauki eksistē (lai gan ja sql būtu kļūda vajadzētu būt erroram)

 

Īsāk sakot, vajag redzēt, vai echo $bilde beigās izvada to bildes nosaukumu.

 

edit.

Ja noņemot id pievienojas visiem tas bildes name, $bilde satur ko vajag. Jārok dziļāk. :)

 

Pirms sql ar echo izvadi $id, augšuplādējot apskaties kuram ID tu pievieno tai brīdī bildi, apskaties vai visās pusēs id sakrīt: skripts izvada īsto id, html upload formā skriptam padots tiek vajadzīgais id, datubāzē ir šāds id.. ?

Edited by pilots
Link to comment
Share on other sites

Jā ,mainīgais $bilde izvada - iall.jpg

 

Jocīgi ,skripts vairāk par vienu bildi uz servera neielādē.

 

Redz kas man izvadījās:

UPDATE lietotaji SET bilde = 'iall.jpg' WHERE id = ''

,tātad ,ID nemaz nav padots! :D

 

Formā nevar ielikt hidden lauku ar lietotāja ID ?

Edited by iall
Link to comment
Share on other sites

Kādā ziņā nelādē vairāk par vienu. Skriptā notiek vienas bildes pievienošana, ne tā? Konkrētās darbības ir profila bildes pievienošana vai lietotāja galerijas papildināšana?

Ja noņemot id pievienojas visiem tas bildes name, $bilde satur ko vajag. Jārok dziļāk. :)

Problēma varbūt ir tieši ar to id.

Pirms sql ar echo izvadi $id, augšuplādējot apskaties kuram ID tu pievieno tai brīdī bildi, apskaties vai visās pusēs id sakrīt: skripts izvada īsto id, html upload formā skriptam padots tiek vajadzīgais id, datubāzē ir šāds id.. ?

Edited by pilots
Link to comment
Share on other sites

Lietotājs pievieno sev profila bildi ,jā ,tikai vienu! Es runāju par to ,ja kāds cits lietotāks pievieno bildi ,uz servera stāv tikai viena bilde ,bet ir jābūt vairākām. Centīšos salabot to $_GET['id']; un tad varbūt arī citas bildes parādīsies! :)

Link to comment
Share on other sites

Tad tev bildes jāsaglabā ar unikāliem ģenerētiem nosaukumiem, lai divi lietotāji varētu pievienot vienāda nosaukuma bildes. Piemēram, lai no dažādiem kontiem useri var pievienot profilam bildi ar nosaukumu iall.jpg ;)

 

vari piemēram glabāk nosaukumam klāt user id.

 

Uz servera tad glabātos 1_iall.jpg, 234_iall.jpg ..

Edited by pilots
Link to comment
Share on other sites

Ja tā godīgi ,man nav ne mazākās nojausmas kā dabūt lietotāja ID iekš kverija! Kur $_GET['id']; ir lietotāja id.

 

P.S. - Laikam ,ka būs jāģenerē bildes ar dažādiem nosaukumiem! Paldies par ieteikumu. :)

Link to comment
Share on other sites


×
×
  • Create New...