Avatar billede geffen Nybegynder
06. april 2002 - 14:43 Der er 34 kommentarer og
1 løsning

Forsøg på at skive i txt fil på fjerne server

okay, det jeg er ved at lave er et activering af account system, en bruger mode tager et link der ser f.eks. således ude:
http://geffenweb.dyndns.org/myweb/New/activate.php4?mode=w&activation=56047572&emailaddress=Geffenweb@hotmail.com
når han så klikker på dette link skulle det activere has account ved at ændre et 0 til et 1 tal i account.txt, men da account.txt ikke ligger på samme server laved vi det så at activate.php4 kalder et script (writeit.php4) på den server som account.txt ligger på.
Writeit.php4 fortager så alt den skrivningen i account.txt
men her kommer de to script håber i kan hjælpe mig
det første script er activate.php4
det andet er så writeit.php4
Avatar billede geffen Nybegynder
06. april 2002 - 14:43 #1
<?PHP
$filename = "http://geffenweb.dyndns.org/POL/data/account.txt";
$fd = @fopen("$filename", "r");
if ($fd)
{
  $inline = file($filename);
  $number_of_lines = count($inline);
  $nr = -1;
  fclose($fd);
  for($x = 0; $x <= $number_of_lines ;$x++)
  {
  $nr++;
  $x = $x + 2;
  $name[$nr] = $inline[$x];
  $x = $x + 1;
  $pass[$nr] = $inline[$x];
  $x = $x + 1;
  $enabled[$nr] = $inline[$x];
  $x = $x + 1;
  $banned[$nr] = $inline[$x];
  $x = $x + 1;
  $staffs[$nr] = $inline[$x];
  $x = $x + 1;
  $email[$nr] = $inline[$x];
  $x = $x + 1;
  $emailvis[$nr] = $inline[$x];
  $x = $x + 1;
  $news[$nr] = $inline[$x];
  $x = $x + 1;
  $activate[$nr] = $inline[$x];
  $x = $x + 2;
  };

  $nummer = 0;
  $fejl = "okay";
  for($nummer = 0; $nummer <= $nr ;$nummer++)
  {
  $namer = explode(chr(9),$name[$nummer]);
  $passer = explode(chr(9),$pass[$nummer]);
  $enabler = explode(chr(9),$enabled[$nummer]);
  $banner = explode(chr(9),$banned[$nummer]);
  $staffer = explode(chr(9),$staffs[$nummer]);
  $emailer = explode(chr(9),$email[$nummer]);
  $emailviser = explode(chr(9),$emailvis[$nummer]);
  $newser = explode(chr(9),$news[$nummer]);
  $activater = explode(chr(9),$activate[$nummer]);
  if($first=="Thefirst")
  {
    $accounting .= "\n";
  };
  $enabling = trim($enabler[2]);
  if(strtolower(trim($emailer[2]))==strtolower(trim($emailaddress)))
  {
    if(strtolower(trim($activater[2]))==strtolower(trim($activation)))
    {
    $enabling = "1";
    }
    else
    {
    $fejl = "true";
    };
  }
  $accounting .= "Account
{
    Name    ".trim($namer[2])."
    Password    ".trim($passer[2])."
    Enabled    ".$enabling."
    Banned    ".trim($banner[2])."
    //Staffs    ".trim($staffer[2])."
    //E-mail    ".trim($emailer[2])."
    //E-mailvis    ".trim($emailviser[2])."
    //Newsletter    ".trim($newser[2])."
    //activation    ".trim($activater[2])."
}
    ";
  $first = "Thefirst";
  };

  if($fejl=="okay")
  {
  $filename = "http://geffenweb.dyndns.org/writeit/writeit.php4?mode=w&txt=".urlencode($accounting);
  $fd = fopen($filename, "r");
  fclose($fd);
  echo $accounting;
  }
  else
  {
  echo 'fejl';
  };
}
else
{
  echo 'unknown error';
};
?>
Avatar billede geffen Nybegynder
06. april 2002 - 14:44 #2
<?PHP
$filename = "../POL/data/account.txt

if($mode="w")
{
$fd = fopen($filename, "w");
fwrite($fd,"$txt");
fclose($fd);
}
elseif($mode="ww")
{
$fd = fopen($filename, "w+");
fwrite($fd,"$txt");
fclose($fd);
}

elseif($mode="r")
{
$fd = fopen($filename, "r");
fwrite($fd,"$txt");
fclose($fd);
}
elseif($mode="rr")
{
$fd = fopen($filename, "r+");
fwrite($fd,"$txt");
fclose($fd);
}

elseif($mode="a")
{
$fd = fopen($filename, "a");
fwrite($fd,"$txt");
fclose($fd);
}
elseif($mode="aa")
{
$fd = fopen($filename, "a+");
fwrite($fd,"$txt");
fclose($fd);
}
else
{
echo "dammit";
}
Avatar billede j0ker Nybegynder
06. april 2002 - 14:44 #3
Du kan ikke skrive til en anden server!!
Avatar billede geffen Nybegynder
06. april 2002 - 14:46 #4
Det udfør det hele uden errors, men det skriver ikke i account.txt
Avatar billede j0ker Nybegynder
06. april 2002 - 14:48 #5
Har du sat CHMOD til 777 på account.txt???


Men du kan stadig ikke skrive til en fil på en anden server...
Avatar billede geffen Nybegynder
06. april 2002 - 14:51 #6
jOker, hvis du læser mit script så ser du at det er en fil så samme server, som accout.txt som skiver i account.txt!
Avatar billede geffen Nybegynder
06. april 2002 - 14:53 #7
Men jeg tror mit problem er at writeit.php4 ikke bliver executed af $filename = "http://geffenweb.dyndns.org/writeit/writeit.php4?mode=w&txt=".urlencode($accounting);
  $fd = fopen($filename, "r");
  fclose($fd);
Avatar billede j0ker Nybegynder
06. april 2002 - 14:53 #8
Nååh, altså activate.php4 ligger på den anden server, hvor account.txt ligger??
Avatar billede jakoba Nybegynder
06. april 2002 - 14:54 #9
det gør han heller ikke. han aktiverer filen 'writeit.php' på den anden server med en get parameter; der er writeit.php på samme server som filen der prøver at skrive i den

$filename = "http://geffenweb.dyndns.org/writeit/writeit.php4?mode=w&txt=".urlencode($accounting);

mvh JakobA
Avatar billede geffen Nybegynder
06. april 2002 - 14:58 #10
jOker, er du nu med på hvad der foregår?
Avatar billede jakoba Nybegynder
06. april 2002 - 15:02 #11
du mangler "; forenden af linien

$filename = "../POL/data/account.txt";

foroven i writeit.php.
Avatar billede geffen Nybegynder
06. april 2002 - 15:10 #12
okay, nu sker det noget, der bliver tilføjet et tabulator i bunden af account.txt
Avatar billede geffen Nybegynder
06. april 2002 - 15:12 #13
og i de efter følgene forsøg til føjer den tomme accounts... :/
Avatar billede jakoba Nybegynder
06. april 2002 - 15:12 #14
men disse to kodestumper fatter jeg ikke:

elseif($mode="r")
{
    $fd = fopen($filename, "r");
    fwrite($fd,"$txt");
    fclose($fd);
}

og

elseif($mode="a")
{
$fd = fopen($filename, "a");
fwrite($fd,"$txt");
fclose($fd);
}

du kan ikke skrive til en fil der er åbnet i read-only mode.
Avatar billede geffen Nybegynder
06. april 2002 - 15:15 #15
ah.. jeg skal bare finde ud af hvorfor der kommer et extra tabulator til sidst i account.txt så skulle problemet være løst
Avatar billede geffen Nybegynder
06. april 2002 - 15:16 #16
Jakoba, jeg oprettede bare dem alle samme, så jeg have mulighed for at bruge dem, jeg tænkte ikke lige vidre over hvad de gjorde.
Avatar billede jakoba Nybegynder
06. april 2002 - 15:20 #17
der i den anden fil hvor du skriver
    echo $accounting;

bliver der udskrevet noget fornuftigt?

der hvor strengen sendes skriver du
    urlencode($accounting);
og det er korrekt og nødvendigt.
men efter at have modtaget den streng i $txt
glemmer du at skrive
    $txt = urldecode( $txt ); // slå op og check om den virkelig hedder sådan

mvh JakobA
Avatar billede geffen Nybegynder
06. april 2002 - 15:22 #18
rettelse det er ikke et tab, det er fire mellemrum.
Avatar billede geffen Nybegynder
06. april 2002 - 15:23 #19
Jakoba, jeg lod mig tideligere fortælle at det ikke skulle være nødvendigt, men jeg tror nu også det skal gøres..
Avatar billede geffen Nybegynder
06. april 2002 - 15:25 #20
men det var ikke gruden til min fire mystiske mellemrum
Avatar billede geffen Nybegynder
06. april 2002 - 15:36 #21
Jakoba, grunden til echo $accounting; var for at jeg kunne se om den fik lavet ændringen i filen.
Avatar billede jakoba Nybegynder
06. april 2002 - 15:48 #22
spørgsmålet var:
  Skriver den noget fornuftigt der? eller er det forkert ligesom hvad der bliver skrevet?
Avatar billede jakoba Nybegynder
06. april 2002 - 15:50 #23
her indsætter du 4 mellemrum allerbagerst i strengen $accounting.
}
    ";
Avatar billede geffen Nybegynder
06. april 2002 - 15:54 #24
Damm... jeg kan ikke mindes at have delt point ud, hvem fanden har fået dem???
Avatar billede geffen Nybegynder
06. april 2002 - 15:55 #25
SKOD, det kan kun være jOker..  jOker hvis du er en rigtig fair fætter, små må du meget gerne give dem til jakoba, da det er ham der har fortjent dem
Avatar billede jakoba Nybegynder
06. april 2002 - 16:00 #26
Grunden til at jeg ikke har lagt et svar er at jeg ikke vil have dem.
Jeg bryder mig heller ikke om den stalgs pointinflation.
Jeg er blot ikke så principfast som ej, så hvis jeg kan se en løsning skriver jeg den. blot ikke som svar.

mvh JakobA
Avatar billede geffen Nybegynder
06. april 2002 - 16:03 #27
okay, mange tak, jakoba, jeg bryder mig heller ikke om dem, men de skal jo bruges for at for at jeg kan få løst mine problemer :S
Avatar billede jakoba Nybegynder
06. april 2002 - 16:14 #28
"skal"?  ej ville gerne have kørt videre i forrige spørgsmål, eller svaret for 15 i et nyt.

mvh JakobA
Avatar billede geffen Nybegynder
06. april 2002 - 16:18 #29
nerver mind, mit script virker nu, og jeg er meget taknemmelig, hårber jeg kan hjælpe dig i fremtiden :)

MVH Geffen
Avatar billede geffen Nybegynder
06. april 2002 - 22:39 #30
Jakoba, jeg håber du stadig er her... jeg har et lille problem med dette script, det virker super i Ie, og højst sansynlivis også i de ny version af NS, men jeg har tilfældigvis lige en bekendt som bruger NS v. 4.7 og der melder den følgene fejl når der bliver klikket "add account":
Avatar billede geffen Nybegynder
06. april 2002 - 22:40 #31
the requested URL /new/ was not found on this server.
------------------------------------------------------
Apache/1.3.23 server at geffenweb.dk Port 80
Avatar billede geffen Nybegynder
06. april 2002 - 22:44 #32
its the following script that does this problem:
<?PHP
function sitehead()
{
  $head = 'ACCOUNT CREATOR';
  require('./menu.php4');
};
function sitetext()
{
  echo 'To create an account fill out all the info below, when that is done you will in a e-mail recive a password to <a href="activate.php4">enable</a> your account.';
};
function siteform()
{
  ?>
    <form method="post" enctype="multipart/form-data" action="<? echo $PHP_SELF ?>">
    <font face='GothicE' color='#909291' size='3'>Account name:</font><br>
    <input type="text" name="bruger" size="16" value="" maxlength="15"><br>
    <font face='GothicE' color='#909291' size='3'>Password and confirmation: </font><br>
    <input type="password" name="kodeord" value="" size="16" maxlength="14">
    <input type="password" name="kodeord2" value="" size="16" maxlength="14"><br>
    <font face='GothicE' color='#909291' size='3'>E-mail:</font><br>
    <input type="text" name="epost" value="" size="38"><br><br>
    <input checked type='checkbox' name='epostvis' value='1'>
    <font face='GothicE' color='#909291' size='3'>Allow others to see my e-mail when I post in the forum.</font><br><br>
    <input checked type='checkbox' name='nyhedsbrev' value='1'>
    <font face='GothicE' color='#909291' size='3'>I wish to receive the KotoC Newsletter.</font><br><br>
    <input type="submit" value="Add account" Class='Submitknap'>
  </form>
  <?
}
function sitefooter()
{
  require('./bottom.php4');
};



function user_account($username,$password,$enabled,$banned,$cmdlevel,$emailaddress,$emailvis,$newsletter)
{
  $accepted = false;
  $usraccept = null;
  $filename = "http://geffenweb.dyndns.org/blahblah/account.txt";
  $fd = @fopen("$filename", "r");
  if ($fd)
  {
  $inline = file($filename);
  $number_of_lines = count($inline);
  $nr = -1;
  for($x = 0; $x <= $number_of_lines ;$x++)
  {
    $nr++;
    $x = $x + 2;
    $name[$nr] = $inline[$x];
    $x = $x + 1;
    $pass[$nr] = $inline[$x];
    $x = $x + 1;
    $enable[$nr] = $inline[$x];
    $x = $x + 1;
    $banned[$nr] = $inline[$x];
    $x = $x + 1;
    $staffs[$nr] = $inline[$x];
    $x = $x + 1;
    $email[$nr] = $inline[$x];
    $x = $x + 1;
    $emailvis[$nr] = $inline[$x];
    $x = $x + 1;
    $news[$nr] = $inline[$x];
    $x = $x + 1;
    $activation[$nr] = $inline[$x];
    $x = $x + 2;
  };
  $mail = false;
  $accountname = false;
  $nummer = 0;
  for($nummer = 0; $nummer <= $nr ;$nummer++)
  {
    $emailer = explode(chr(9),$email[$nummer]);
    $usser = explode(chr(9),$name[$nummer]);

    if (strtolower(trim($usser[2]))==strtolower(trim($username)))
    {
    $accountname = true;
    }
    if (strtolower(trim($emailer[2]))==strtolower(trim($emailaddress)))
    {
    $mail = true;
    }
  }
  }

  if($mail==true)
  {
  sitehead();
  echo 'You already got an account';
  siteform();
  sitefooter();
  }
  elseif ($accountname==true)
  {
  sitehead();
  echo 'Account name is already in use, select another.';
  siteform();
  sitefooter();
  }
  else
  {
  $enabled = "0";
  $banned = "0";
  $cmdlevel = "0";
  if($emailvis!=="")
  {
    $emailvis = "0";
  };
  if($newsletter!=="")
  {
    $newsletter = "0";
  };
  $activation = RAND(111,999)*RAND(111,999)*RAND(111,999);
  $subject = "You KotoC account.";
  $message = '
              <html>
              <head>
                <title>You KotoC account</title>
              </head>
              <body>
                Greetings<br>
                <br>
                Thank you for joining the KotoC Shard, your account has been created and its now time to activate it.<br>
                Click here to activate your account: <a href="http://geffenweb.dyndns.org/myweb/New/activate.php4?activation='.$activation.'&emailaddress='.$emailaddress.'">Activate me</a><br>
                Your activation code is: '.$activation.'<br>
                <br>
                Best regards<br>
                KotoC<br>
                <a href="mailto:KotoCShard@Hotmail.com">KotoCShard@Hotmail.com</a><br>
                <a href="http://www.GeffenWeb.dk/kotoc/">http://www.geffenweb.dk/kotoc/</a>
                </body>
              </html>
              ';
  $headers  = "MIME-Version: 1.0\r\n";
  $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
  $headers .= "From: The KotoC Shard<KotoCShard@hotmail.com>\r\nReply-to: KotoCShard@hotmail.com\r\n";
  $headers .= "Error-to: KotoCShard@hotmail.com\r\n";

  if(mail("$emailaddress", "$subject", "$message", "$headers")==true)
  {

    $accounting = "
Account
{
    Name    ".$username."
    Password    ".$password."
    Enabled    ".$enabled."
    Banned    ".$banned."
    //Staffs    ".$cmdlevel."
    //E-mail    ".$emailaddress."
    //E-mailvis    ".$emailvis."
    //Newsletter    ".$newsletter."
    //Activation    ".$activation."
}
";


  $filename = "http://geffenweb.dyndns.org/blahblah/writeit.php4?mode=aa&txt=".urlencode($accounting);
  $fd = fopen($filename, "r");
  fclose($fd);

  sitehead();
  echo 'your account has been created, you will recieve a mail with the activation code...' . $mailtjek;
  sitefooter();
  }
  else
  {
  sitehead();
  echo 'There has ercurd an error trying to sent the e-mail, please type a valid e-mail address' . $mailtjek;
  sitefooter();
  };
  };
};

if ($bruger!=null)
{
  if ($kodeord!=null)
  {
  if ($kodeord == $kodeord2)
  {
    if ($epost!=null)
    {
    user_account($bruger,$kodeord,$aktiv,$bortvis,$cmd,$epost,$epostvis,$nyhedsbrev);
    }
    else
    {
    sitehead();
    echo 'You forgot to type a email.';
    siteform();
    sitefooter();
    };
  }
  else
  {
    sitehead();
    echo 'Your two passwords is not alike.';
    siteform();
    sitefooter();
  };
  }
  else
  {
  sitehead();
  echo 'You forgot to type your password.';
  siteform();
  sitefooter();
  };
}
else
{
  sitehead();
  sitetext();
  siteform();
  sitefooter();
};
?>
Avatar billede jakoba Nybegynder
06. april 2002 - 23:00 #33
IE (og NS6) lader som ingenting hvis du skriver en link kommando
  <link src="navn.css" type="text/css">
eller en script include
  <script src="navn.js" type='text/javascript'>

og den fil der skal inkluderes der så ikke kan findes på serveren.

men NS4.7 brokker sig og giver en fejlmelding som den du beskriver. Læs i asresselinien, der står hvilken fil det er den ikke kan finde.

mvh JakobA
Avatar billede geffen Nybegynder
06. april 2002 - 23:14 #34
Den kan ikke finde: http://geffenweb.dk/new/
Og det katalog ved med sikkerhed findes
men kan det være at den skal have www. med for at hitte ud af det?
Avatar billede jakoba Nybegynder
06. april 2002 - 23:45 #35
ja det kan meget vel være.
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