Kirjautuminen

Haku

Tehtävät

Kilpailu

Putka Open 2025
3. kierros:
17.10. klo 18 – 19.10. klo 23

Keskustelu: Nettisivujen teko: $HTTP_SERVER_VARS

Sivun loppuun

Extreme [06.01.2006 14:15:01]

#

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ää:)*

tsuriga [06.01.2006 14:39:04]

#

<?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'];
?>

Antti Laaksonen [06.01.2006 14:42:29]

#

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.

Extreme [06.01.2006 16:44:18]

#

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/" ;

Extreme [08.01.2006 18:15:33]

#

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

Blaze [08.01.2006 18:50:26]

#

Ota ne pisteet sieltä lainausmerkkien sisältä pois >_<

Extreme [08.01.2006 18:53:54]

#

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.

sooda [08.01.2006 18:56:19]

#

Pitäskö sen ehkä olla

<?php echo "Kuva: $where_form_is$images$image_list[5]"; ?>

hunajavohveli [08.01.2006 19:00:37]

#

Luultavasti, sillä pelkkä "Kuva:" tuossa alussa ei sano PHP-tulkille yhtään mitään. Lainausmerkitkään eivät ole pakollisia muuta kuin merkkijonoille.

Extreme [08.01.2006 19:01:12]

#

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."
?>

sooda [08.01.2006 19:20:23]

#

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";

Extreme [08.01.2006 19:28:48]

#

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);

?>

sooda [08.01.2006 19:37:24]

#

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.

Metabolix [08.01.2006 19:37:44]

#

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]."

Extreme [08.01.2006 19:56:06]

#

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 ;)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta