У меня проблема с PHP при попытке использовать fopen
для записи строк текста внутри textarea
в файл .txt
. Вот мой код, надеюсь, кто-то может помочь!
<?php
session_start();
if (!isset($_SESSION['username'])) {
$_SESSION['msg'] = "You must log in first";
header('location: login.php');
}
if (isset($_GET['logout'])) {
session_destroy();
unset($_SESSION['username']);
header("location: login.php");
}
$username = $_SESSION['username'];
$file = "extra/" . $username . ".png";
if (!file_exists($file)) $file = 'extra/defaultProfile.png';
function sendData($u) {
$myfile = fopen('bio/' . $username . '.txt', $u);
}
?>
<html>
<title> Home Page </title>
<link rel = "stylesheet" type = "text/css" href = "css/main.css">
<header>
<div class = "container">
<nav>
<ul>
<li><a href = "index.php">Home</a></li>
<li><a href = "downloads.php">Downloads</a></li>
<li><a href = "chat.php">Chat</a></li>
<li><a href = "profile.php">Profile</a></li>
<li class = "logout"><a href = "index.php?logout='1'">Logout</a></li>
</ul>
</nav>
</div>
</header>
<body>
<div class = "profileimg">
<img src=<?php echo $file; ?> width = "125" height = "125">
</div>
<div class = "profilename">
<p style = "position: absolute; top: 8px; left: 130px; color: white; font-size: 30px;"><?php echo $username ?></p>
</div>
<div class = "biotext">
<form action = "" method = "post">
<textarea name = "lines" width=25% height=9.5% background-color='white' style = "position: absolute; top: 75px; left: 132.5px;"></textarea>
<input type = "submit" name = "submit" value = "submit" formaction = "sendData()"/>
</form>
</div>
</body>
<footer>
<div class = "status">Currently logged in as <?php echo $username ?></div>
</footer>
</html>
Я перепробовал все, что могло появиться, но не могу найти правильного решения ... Я попытался создать и использовать функцию под названием sendData()
, но это тоже не сработало. Мы очень ценим любую помощь, которую может предоставить любой, спасибо!
formaction = "sendData()"
что это?
Я никогда не использовал атрибут formaction, но вы вызываете функцию sendData () без каких-либо параметров, также не следует ли вам использовать: $ myfile = fopen ('bio /'. $ Username. '.Txt', w), вместо $ myfile = fopen ('bio /'. $ username. '.txt', $ u) ??
вы можете сделать что-то вроде этого:
<?php
if (!empty($_POST))
{
$text_data = $_POST['text_data'];
$username = $_POST['username'];
fopen('bio/' . $username . '.txt', $text_data);
}
?>
<html>
<title> Home Page </title>
<link rel = "stylesheet" type = "text/css" href = "css/main.css">
<header>
<div class = "container">
<nav>
<ul>
<li><a href = "index.php">Home</a></li>
<li><a href = "downloads.php">Downloads</a></li>
<li><a href = "chat.php">Chat</a></li>
<li><a href = "profile.php">Profile</a></li>
<li class = "logout"><a href = "index.php?logout='1'">Logout</a></li>
</ul>
</nav>
</div>
</header>
<body>
<div class = "profileimg">
<img src=<?php echo $file; ?> width = "125" height = "125">
</div>
<div class = "profilename">
<p style = "position: absolute; top: 8px; left: 130px; color: white; font-size: 30px;"><?php echo $username ?></p>
</div>
<div class = "biotext">
<form action = "" method = "post">
<textarea name = "lines" width=25% height=9.5% background-color='white' style = "position: absolute; top: 75px; left: 132.5px;"></textarea>
<input type = "text" name = "text_data" value = "">
<input type = "hidden" name = "username" value = "<?php echo $username ?>">
<input type = "submit" name = "submit" value = "submit"/>
</form>
</div>
</body>
<footer>
<div class = "status">Currently logged in as <?php echo $username ?></div>
</footer>
</html>
Почему-то это не работает. Он не заменит никакой текст внутри файла ...
Посмотрите документацию: php.net/manual/de/function.fopen.php