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

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

adam2350

[Nieaktualny] Problem z dodawaniem newsów. [Nieaktualny]

Promowane odpowiedzi

adam2350    11

Siemka.

Mam problem z dodawaniem newsów. Po dodaniu <?php echo $_SESSION['logowanie']; ?> oraz disabled="" blokuje się możliwości dodawania tzn. nie mogę dodać niby formularz się wysyła ale nie pojawia się komunikat o poprawnym dodaniu bez tego wszystko jest dobrze a chciałbym żeby to było. Jak mogę dodać automatyczną datę?

<?php
session_start();
if (!isset($_SESSION['logowanie'])) { //sprawdzamy czy jestesmy zalogowani
    include('index.php');
    exit();
}
$tytul = $_POST['tytul'];
$nick  = $_POST['nick'];
$tresc = $_POST['tresc'];
$data  = $_POST['data'];
require '../inc/polaczenie.php';
if ($tytul and $nick and $nick and $tresc and $data) {
    $dodaj = mysqli_query($polaczenie, "INSERT INTO `news` SET tytul='$tytul', nick='$nick', tresc='$tresc', data='$data'");
    if ($dodaj)
        echo "<div class='alert alert-dismissible alert-success'>
  <strong><i class='fa fa-desktop'></i> Dodano!</strong> News został poprawnie dodany do bazy.</div>";
    else
        echo '<div class="alert alert-dismissible alert-danger">
  <strong><i class="fa fa-exclamation-triangle"></i> O Nie !</strong> Niestety nie mogliśmy dodać twojego newsa do bazy.</div>';
}
?>
<form action="index2.php" method="post"  class="form-horizontal" require>
						<div class="form-group">
							<label for="inputEmail" class="col-lg-2 control-label">Tytuł</label>
							<div class="col-lg-10">
								<input type="text" class="form-control"  name="tytul" placeholder="Proszę podać Tytuł." required />
							</div>
						</div>
						<div class="form-group">
							<label for="inputEmail" class="col-lg-2 control-label">Nick:</label>
							<div class="col-lg-10">
								<input type="text" class="form-control" name="nick"  placeholder="<?php echo $_SESSION['logowanie']; ?>" disabled="" />
							</div>
						</div>
						<div class="form-group">
							<label for="textArea" class="col-lg-2 control-label">Treść</label>
							<div class="col-lg-10">
								<textarea class="form-control" rows="3" name="tresc" /></textarea>
							</div>
						</div>
						<div class="form-group">
							<label for="inputEmail" class="col-lg-2 control-label">Data:</label>
							<div class="col-lg-10">
								<input type="date" class="form-control" name="data" required />
							</div>
						</div>
						<div class="form-group">
							<div class="col-lg-10 col-lg-offset-2">
								<button type="reset" class="btn btn-primary">Wyczyść</button>
								<input type="submit"  class="btn btn-success" value="Dodaj !" />
							</div>
						</div>
					</form><br> <h4 class="text-center">Aktuane newsy na stronie</h4><br>		
					<table class="table table-striped table-hover ">

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
pBartnik    426
if (!isset($_SESSION['logowanie'])) { //sprawdzamy czy jestesmy zalogowani
    include('index.php');
    exit();
}

A po co dodawać jeszcze jedno sprawdzenie?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
pBartnik    426

Diasbled to ma takie zadanie aby zablokowało input więc również nie wiem:

 

19 minut temu, adam2350 napisał:

Po dodaniu <?php echo $_SESSION['logowanie']; ?> oraz disabled=""

 

Demo:

https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_input_disabled

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
pBartnik    426

A mamy funkcje do pobierania informacji o użytkowniku?

np:

$userdata = userdata(); // proba pobrania informacji o użytkowniku

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Szczwany Lis    37

Jak nie wysyła z readonly to chyba masz gdzieś indziej błąd, ponieważ:

Cytuj

A readonly element is just not editable, but gets sent when the according form submits. a disabled element isn't editable and isn't sent on submit.

stackoverflow.com

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Szczwany Lis    37

Wydaje mi się że znalazłem błąd.

Z
<input type="text" class="form-control" name="nick"  placeholder="<?php echo $_SESSION['logowanie']; ?>" disabled="" />
Na
<input type="text" class="form-control" name="nick"  value="<?php echo $_SESSION['logowanie']; ?>" readonly="" />

 

Edytowane przez Szczwany Lis

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
pBartnik    426

Nie wiem czy to będzie działać bo w twojej sesji sprawdza czy użytkownik jest zalogowany to można by było napisać kilka linijek następnej zmiennej z nickiem aby pobierało i tyle.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
arces    85
2 godziny temu, Szczwany Lis napisał:

Wydaje mi się że znalazłem błąd.

Z
<input type="text" class="form-control" name="nick"  placeholder="<?php echo $_SESSION['logowanie']; ?>" disabled="" />
Na
<input type="text" class="form-control" name="nick"  value="<?php echo $_SESSION['logowanie']; ?>" readonly="" />

 

 

Tak jak kolega podał powinno być na 100%. Jeżeli to dalej nie działa, to znaczy że masz błąd w innym miejscu (insert'cie/update'cie do bazy danych).

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
adam2350    11

@arces

 

  • Nic więcej nie mam do tego tylko to nie powinno być takiego błędu bo wcześniej jakieś 3 mieś temu działało a przez ten czas nic nie ruszałem. Tam 2 razy jest o sesji bo to są 2 różne pliki.

 

Spoiler
<?php
session_start();
if (!isset($_SESSION['logowanie'])) { //sprawdzamy czy jestesmy zalogowani
    include('index.php');
    exit();
}
$tytul = $_POST['tytul'];
$nick  = $_POST['nick'];
$tresc = $_POST['tresc'];
$data  = $_POST['data'];
require '../inc/polaczenie.php';
if ($tytul and $nick and $nick and $tresc and $data) {
    $dodaj = mysqli_query($polaczenie, "INSERT INTO `news` SET tytul='$tytul', nick='$nick', tresc='$tresc', data='$data'");
    if ($dodaj)
        echo "<div class='alert alert-dismissible alert-success'>
  <strong><i class='fa fa-desktop'></i> Dodano!</strong> News został poprawnie dodany do bazy.</div>";
    else
        echo '<div class="alert alert-dismissible alert-danger">
  <strong><i class="fa fa-exclamation-triangle"></i> O Nie !</strong> Niestety nie mogliśmy dodać twojego newsa do bazy.</div>';
}
        $miesiac = date("m");
       $czas = date("d.$miesiac.Y");
       switch ($miesiac) { 
         case '01': $miesiac = 'stycznia'; break; 
         case '02': $miesiac = 'lutego'; break; 
         case '03': $miesiac = 'marca'; break; 
         case '04': $miesiac = 'kwietnia'; break; 
         case '05': $miesiac = 'maja'; break; 
         case '06': $miesiac = 'czerwca'; break; 
         case '07': $miesiac = 'lipca'; break; 
         case '08': $miesiac = 'sierpnia'; break; 
         case '09': $miesiac = 'września'; break; 
         case '10': $miesiac = 'października'; break; 
         case '11': $miesiac = 'listopada'; break; 
         case '12': $miesiac = 'grudnia'; break; 
         default: $miesiac = ' '; break; 
       } 
?>
<form action="index2.php" method="post"  class="form-horizontal">
						<div class="form-group">
							<label for="inputEmail" class="col-lg-2 control-label">Tytuł</label>
							<div class="col-lg-10">
								<input type="text" class="form-control"  name="tytul" placeholder="Proszę podać Tytuł." required />
							</div>
						</div>
						<div class="form-group">
							<label for="inputEmail" class="col-lg-2 control-label">Nick:</label>
							<div class="col-lg-10">
								<input type="text" class="form-control" name="nick"  placeholder="<?php echo $_SESSION['logowanie']; ?>" readonly=""/>
							</div>
						</div>
						<div class="form-group">
							<label for="textArea" class="col-lg-2 control-label">Treść</label>
							<div class="col-lg-10">
								<textarea class="form-control" rows="3" name="tresc" ></textarea>
							</div>
						</div>
						<div class="form-group">
							<label for="inputEmail" class="col-lg-2 control-label">Data:</label>
							<div class="col-lg-10">
								<input type="text" class="form-control" name="data"  placeholder="<?php echo $czas; ?>" readonly=""/>
							</div>
						</div>
						<div class="form-group">
							<div class="col-lg-10 col-lg-offset-2">
								<button type="reset" class="btn btn-primary">Wyczyść</button>
								<input type="submit"  class="btn btn-success" value="Dodaj !" />
							</div>
						</div>
					</form><br> <h4 class="text-center">Aktuane newsy na stronie</h4><br>		
					<table class="table table-striped table-hover ">
  <thead>
    <tr>
      <th>#</th>
      <th>Autor</th>
      <th>Data</th>
      <th>Treść</th>
      <th>Akcje</th>
      <th>D. Masowe</th>
    </tr>
  </thead>
  <tbody>
    <?php
session_start();
if(!isset($_SESSION['logowanie']))
{ //sprawdzamy czy jestesmy zalogowani
include('index.php');
exit();
}
require('../inc/polaczenie.php');
$pytanie = mysqli_query($polaczenie, "SELECT * FROM `news` ORDER BY nr DESC"); 
if(mysqli_num_rows($pytanie) > 0) {  
    while($pytanie && $baza= mysqli_fetch_assoc($pytanie)) { 
echo "<tr>"; 
        echo "<td>".$baza['nr']."   </td>   "; 
        echo "<td>".$baza['nick']."</td>"; 
        echo "<td>".$baza['data']."</td>";
        echo "<td><button class='btn btn-success btn-sm' data-toggle='modal' data-target='#myModal'>
  Treść
</button></td>"; 
        echo "<td> <a href =\"edytuj.php?a=edit&amp;nr={$baza['nr']}\" class='btn btn-primary btn-sm'>Edytuj</a> 
		<a href=\"index2.php?a=del&amp;nr={$baza['nr']}\" class='btn btn-danger btn-sm'>Usuń </a></td>        
        <td><div class='checkbox'>
          <label>
            <input type='checkbox'>  Usuń
          </label>
        </div></td></tr>
<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'>".$baza['tytul']."</h4>
      </div>
      <div class='modal-body'>"
        .$baza['tresc']."</div>
      <div class='modal-footer'>
        <button type='button' class='btn btn-default' data-dismiss='modal'>Zamknij</button>
        <button type='button' class='btn btn-primary'>Zapisz zmiany</button>
      </div>
    </div>
  </div>
</div>";
    } 
}
$a = trim($_GET['a']); 
$nr = trim($_GET['nr']); 
if($a == 'del' and !empty($nr)) { 
    $zapwys = "DELETE FROM news WHERE nr='$nr'";
	$pok = mysqli_query($polaczenie, $zapwys); 
    echo "<div class='alert alert-dismissible alert-success'>
  <strong>Usunięto</strong> Pomyślnie usunięto wpis z bazy o Numerze {$nr}. <i class='fa fa-trash pull-right'></i>
</div>"; 
} 
?>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><a href="#" class='btn btn-danger btn-sm'>Usuń Masowo.</a></td>
</tr>
</tbody>
</table>
    

 

 

Edytowane przez adam2350

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
arces    85

Nie widziałem wcześniej INSERTA, ale wygląda dobrze. Jeżeli pole nie ma readonly i disabled to normalnie dodaje newsa?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
arces    85

@adam2350 To może po prostu idąc na łatwiznę.

Jeden input z disabled, który jest widoczny normalnie, tylko zmień tam name na jakiś inny niż nick.

A pod spodem zrób sobie drugiego inputa, gdzie dasz type="hidden" i ten będzie miał name="nick".

 

Pierwszy będzie widoczny i zablokowany, drugi ukryty, który tak naprawdę będzie przesyłany do bazy danych.

 

Dziwne, że przesyła z placeholderem, bo powinno z value.

  • Lubię to! 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
adam2350    11

@arces Tak?

<div class="form-group">
							<label for="inputEmail" class="col-lg-2 control-label">Nick:</label>
							<div class="col-lg-10">
								<input type="text" class="form-control" name="ukryty"  placeholder="<?php echo $_SESSION['logowanie']; ?>" disabled=""/>
                                <input type="hidden" class="form-control" name="nick"  placeholder="<?php echo $_SESSION['logowanie']; ?>" />
							</div>
						</div>
						<div class="form-group">
							<label for="textArea" class="col-lg-2 control-label">Treść</label>
							<div class="col-lg-10">
								<textarea class="form-control" rows="3" name="tresc" ></textarea>
							</div>
						</div>
						<div class="form-group">
							<label for="inputEmail" class="col-lg-2 control-label">Data:</label>
							<div class="col-lg-10">
								<input type="text" class="form-control" name="zwei"  placeholder="<?php echo $czas; ?>" disabled="" />
                               <input type="hidden" class="form-control" name="data"  placeholder="<?php echo $czas; ?>" /> 
							</div>

 

Edytowane przez adam2350
Teraz Działa jak zmieniłem na value

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
adam2350    11

@arces Jeszcze jak mam usuwanie danych z bazy to jak kliknę usuń to wykonuje się polecenie ale jeżeli się wykona to nadal jest widoczny ten rekord W SKRYPCIE ale w bazie już nie. Czy można to jakoś zmienić? 

Czy można usunąć tekst "This domain is not registered with TinyMCE Cloud. Get a free API key to disable this message." bez konieczności rejestracji domeny z tego edytora?

 

$a = trim($_GET['a']); 
$nr = trim($_GET['nr']); 
if($a == 'del' and !empty($nr)) { 
    $zapwys = "DELETE FROM news WHERE nr='$nr'";
	$pok = mysqli_query($polaczenie, $zapwys); 
    echo "<div class='alert alert-dismissible alert-success'>
  <strong>Usunięto</strong> Pomyślnie usunięto wpis z bazy o Numerze {$nr}. <i class='fa fa-trash pull-right'></i>
</div>"; 
}

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
arces    85

@adam2350

Co do pierwszego pytania, to pewnie byś musiał przebudować skrypt, żeby listę wczytywał AJAXowo, ew. po usunięciu możesz wymusić przeładowanie strony.

 

Co do drugiego pytania się nie orientuję, ale jak jest za free, to co za problem sobie to zrobić :)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×