php in variabele

Status
Niet open voor verdere reacties.

gebruiker35

Gebruiker
Lid geworden
29 mrt 2008
Berichten
434
Ik wil de volgende code's in een variabele pompen...

Je bent niet ingelogd! <a target='_top' href='http://home.kliksafe.nl/knulst/klassesite/index.php?login=1'>Klik hier om in te loggen.</a>

PHP:
<?PHP session_start(); ?><?php if($_SESSION['????'] != TRUE){ echo ' .$inl. ' ;  die($_SESSION['???']);  die();  } ?> 

<html><head><LINK HREF='stylesheet1.css' REL='stylesheet' TYPE='text/css'><script language='JavaScript' type='Text/JavaScript'><!--   if (top.location == self.location) { top.location.href = 'http://home.kliksafe.nl/klassesite/index.php?page=1'  } //--> </script> </head> <body>


echter, in een variabele krijg ik:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in

in de php zin, dus de eerste variabele.

Wie weet hier een oplossing op?
 
Is de variabele die je probeert weer te geven wel gedeclareerd? Daarnaast vind ik je taalgebruik (lees: 'in een variabele pompen') niet erg verhelderend over wat je precies wilt doen.

En (ik weet niet zeker of het iets uitmaakt, maar ik zou die eerste
PHP:
<?PHP
met kleine letters schrijven:

PHP:
<?php
 
Oké, maar heb je m'n suggesties geprobeerd?

Het lijkt mij dat de variabele niet gedeclareerd is.
 
Tja, alles op 1 regel zetten heeft nog nooit iets goeds gedaan. :rolleyes:

Alles netjes onder elkaar zetten zorgt voor overzicht en leesbaarheid, gebruik het dus ;)
Daarnaast hoort PHP inderdaad met kleine letters geschreven te worden.

Even een klein stappenplan:

Regels onder elkaar + inspringen
PHP:
<?php
session_start();
?>
<?php
if($_SESSION['????'] != TRUE) {
  echo ' .$inl. ' ; 
  die($_SESSION['???']);
  die();
}
?>
<html>
<head>
  <LINK HREF='stylesheet1.css' REL='stylesheet' TYPE='text/css'>
  <script language='JavaScript' type='Text/JavaScript'>
    <!--
    if (top.location == self.location) {
      top.location.href = 'http://home.kliksafe.nl/klassesite/index.php?page=1' 
    }
    //-->
  </script>
</head>
<body>
Aardig wat duidelijk vindt je ook niet?

Een paar dingen die me opvallen
  • PHP:
    <?php
    session_start();
    ?>
    <?php
    Eerst PHP sluiten om het vervolgens weer te openen? Beetje onnodig.
  • PHP:
    if($_SESSION['????'] != TRUE) {
    Een sessie-variabele geef je meestal een naam die weergeeft wat die variabele inhoudt. Een stel vraagtekens zegt niets over de inhoud van de variabele en wat je er mee moet doen.
  • PHP:
    echo ' .$inl. ' ;
    Ten eerste hetgeen ErikBooy007 zegt: "Is de variabele die je probeert weer te geven wel gedeclareerd". Nergens staat wat die variabele inhoudt. Hij wordt nergens aangemaakt.
    Ten tweede is het onnodig om quotes te gebruiken wanneer je alleen een enkele variabele wilt echoën.
  • PHP:
      die($_SESSION['???']);
      die();
    1x die(); is wel voldoende
    Daarnaast heeft het niet veel zin om die variabele daar tussen te zetten want dan wordt deze weergegeven.
    (Hoewel deze drie vraagtekens heeft en waarschijnlijk niet eens bestaat aangezien de andere er vier heeft)
Met het 3e punt is de door jou gegeven foutmelding al opgelost echter hetgeen waar de foutmelding daadwerkelijk over gaat is het gebruik van de single-quotes.

Binnen single-quotes kun je niet zomaar een variabele laten weergeven, deze moet je escapen (met andere woorden: buiten quotes halen)

Zoals ik al aangaf is het beste om hier gewoon geen quotes te gebruiken.
Wil je ze toch gebruiken dan hoort dat zo.
PHP:
// Single-quotes
echo ''. $inl .'';
// Double-quotes
echo "$inl";
Waarschijnlijk zie je wel dat het met single-quotes grote onzin is aangezien je ze opent maar meteen weer sluit.
 
Laatst bewerkt:
die ik heb de inhoud van de sessie hier weg te laten, omdat er heel wat hack-aanvallen op m'n site zullen komen.

Daar staat dus gewoon een woord in mijn script zelf.

rest werkt het nog niet..., na alle aanpassingen:(
 
btw. Als iemand weet hoe ik een document kan bewerken zonder opnieuw alles te moeten posten, zeg het dan!
 
Wat bedoel je met je laatste bericht en hoe ziet je code er nu uit dan?
 
Het gaat erom dat ik een stuk site online bijwerk.

Nu heb ik hetvolgende gemaakt:

PHP:
   setlocale (LC_ALL, 'nl_NL');

    $datum = strftime ("%A %d-%m-%Y");





$indexhtml="$_POST[field1]";


    $a=fopen("home1.php","r");
    if ($a)
    {  
         $b=file("home1.php");
         fclose($a);
         $a=fopen("home1.php","w"); }
   
 if ($a)
    {
         fwrite($a,"$indexhtml <p> Laast bijgewerkt: $datum </p>    ");

echo 'gelukt';    }


}

}




$filename = 'home1.php';
$inhoud =  file_get_contents($filename);
?>


HTML:
<form name="loginform" method="POST" action="./home.php">
<textarea type="text" input="text" name="field1" rows="100" cols="50"><?php echo"$inhoud"; ?></textarea>
 
Laatst bewerkt:
Met volgende foutmeldingen:




Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /usr/home/home.rdnet.nl/knulst/klassesite/home1.php on line 4

Parse error: syntax error, unexpected $end in /usr/home/home.rdnet.nl/knulst/klassesite/home1.php on line 43
 
Het zou wel helpen als we de hele code konden zien. Dan kunnen we ook kijken welke statements je opent, aangezien hij aangeeft dat er een onverwacht einde van een if-statement / loop of iets dergelijks is.

verder heb je nog

PHP:
$_POST[field1]
staan, dat moet zijn:
PHP:
$_POST['field1']
 
Het probleem is, dat php voor iedere quote een / zet.., hoe los ik dat op?

die $end zoek ik zelf wel even uit

PHP:
<?php session_start(); ?>

<?php

$ww = ('geheimwachtwoord he hehe ');
$contr = $_POST[field2];


if ($_POST[field2] == FALSE)

{  }

else {    



if ($_POST[field2] != $ww)
{
echo 'Please give an correct password!';
die('Please give an correct password!');
}
else
{

   setlocale (LC_ALL, 'nl_NL');

    $datum = strftime ("%A %d-%m-%Y");





$indexhtml="$_POST['field1']";


    $a=fopen("home1.php","r");
    if ($a)
    {  
         $b=file("home1.php");
         fclose($a);
         $a=fopen("home1.php","w"); }
   
 if ($a)
    {
         fwrite($a,"$indexhtml <p> Laast bijgewerkt: $datum </p>    ");

echo 'gelukt';    }


}

}



?>

<html>
<head>

<link rel="shortcut icon" href="http://home.kliksafe.nl/knulst/favico.ico" />
<LINK HREF="stylesheet.css" REL="stylesheet" TYPE="text/css">
</head>
<body>

<div id="body">

<?php

$filename = 'home1.php';
$inhoud =  file_get_contents($filename);
?>


            <form name="loginform" method="POST" action="./home.php">
<textarea type="text" input="text" name="field1" rows="100" cols="50"><?php echo"$inhoud"; ?></textarea>


PASS:
                    <input type="password" input="text"  name="field2" size="20" value="name" maxlength="99999999"></textarea>
                
                <input type="submit" value="OK" name="OK" class="button" onMouseOver="this.style.cursor='hand'"></p>
                  
            </form>
</div>     
</body>
</html>
 
Die /-fout zie ik nog niet. Ook

PHP:
$_POST[field2];

zou ik even veranderen in:

PHP:
$_POST['field2'];
 
die / fout is volgens mij geen fout, maar manier van php om om te gaan met ' en "
 
Sorry maar wij helpen je met een script, vervolgens vraag ik hoe het script er nu uit ziet en krijgen we een heel andere script voorgeschoteld.

In je 2e script zitten ook allerlei fouten met quotes en dan ligt het volgens jou aan PHP?

Verdiep je in de verschillen tussen single- en double-qoutes is mijn advies en antwoord op je hele thread.

Ohw en die $end heeft met je accolades ( { en } ) te maken. Kwestie van overzicht kweken en inspringen.
 
the devil...

dat is niet zo. Het is het hele script.
Ik moet vanmorgen naar scchool, vanmiddag werken, vanavond foto's maken. Morgen zal ik het hele script nakijken.
Het eigenlijk probleem is, dat php voor iedere quote een / zet! En wie weet hoe ik dat kan oplossen?????
Wat jullie eerst zagen:
PHP:
  setlocale (LC_ALL, 'nl_NL');

    $datum = strftime ("%A %d-%m-%Y");





$indexhtml="$_POST['field1']";


    $a=fopen("home1.php","r");
    if ($a)
    {  
         $b=file("home1.php");
         fclose($a);
         $a=fopen("home1.php","w"); }
   
 if ($a)
    {
         fwrite($a,"$indexhtml <p> Laast bijgewerkt: $datum </p>    ");

echo 'gelukt';    }


}

}



?>

in mijn laaste code post, daar zit nog een inlog gebeure boven.
En eronder staat een korte html page, die weer post naar hetzelfde bestand.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan