Skocz do zawartości
  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

P0Y3B

Formularz nie zapisuje danych do pliku tekstowego

Promowane odpowiedzi

P0Y3B    158
	<?php 
$imie = trim($_POST['imie']); 
$email = trim($_POST['email']); 
$wiadomosc = trim($_POST['wiadomosc']); 
if(empty($imie) and empty($email) and empty($wiadomosc)) { 
echo '<form action="" method="post" class="form-horizontal"> 
	<div class="form-group">
		<label class="col-sm-2 control-label" name="imie">Imię</label>
			<div class="col-sm-10">
				<input type="text" class="form-control" id="inputEmail3" placeholder="Jak się nazywasz">
			</div>
  </div>
	<div class="form-group">
		<label class="col-sm-2 control-label" name="email">Email</label>
			<div class="col-sm-10">
				<input type="email" class="form-control" id="inputEmail3" placeholder="Podaj adres email">
			</div>
  </div>
  <div class="form-group">
		<label class="col-sm-2 control-label" name="wiadomosc">Wiadomość</label>	
			<div class="col-sm-10">
				<textarea class="form-control" rows="4" placeholder="Treść wiadomości"></textarea>
			</div>
  </div>
  <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Zamknij</button>
        <input type="submit" class="btn btn-primary" value="Wyślij" />
      </div>
</form>'; 
} 
else { 
    $dane = $imie."`".$email."`".$wiadomosc."\n"; 
    $file = "zapisanedane.txt"; 
    $fp = fopen($file, "a"); 
    flock($fp, 2); 
    fwrite($fp, $dane); 
    flock($fp, 3); 
    fclose($fp); 
} 
?>

Dlaczego taki kod nie zapisuje danych? (Plik ma CHMOD 666)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
P0Y3B    158
25 minut temu, Salva napisał:

Jakiś błąd jest wyrzucany?

Nie

 

25 minut temu, Salva napisał:

Odpierasz w ogóle dane z POST?

Nie rozumiem

26 minut temu, Salva napisał:

Jaką masz strukturę katalogów?

All w /public_html 

 

Robilem to jak tu

A demo tu

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
BlackIce    3,484

Literówka :D już poprawiłem na 'odbierasz'. Zanim zabierzesz się za dalszą część (zapis do pliku) najpierw powinieneś sprawdzić czy w ogóle otrzymujesz dane z formularza.

<?php
$pole1 = trim($_POST['pole1']); 
$pole2 = trim($_POST['pole2']); 
if(empty($pole1) and empty($pole2)) :
?>
	<form action="" method="post"> 
		<input type="text" name="pole1" style="width: 200px;" /><br /> 
		<textarea name="pole2" style="width: 200px; height: 100px;"></textarea><br /> 
		<input type="submit" value="Zapisz" /> 
	</form>
<?php
endif;
echo $pole1 .' '. $pole2;

 

  • Wrr 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
P0Y3B    158
Godzinę temu, Salva napisał:

najpierw powinieneś sprawdzić czy w ogóle otrzymujesz dane z formularza.

    <?php 
            
            if (isset($_POST["submit"])) {
$imie = trim($_POST['imie']); 
$email = trim($_POST['email']); 
$wiadomosc = trim($_POST['wiadomosc']); 
     
     
    $dane = $imie."`".$email."`".$wiadomosc."\n"; 
    $file = "zapisanedane.txt"; 
    $fp = fopen($file, "a"); 
    flock($fp, 2); 
    fwrite($fp, $dane); 
    flock($fp, 3); 
    fclose($fp); 
} 
?>
        

 

Samo if (isset($_POST["submit"])) { wystarczy Mi chwilowo ?

Edytowane przez P0Y3B

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
P0Y3B    158

Wyrzuciłem formularz php na zewnątrz form



<!DOCTYPE html> <html lang="pl" dir="ltr"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="css/bootstrap.min.css"> <link rel="stylesheet" href="css/custom.min.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script> <title>p0y3b - Trzykrotny medalista wszystkiego</title> </head> <body> <main class="main"> <div class="container"> <div class="row text-center"> <div class="col-md-12"> <span class="avatar"> <img src="img/avatar.png" alt=""> </span> <h1 class="brand">P0Y3B</h1> <h2 class="desc">Trzykrotny medalista wszystkiego</h2> <ul class="social-icons"> <li> <a href="#" class="tooltip-bottom" data-toggle="modal" data-target="#myModal" data-tooltip="Wyślij wiadomość"><i class="fa fa-envelope"></i></a> </li> <li> <a href="gg:48219911" class="tooltip-bottom" data-tooltip="GG:48219911" > <img src="http://www.gadu-gadu.pl/users/status.asp?id=48219911" border="0" alt="GG: 48219911" /></a> </li> <li> <a href="http://steamcommunity.com/id/anubisek" target="_blank" class="tooltip-bottom" data-tooltip="Anubisek" ><i class="fa fa-steam"></i></a> </li> <li> <a href="#" class="tooltip-bottom" data-tooltip="Odwiedź mój sklep"><i class="fa fa-shopping-basket"></i></a> </li> </ul> </div> </div> </div> </main> <!-- Modal --> <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Zamknij</span></button> <h4 class="modal-title" id="myModalLabel"><div style="text-align: center;">Skontaktuj się zemną używając poniższego formularza</div></h4> </div> <div class="modal-body"> <p> <form action="" method="post" class="form-horizontal"> <div class="form-group"> <label class="col-sm-2 control-label" name="imie">Imię</label> <div class="col-sm-10"> <input type="text" class="form-control" id="inputEmail3" placeholder="Jak się nazywasz"> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label" name="email">Email</label> <div class="col-sm-10"> <input type="email" class="form-control" id="inputEmail3" placeholder="Podaj adres email"> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label" name="wiadomosc">Wiadomość</label> <div class="col-sm-10"> <textarea class="form-control" rows="4" placeholder="Treść wiadomości"></textarea> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Zamknij</button> <input type="submit" class="btn btn-primary" value="Wyślij" /> </div> </form> </p> </div> </div> </div> </div> <?php if (isset($_POST["submit"])) { $imie = trim($_POST['imie']); $email = trim($_POST['email']); $wiadomosc = trim($_POST['wiadomosc']); $dane = $imie."`".$email."`".$wiadomosc."\n"; $file = "zapisanedane.txt"; $fp = fopen($file, "a"); flock($fp, 2); fwrite($fp, $dane); flock($fp, 3); fclose($fp); } ?> <div id="particles-js"></div> <script src="js/particles.min.js"></script> <script src="js/custom.min.js"></script> <!-- start gg-widget-html - Copyright Xevin Consulting Limited --> <a href="//widget.gg.pl/widget/63911b9a6a29c06119be0b8e3895c5de67d3e9bead1aee74fb00b392b2260158#uin%3D48219911%7Cmsg_online%3DWitam%2C%20w%20czym%20mog%C4%99%20pom%C3%B3c%3F%7Cmsg_offline%3DAktualnie%20nie%20ma%20mnie%20przy%20komputerze.%20Zostaw%20wiadomo%C5%9B%C4%87%20oraz%20kontakt%20a%20odezw%C4%99%20si%C4%99%20do%20Ciebie.%20Pozdrawiam%21%7Chash%3D63911b9a6a29c06119be0b8e3895c5de67d3e9bead1aee74fb00b392b2260158" style="background: linear-gradient(#212121 0%, #010101 100%); color: #fff; font-family: Arial, sans-serif; font-size: 14px; font-weight:normal; text-decoration: none; text-align: left; box-shadow: 0px 2px 8px 0px rgba(50, 50, 50, 0.6); -webkit-box-shadow: 0px 2px 8px 0px rgba(50, 50, 50, 0.6); -moz-box-shadow: 0px 2px 8px 0px rgba(50, 50, 50, 0.6); border-radius: 2px; -webkit-border-radius: 2px; display:block; padding: 2px; width:300px;" rel="nofollow" data-gg-widget="snapped-bottom" target="_blank"> <span style="display: block; padding:10px 8px; line-height:18px"> <img alt="" style="float:left;padding-right:8px" src="https://status.gadu-gadu.pl/users/status.asp?id=48219911&amp;styl=1&amp;source=widget"/>Skontaktuj się zemną on-line</span> <span style="background: #000; color: #888; display: block; line-height: 40px; padding-left: 12px; box-shadow: 0px 1px 1px 0px #bbb inset; -webkit-box-shadow: 0px 1px 1px 0px #bbb inset; -moz-box-shadow: 0px 1px 1px 0px #bbb inset;">Napisz do nas... <span style="background: #66c321; background: -webkit-linear-gradient(#66c321 0%, #4ba508 100%); background: -o-linear-gradient(#66c321 0%, #4ba508 100%); background: -moz-linear-gradient(#66c321 0%, #4ba508 100%); background: linear-gradient(#66c321 0%, #4ca70a 100%); border-radius: 3px; border-top: 1px solid #86e923; border-bottom: 1px solid #397b08; -webkit-border-radius: 3px; color: #fff; display:block; float:right; font-size: 12px; line-height: 22px; margin:9px; padding: 0 10px; text-align: center;">Wy&sacute;lij</span> </span> </a><!-- Chcesz mieć GG widget na swojej stronie? Sprawdź http://www.gg.pl/info/komunikator-na-twoja-strone/ --> <!-- end gg-widget-html --> <!-- start gg-widget-javascript - kod javascript możesz umieścić przed końcowym znacznikiem body - Copyright Xevin Consulting Limited --> <script type="text/javascript"> (function() { var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.id = 'gg-widget-script'; s.src = '//widget.gg.pl/resources/js/widget.js'; var ss = document.getElementsByTagName('script')[0]; ss.parentNode.insertBefore(s, ss); })(); </script> <!-- end gg-widget-javascript --> </body> </html>

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
P0Y3B    158

@Salva Wytłumacz Mi tylko jedno (usunąłem sprawdzanie)

<?php 
$imie = $_POST['imie']; 
$dane =xxx; 
// przypisanie zmniennej $file nazwy pliku 
$file = "baza.txt"; 
// uchwyt pliku, otwarcie do dopisania 
$fp = fopen($file, "a"); 
// blokada pliku do zapisu 
flock($fp, 2); 
// zapisanie danych do pliku 
fwrite($fp, $dane); 
// odblokowanie pliku 
flock($fp, 3); 
// zamknięcie pliku 
fclose($fp); 
?>

 

Jak zamiast xxx wstawie $imie to nie zapisze pliku, lecz gdy pozostawię sam tekst w miejscu xxx to poprawnie sie zapisuje

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
P0Y3B    158

Lecz gdy chcę dodać 

if (isset($_POST["submit"])) {

To musze kod php oddzielić i wtedy nic nie przesyła

Doszedłem do takiego rozwiązania:

<?php 
$imie = trim($_POST['imie']); 
$email = trim($_POST['email']); 
$wiadomosc = trim($_POST['wiadomosc']);
if(empty($imie) and empty($wiadomosc)) { 
echo '<form action="" method="post" class="form-horizontal"> 
	<div class="form-group">
		<label class="col-sm-2 control-label">Imię</label>
			<div class="col-sm-10">
				<input type="text" class="form-control" name="imie" placeholder="Jak się nazywasz">
			</div>
  </div>
	<div class="form-group">
		<label class="col-sm-2 control-label">Email</label>
			<div class="col-sm-10">
				<input type="email" class="form-control" name="email" placeholder="Podaj adres email">
			</div>
  </div>
    <div class="form-group">
		<label class="col-sm-2 control-label">Wiadomość</label>	
			<div class="col-sm-10">
				<textarea class="form-control" rows="4" name="wiadomosc" placeholder="Treść wiadomości"></textarea>
			</div>
  </div>
  <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Zamknij</button>
        <input type="submit" class="btn btn-primary" value="Wyślij" />
      </div>
</form>'; 
} 
else { 
    // dane pochodzące z formularza 
    $dane = $imie."|".$email."|".$wiadomosc."\n"; 
    // przypisanie zmniennej $file nazwy pliku 
    $file = "baza.txt"; 
    // uchwyt pliku, otwarcie do dopisania 
    $fp = fopen($file, "a"); 
    // blokada pliku do zapisu 
    flock($fp, 2); 
    // zapisanie danych do pliku 
    fwrite($fp, $dane); 
    // odblokowanie pliku 
    flock($fp, 3); 
    // zamknięcie pliku 
    fclose($fp); 
    echo "Dane zostały zapisane!<br />"; 
    echo "<a href=\"podglad.php\">Zobacz wpisane dane</a>"; 
} 
?>

 

Jak to zabezpieczyć poprawnie ifem ?

Edytowane przez P0Y3B

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
BlackIce    3,484

Rozwiązanie na szybko:

<?php
function clean_data($data) {
  return htmlspecialchars(trim($data));
}
if(empty($_POST)) {
  // wyświetl formularz
}
else {
  $data = [];
  $data[] = clean_data($_POST['imie']);
  $data[] = clean_data($_POST['email']);
  $data[] = clean_data($_POST['wiadomosc']);
  /* czyszczenie tablicy */
  $_POST = [];
  /* sprawdzenie otrzymanych danych */
  //var_dump($data);
  //die();
  /* - - - */
  /* dane do zapisania: imie|mail|wiadomosc */
  $save_data = implode('|', $data) . "\r\n";
}

Teraz wystarczy, że sobie zapiszesz zmienną $save_data do pliku.

  • Wrr 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
P0Y3B    158

@Salva Nie podstawie tego, zostanę przy swoim rozwiązaniu. Zapytam tylko, jak wyświetlić werdykt echo po za oknem modalnym (na stronie głównej)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony.


×