Tämän lausekkeen ymmärtämisessä minulla on vaikeuksia.
<?php //Minne kuvat laitetaan: copy($HTTP_POST_FILES['kuva']['tmp_name'], "/home/keminmaa/public_html/car_images/".$image_part); $where_form_is="http".($HTTP_SERVER_VARS["HTTPS"]=="on"?"s":"")."://".$SERVER_NAME.strrev(strstr(strrev($PHP_SELF),"/")); ?>
Olen tekemässä formi tekelettä jolla uppaan MySql:ään tietoja+kuvan.
Nyt ongelmia on kuvan kanssa. Kuva kyllä menee oikeaan hakemistoon mutta kun katson MyPHPAdmilla kuvan hakemiston, näyttää se
http://www.xxxxxxxxxxxxx.com/MCA/1.0.1//home/keminmaa/public_html/car_images/02_02_38_Business Skype.jpg
ja oikea hakemisto on
www.xxxxxxxxxxx.com/car_images/02_02_38_Business Skype.jpg
minkä osoitteen sen pitäisi näyttää.
Ilmeisesti ylläolevassa lausekkeessa nyt mättää jokin.
*vaikea selittää:)*
<?php // kokeile tätä ja kerro jos toimi $uploaddir = 'car_images/'; $uploadfile = $uploaddir . basename($_FILES['kuva']['name']); if (is_uploaded_file($_FILES['kuva']['tmp_name'])) { if (move_uploaded_file($_FILES['kuva']['tmp_name'], $uploadfile)) { echo "File is valid, and was successfully uploaded.\n"; } else { echo "Possible file upload attack!\n"; } } // en mee takkuusee löysin manuskasta tämän $where_form_is=strtolower(strtok($_SERVER['SERVER_PROTOCOL'], '/')).'://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; ?>
Kuvan oikea osoite on kaiketi:
$osoite = "http://www.xxxxxxxxxxxx.com/car_images/" . $image_part;
Jos tallennat tuon suoraan tietokantaan, niin pitäisi tulla oikea osoite.
En kyllä ymmärrä, mikä tuo $where_form_is oikein on.
Sillain saan sen toimiin jos teen car_images -hakemiston samaan paikkaan kuin scripti on.
Scripti sijaitsee /public_html/MCA/1.0.1/
Mutta car_images sijaitsee /public_hmtl/car_images/
Tässä "ydin" osa koodista:
<?PHP $merkki=$_POST['merkki']; $malli=$_POST['malli']; $vuosimalli=$_POST['vuosimalli']; $ajomaara=$_POST['ajomaara']; $lisatiedot=$_POST['lisatiedot']; $hinta=$_POST['hinta']; $kuva=$HTTP_POST_FILES['kuva']; if($merkki=="Valitse" || $vuosimalli=="Valitse" | $hinta=="" ){ $errors=1; $error.="<li>Et täyttänyt vaadittavia kenttiä.Mene takaisin ja yritä uudelleen"; } if($HTTP_POST_FILES['kuva']['tmp_name']==""){ } else if(!is_uploaded_file($HTTP_POST_FILES['kuva']['tmp_name'])){ $error.="<li>Kuvaa, ".$HTTP_POST_FILES['kuva']['name'].", ei ladattu!"; $errors=1; } if($errors==1) echo $error; else{ $image_part = date("h_i_s")."_".$HTTP_POST_FILES['kuva']['name']; $image_list[5] = $image_part; copy($HTTP_POST_FILES['kuva']['tmp_name'], "$image_dir".$image_part); $where_form_is="http".($HTTP_SERVER_VARS["HTTPS"]=="on"?"s":"")."://".$SERVER_NAME.strrev(strstr(strrev($PHP_SELF),"/")); ?>
conf.php:ssä
$image_dir = "/home/keminmaa/public_html/car_images/" ;
Osaako joku kertoa miten tämä lauseke laitetaan sellaiseksi ettei se laita pisteitä väliin.
<?PHP Kuva: ".$where_form_is.".$images.".$image_list[5]." ?>
Eli tuloksena tulee tällainen:
htpp://www.xxxxx.com./car_images/.auto.jpg
Ota ne pisteet sieltä lainausmerkkien sisältä pois >_<
Blaze kirjoitti:
Ota ne pisteet sieltä lainausmerkkien sisältä pois >_<
Parse error: parse error, unexpected T_VARIABLE in /home/keminmaa/public_html/MCA/1.0.1/process.php on line 51
Tollainen herjaa tulee sitten.
Pitäskö sen ehkä olla
<?php echo "Kuva: $where_form_is$images$image_list[5]"; ?>
Luultavasti, sillä pelkkä "Kuva:" tuossa alussa ei sano PHP-tulkille yhtään mitään. Lainausmerkitkään eivät ole pakollisia muuta kuin merkkijonoille.
sooda kirjoitti:
Pitäskö sen ehkä olla
<?php echo "Kuva: $where_form_is$images$image_list[5]"; ?>
Sama herja tulee.
Parse error: parse error, unexpected T_VARIABLE
Tuo pätkä on tilanteesta jossa lähetetään sähköposti käyttäjälle,
että nyt on lisätty kantaan roinaa.
Sähköpostissa lukee:
Kuva: http://www.xxxxxx.com/car_images/auto.jpg
Tässä lisää mitä siinä lähetetään, ja ne kyllä menee perille ihan ok.
Menee kuvan osoitekkin muuten mutta ne pisteet tosiaan siinä on =)
<?PHP Lisätietoja: ".$lisatietoja." ?>
No kun ei noin vaan voi tehdä. Haluat varmaa tulostaa noi? Php-koodiin ei kirjoiteta suoraan mitään tekstiä tolleen ellei se sit ole joku ihan ohjelmakoodiin sisältyvä. Luulisin että haluat laittaa tohon
echo "Lisätietoja: $lisatietoja";
Tuo sisältyy koodiin
Tässä koko s.postin sisällön generointi:
<?PHP $message=" Lisätty auto: ************* Merkki: ".$merkki." Malli: ".$malli." Vuosimalli: ".$vuosimalli." Mittarilukema: ".$mittarilukema." Hinta: ".$hinta." € Lisätietoja: ".$lisatietoja." Kuva: ".$where_form_is.".$images.".$image_list[5]." "; $message = stripslashes($message); ?>
No oisit kertonu heti >_<
<?php $message=" Lisätty auto: ************* Merkki: $merkki Malli: $malli Vuosimalli: $vuosimalli Mittarilukema: $mittarilukema Hinta: $hinta € Lisätietoja: $lisatietoja Kuva: $where_form_is$images$image_list[5] "; $message = stripslashes($message); ?>
Huomaa, että lainausmerkkien sisään voi tökkiä muuttujiakin.
No tuo selittää jo paljon, sen olisi voinut alusta asti laittaa kokonaan.
.$images.
=> $images
Eli otat ne pisteet pois.
Tai oikeastaan
Kuva: ".$where_form_is.$images.$image_list[5]."
sooda kirjoitti:
No oisit kertonu heti >_<
<?php $message=" Lisätty auto: ************* Merkki: $merkki Malli: $malli Vuosimalli: $vuosimalli Mittarilukema: $mittarilukema Hinta: $hinta € Lisätietoja: $lisatietoja Kuva: $where_form_is$images$image_list[5] "; $message = stripslashes($message); ?>Huomaa, että lainausmerkkien sisään voi tökkiä muuttujiakin.
Wörkkii...
Extreme kiitos ja kumarrus ;)
Aihe on jo aika vanha, joten et voi enää vastata siihen.