T_CONSTANT_ENCAPSED_STRING error

Status
Niet open voor verdere reacties.

murdoch201

Gebruiker
Lid geworden
31 mei 2008
Berichten
336
Hoi,

Ik heb nog niet zoveel verstand van php. Ik zit hier nu volgens mij met een heel stom & idioot probleem.
De bedoeling is, is dat als er in de url de name, kills & deaths (jah, een spel) word opgegeven, dat hij deze score naar een txt bestand schrijft in een subfolder (dus er is buiten het php script ook nog een mapje met scores, met daarin een mapje genaamd users. In dat mapje users moet het bestand komen)

iemand die mij kan helpen?

PHP:
<?php

$aname = $_GET['aname'];
$akills = $_GET['akills'];
$adeaths = $_GET['adeaths'];
$dirtow = 'scores\\users';

$afileto = $dirtow . '\' . $aname . '.txt';

$openeen = fopen($afileto, 'w');
fwrite($openeen, $aname . '\n' . 'Kills: \t\t' . $akills . '\n' . 'Deaths: \t' . $adeaths);
fclose($openeen);

?>

Mvg,
murdoch
 
Aan de kleuren in je bericht kan je al zien dat er iets misgaat op regel 8. De reden hiervoor is omdat je daar een backslash gebruikt. De backslash dient in PHP (en veel andere programmeertalen) als escape character. Dat wil dus zeggen dat het teken na de backslash letterlijk genomen moet worden en it gezien worden als "speciaal" teken. Hierdoor sluit het aanhalingsteken na de backslash de string begonnen met het aanhalingsteken voor de backslash niet af. Met als gevolg deze foutmelding. De oplossing hiervoor is om de backslash te escapen:
PHP:
$afileto = $dirtow . '\\' . $aname . '.txt';
 
Je hebt de regel daarboven afgesloten met een puntkomma? Een vergeten puntkomma is meestal de reden van die foutmelding.
 
Oh, wat ben ik toch een kip haha.
Maar nu komt er weer wat...

No such file or directory krijg ik bij fopen.

Ik heb nu dit:

PHP:
<?php

$aname = $_GET['aname'];
$akills = $_GET['akills'];
$adeaths = $_GET['adeaths'];

$dirtow = 'scores/user';

$afileto = $dirtow . '/' . $aname . '.txt';

$openeen = fopen($afileto, 'w');
fwrite($openeen, $aname . '\n' . 'Kills: \t\t' . $akills . '\n' . 'Deaths: \t' . $adeaths);
fclose($openeen);

?>
 
Dan moet je het pad controleren van je text file.
Je script gebruik je die door een include, want dan moet je het pad maken ten opzichten van de file waar je script geinclude wordt.
anders moet je het pad controleren ten opzichten van het script zelf.
 
Nou, die tekstbestanden zijn er nog niet, net als de submap, maar die zou die normaal moeten aanmaken las ik...
 
Als je server php5 of hoger ondersteunt waarom gebruik je dit dan niet
$file = 'people.txt';
// Open the file to get existing content
$current = file_get_contents($file);
// Append a new person to the file
$current .= "John Smith\n";
// Write the contents back to the file
file_put_contents($file, $current);
 
Omdat het geen verschil maakt

Warning: file_get_contents(scores/user/murdoch.txt) [function.file-get-contents]: failed to open stream: No such file or directory
 
volgens mij was het w+ om file te maken als hij niet bestaat en niet w
 
Nee, maakte niets uit, ik heb het opgelost door gewoon dit ergens in de code te plaatsen:

PHP:
function fopen_recursive($path, $mode, $chmod=0755){ 
  preg_match('`^(.+)/([a-zA-Z0-9]+\.[a-z]+)$`i', $path, $matches); 
  $directory = $matches[1]; 
  $file = $matches[2]; 

  if (!is_dir($directory)){ 
    if (!mkdir($directory, $chmod, 1)){ 
    return FALSE; 
    } 
  } 
 return fopen ($path, $mode); 
}

Toch bedankt ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan