Avatar billede overgreat Forsker
12. juni 2005 - 21:24 Der er 14 kommentarer og
1 løsning

problemer med at få php'en til at forstå mit '-tegn

Når jeg skal bruge tegnet ' får jeg problemer med outputtet.

echo ",'$$datab[1]'";

Giver resultatet: , /$række1, /$række2, osv.
Min intention er at den skal skrive: , '$række1', '$række2', osv.

Hvordan får jeg php'en til at læse min kode på denne måde?

----------------------------------
<?
include("config.php");
  $db = mysql_connect($server, $user, $pass);
  mysql_select_db($database, $db);
  $forespb = mysql_query("SELECT id, udstyr, udstyra FROM bil_udstyra");
while ($datab = mysql_fetch_row($forespb)){
echo ",'$$datab[1]'"; }
?>
Avatar billede nielle Nybegynder
12. juni 2005 - 21:28 #1
echo ",'" . $$datab[1] . "'";
Avatar billede overgreat Forsker
12. juni 2005 - 21:38 #2
så skriver den:
,\'\',\'\',\'\'
Avatar billede sukos Juniormester
12. juni 2005 - 21:41 #3
Nok bare

echo ",'" . $datab[1] . "'";
Avatar billede overgreat Forsker
12. juni 2005 - 21:46 #4
Mit problem er, at jeg har brug at jeg kan indsætte værdierne med et $-tegn foran.

Den skriver med det sidste forslag:
,\'anhangertrak\',\'nysynet\',\'airbag\'

Jeg har brug for:
,'$anhangertrak','$nysynet','$airbag'
Avatar billede sukos Juniormester
12. juni 2005 - 21:51 #5
Det er output til browseren?
Forstår ik' lige at ' bliver escapet, når echo startes med "
Men ellers,

echo ",'\$" . $datab[1] . "'";
Avatar billede overgreat Forsker
13. juni 2005 - 09:00 #6
Du har ret.... når jeg echo'er den med det samme giver den det rigtige resultat....

Men når jeg så vil bruge resultatet i nedenstående del af koden, som er en del af formularen, så er det at den læser det anderledes. Det fatter jeg ikke.

Kan det ikke repareres?

Jeg vil gerne have sat $ho og $hoo værdierne ind i INSERT og VALUES kommandoen. For at se hvad den skriver har jeg lidt længere nede sat den i echo.

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

<?
if($up==ja){


session_start();
$_SESSION['nummer'] = $nummer;

$konfiguration["upload_bibliotek"] = "./upload";
$konfiguration["max_stoerrelse"] = "1000";

/* Hvor flytter vi fra og til */
$fra = $_FILES["upfil"]["tmp_name"];
$ext = strtolower(end(explode(".", $_FILES['upfil']['name'])));
$name = "$id.$ext";
$til = $konfiguration["upload_bibliotek"] . "/" . $name;

/* Check PHP-version */
list($major, $minor, $rev) = explode(".", phpversion());
if($major < 4) {
  die("Jeg kan kun arbejde med PHP 4.0.0 eller derover");
}

/* Skab de "moderne" arrays hvis vi arbejder med en aeldre PHP */
if($minor < 1) {
  $_FILES = $HTTP_POST_FILES;
  $_POST = $HTTP_POST_VARS;
  $_SERVER = $HTTP_SERVER_VARS;
}

/* Accepterer vi filens stoerrelse? */
$fil_stoerrelse = filesize($fra)/1024;
if($fil_stoerrelse > $konfiguration["max_stoerrelse"]) {
  die("Desværre - filen er for stor. Jeg accepterer kun " .
      $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
      ceil($fil_stoerrelse, 1) . " kb");
}

/* Saa koerer vi */
if(function_exists("move_uploaded_file")) {
  move_uploaded_file($fra, $til);
  $billede = basename($til);

  include("config.php");
  $db = mysql_connect($server, $user, $pass);

  mysql_select_db($database, $db);

mysql_query("SELECT id, udstyr, udstyra FROM bil_udstyra");


  $dato = date("j/n - Y");


  mysql_query("INSERT INTO `bil_bil` ( `id` , `kategori`, `maerke`, `model`, `variant`, `type`, `bstof`, `farve`, `aar`, `km`, `pris`, `afgift`, `billede`)
  VALUES ('', '$kategori', '$maerke', '$model', '$variant', '$type', '$bstof', '$farve', '$aar', '$km', '$pris', '$afgift', '$billede')");
 
mysql_query("INSERT INTO `bil_udstyr` (`id` $ho) VALUES ('', $hoo )");

echo "bilen er oprettet!  $hoo $ho";


  echo "<a href='abil.php'>Retur</a><br>";
session_destroy();
}

else {
  copy($fra, $til);

}

}else{
?>
Avatar billede overgreat Forsker
13. juni 2005 - 09:01 #7
Henter værdierne ved hjælp af følgende i formularen:

---------------
<INPUT TYPE="hidden" NAME="ho" VALUE=<?
include("config.php");
  $db = mysql_connect($server, $user, $pass);
  mysql_select_db($database, $db);
  $forespa = mysql_query("SELECT id, udstyr, udstyra FROM bil_udstyra");
while ($dataa = mysql_fetch_row($forespa)){
echo ",`$dataa[1]`"; }
?> >
<INPUT TYPE="hidden" NAME="hoo" VALUE=<?
include("config.php");
  $db = mysql_connect($server, $user, $pass);
  mysql_select_db($database, $db);
  $forespb = mysql_query("SELECT id, udstyr, udstyra FROM bil_udstyra");
while ($datab = mysql_fetch_row($forespb)){
print ",'\$" . $datab[1] . "'"; }
?>>
Avatar billede overgreat Forsker
13. juni 2005 - 10:42 #8
Problemet er at når jeg vælger TEXT i stedet for HIDDEN i INPUT TYPE med navnet hoo, så skriver den det korrekte (nemlig: ,'$anhangertrak','$nysynet','$airbag')

Når jeg så echo den i følgende linie (echo "bilen er oprettet!  $hoo";), så er det ændret til (,\'$anhangertrak\',\'$nysynet\',\'$airbag\')........æææææææææævvvvvvvv


Hvordan får jeg det til at virke uden at alle de trælse \-tegn kommer med i skidtet?
Avatar billede overgreat Forsker
13. juni 2005 - 13:15 #9
I kan se det på følgende adresse:
http://www.gdo.dk/dan/opretbil2.php

Nederst har jeg echo'et den. Der viser den rigtige måde. Men når jeg udfører formularen og den skal bruge min hidden text-felt name=hoo, ja så går den amok med /-tegnene.

Hvordan undgår jeg dette?

-------------------------------
<INPUT TYPE="hidden" NAME="hoo" VALUE=<?
include("config.php");
  $db = mysql_connect($server, $user, $pass);
  mysql_select_db($database, $db);
  $forespb = mysql_query("SELECT id, udstyr, udstyra FROM bil_udstyra");
while ($datab = mysql_fetch_row($forespb)){
print ",'\$" . $datab[1] . "'"; }
?>>

og

echo "bilen er oprettet!  $hoo";

....sakset fra det tidligere i indlægget.
----------------------------------
Avatar billede polle007 Nybegynder
13. juni 2005 - 13:25 #10
Når du submitter noget som indeholder ' vil php automatisk lave det om til \' når magic quotes er aktiveret i php.ini

De kan fjernes ved at køre indholdet gennem stripslashes()
Avatar billede overgreat Forsker
13. juni 2005 - 13:27 #11
Hvordan gør jeg dette? stripslashes()
Avatar billede overgreat Forsker
13. juni 2005 - 13:41 #12
Jeg har skrevet følgende:
echo "stripslashes($hoo)";

men den skriver blot i echoen:
stripslashes(,\'$anhangertrak\',\'$nysynet\',\'$airbag\')

Hvad er det der går galt?
Avatar billede overgreat Forsker
13. juni 2005 - 14:37 #13
... det virker!!!!!! Polle007 sender du et svar?
Avatar billede nielle Nybegynder
12. august 2005 - 12:12 #14
polle007, vi venter vist på dig. :^)
Avatar billede overgreat Forsker
03. januar 2006 - 19:46 #15
jeg lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester