Gå til innhold

Hva er feil med denne paste koden ?


Anbefalte innlegg

Skrevet (endret)

Topicen sier nesten alt.

Paste scripte mitt er et script som jeg kan legge opp text på php siden min ...

 

Vel uansett, problemet er at jeg ikke får skrevet noe til filen.php som blir opprettet ...

Her er koden:

<?php 
$filename = "$topic.php";
if (!file_exists($filename)) {
touch("posts/$filename");
chmod("posts/$filename", 0777);
}
?>
<?php
$filename = "$topic.php";
$topic = nl2br(strip_tags($_POST["topic"]));
$upload = nl2br(strip_tags($_POST["upload"]));
$nick = strip_tags($_POST["nickname"]);
$somecontent = "<div id='text'>
 <p class='style5'><span class='style7'>
 $upload</span></p>
 <div id='nick'>
   <p class='style1'>Topic: $topic | Skrevet av $nick </p>
 </div>
</div>";
if (is_writable($filename)) {

  if (!$handle = fopen($filename, 'a')) {
        echo "Cannot open file ($filename)";
        exit;
  }

  if (fwrite($handle, "$somecontent\n") === FALSE) {
      echo "Cannot write to file ($filename)";
      exit;
  }
  
  echo '';
  
  fclose($handle);

} else {
  echo "The file $filename is not writable";
}
?>

 

Viss du ikke forstår hva jeg trenger hjelp til, spør :)

 

- Takker for hjelp

Endret av ggp
Videoannonse
Annonse
Skrevet

Hva er det scriptet putter ut, da? Kommer det en feilmelding, eller er det bare helt blankt?

 

 

Btw: bumping hjelper IKKE, og får deg bare i klammeri med moderatorene.

Skrevet

Et 'test-forum'. Noe som jeg driver å teste meg fram for å lære php ...

Scripte sender ut txt så folk kan lese :p

Og nei, siden er ikke blank...

 

Bare svar på spørsmålet du :yes:

Skrevet (endret)

Jeg svarer på spørsmålet ditt når du svarer på mitt. Hvis scriptet sender ut en feilmelding er det greit å få se det, sant? :roll:

 

Prøv dette:

<?php

$topic = nl2br(strip_tags($_POST["topic"]));
$filename = $topic . ".php";

if (!file_exists($filename)) {
touch("posts/$filename");
chmod("posts/$filename", 0777);
}

$topic = nl2br(strip_tags($_POST["topic"]));
$filename = $topic . ".php";
$upload = nl2br(strip_tags($_POST["upload"]));
$nick = strip_tags($_POST["nickname"]);

$somecontent = "<div id='text'>
<p class='style5'><span class='style7'>
$upload</span></p>
<div id='nick'>
  <p class='style1'>Topic: $topic | Skrevet av $nick </p>
</div>
</div>";

if (is_writable($filename)) {

 if (!$handle = fopen($filename, 'a')) {
       echo "Cannot open file ($filename)";
       exit;
 }

 if (fwrite($handle, "$somecontent \n") === FALSE) {
     echo "Cannot write to file ($filename)";
     exit;
 }

 echo '';

 fclose($handle);

} 
else 
{
 echo "The file $filename is not writable";
}
?>

 

Gi beskjed om hva som skjer.

Endret av jorgis
Skrevet

Vel, vet ikke helt hva som er galt :cry:

Får opp meldingen

The file test.php is not writable
Men filen blir lagret, men filen er helt blank ...

 

Ta en titt Her

Skrevet

Ja, når filen blir lagret, så skal den bli automatisk cmodet ...

<?php 
$filename = "$topic.php";
if (!file_exists($filename)) {
touch("posts/$filename");
chmod("posts/$filename", 0777);
}
?>

Det er vel riktig ?

Skrevet (endret)

Prøv å bruke ftp_site for å sette chmod istedet for chmod funksjonen.

 

Se eksempel på php.net

 

EDIT:

php.net/chmod:

Note: This function will not work on remote files as the file to be examined must be accessible via the servers filesystem.

Endret av kakkle
Skrevet

Eksempel:

<?php
/* Connect to FTP server */
$conn = ftp_connect('ftp.example.com');
if (!$conn) die('Unable to connect to ftp.example.com');

/* Login as "user" with password "pass" */
if (!ftp_login($conn, 'user', 'pass')) die('Error logging into ftp.example.com');

/* Issue: "SITE CHMOD 0777 path/to/posts/$topic" command to ftp server */
if (ftp_site($conn, 'CHMOD 0777 path/to/posts/$topic')) {
  echo "Command executed successfully.\n";
} else {
  die('Command failed.');
}
?> 

Skrevet

Nå får jeg opp meldingen

Warning: ftp_site(): SITE CHMOD command failed. in /mnt/home2/a/aa/aadnk/public_html/flaffy/news2/trader/upload2.php on line 45

Command failed.

Skrevet (endret)
]<?php 
$filename = "$topic.php";
if (!file_exists($filename)) {
touch("posts/$filename");
chmod("posts/$filename", 0777);
}
?>
<?php
/* Connect to FTP server */
$conn = ftp_connect('ftp.start.no');
if (!$conn) die('Unable to connect to ftp.example.com');

/* Login as "user" with password "pass" */
if (!ftp_login($conn, ****, '****')) die('Error logging into ftp.example.com');

/* Issue: "SITE CHMOD 0777 posts/$topic" command to ftp server */
if (ftp_site($conn, 'CHMOD 0777 posts/$topic.php')) {
 echo "Command executed successfully.\n";
} else {
 die('Command failed.');
}
?> 
<?php
$topic = nl2br(strip_tags($_POST["topic"]));
$filename = $topic . ".php";

if (!file_exists($filename)) {
touch("posts/$filename");
chmod("posts/$filename", 0777);
}

$topic = nl2br(strip_tags($_POST["topic"]));
$filename = $topic . ".php";
$upload = nl2br(strip_tags($_POST["upload"]));
$nick = strip_tags($_POST["nickname"]);

$somecontent = "<div id='text'>
<p class='style5'><span class='style7'>
$upload</span></p>
<div id='nick'>
 <p class='style1'>IP: $ip | Topic: $topic | Skrevet av $nick </p>
</div>
</div>";

if (is_writable($filename)) {

if (!$handle = fopen($filename, 'a')) {
      echo "Cannot open file ($filename)";
      exit;
}

if (fwrite($handle, "$somecontent \n") === FALSE) {
    echo "Cannot write to file ($filename)";
    exit;
}

echo '';

fclose($handle);

} 
else 
{
echo "The file $filename is not writable";
}
?>

Endret av ggp
Skrevet

Hmmm...

 

ser en helt annen ting med scriptet ditt, som nok er hovedprobelemet:

 

Du oppretter filen posts/$filename, mens når du skriver til filen, skriver du til $filename. Det vil opprette en fil i katalogen over posts, men vil ikke ha rettighetene 0777. Prøv å skriv til den filen du oppretter, altså posts/$filename

Det beste er nok å endre variabelen $filename til å være posts/$topic.php:

$filename = "posts/$topic.php";

Skrevet

Det hjalp litt tror jeg ... Men jeg fikk opp enda et nytt problem

Warning: ftp_site(): SITE CHMOD command failed. in /mnt/home2/a/aa/aadnk/public_html/flaffy/news2/trader/upload2.php on line 48

Command failed.

 

Linje 48 er:

if (ftp_site($conn, 'CHMOD 0777 $filename')) {

Skrevet

prøv på nytt med kun chmod. altså ikke ftp oppkobling og ftp_site...

 

Skal du bruke ftp_site, tror jeg du må bruke hele pathen til filen, altså:

/mnt/home2/a/aa/aadnk/public_html/flaffy/news2/trader/$filename

Skrevet

Jeg tok bort

<?php
/* Connect to FTP server */
$conn = ftp_connect('ftp.start.no');
if (!$conn) die('Unable to connect to ftp.example.com');

/* Login as "user" with password "pass" */
if (!ftp_login($conn, '...', '...')) die('Error logging into ftp.example.com');

/* Issue: "SITE CHMOD 0777 path/to/posts/$topic" command to ftp server */
if (ftp_site($conn, 'CHMOD 0777 $filename')) {
 echo "Command executed successfully.\n";
} else {
 die('Command failed.');
}
?> 

og da fikk jeg også en error:

The file Post Navn.php is not writable
Skrevet (endret)

har du chmod($filename, 0777) istedetfor det du tok vekk ?

 

husk at $filename må være "posts/$topic.php"

 

EDIT:

 

Hsuk også å kun touche $filename, og ikke posts/$filename.

Endret av kakkle

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...