Gzie jest błąd składniowy?

Gzie jest błąd składniowy?
Kar Jsf
  • Rejestracja:około 7 lat
  • Ostatnio:około 4 lata
  • Lokalizacja:POLSKA
  • Postów:31
0

mam taką funkcję w php

Kopiuj
  $result = $dbh->exec('INSERT INTO ksiazka (numer_ksiazki, tytul_ksiazki, id_autor_1, id_autor_2, id_autor_3, id_autor_4, wydawnictwo_ksiazki, rok_wydania_ksiazki, opis_ksiazki, gatunek_ksiazki, wypozyczalna ) VALUES ( "'.$_GET['nr'].'" "'.$_GET['login'].'", "'.$_GET['a1'].'", "'.$_GET['a2'].'", "'.$_GET['a3'].'", "'.$_GET['a4'].'", "'.$_GET['wydawnictwo'].'", "'.$_GET['rok'].'", "'.$_GET['uwagi'].'", "'.$_GET['gatunek'].'", "'.$_GET['wypozyczalna'].')');

I mam taki komunikat

Kopiuj
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '"1)' at line 1 in C:\xampp\htdocs\bib\a.php:28 Stack trace: #0 C:\xampp\htdocs\bib\a.php(28): PDO->exec('INSERT INTO ksi...') #1 {main} thrown in C:\xampp\htdocs\bib\a.php on line 28

Kodowanie Dla Każdego #koding.for.all
pol90
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 3 lata
  • Postów:1181
0
Kopiuj
$_GET['nr'].'" "'.$_GET['login'].'"

Tutaj brakuje ci przecinka.

Kar Jsf
  • Rejestracja:około 7 lat
  • Ostatnio:około 4 lata
  • Lokalizacja:POLSKA
  • Postów:31
0

nadal taki komunikat
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '"1)' at line 1 in C:\xampp\htdocs\bib\a.php:28 Stack trace: #0 C:\xampp\htdocs\bib\a.php(28): PDO->exec('INSERT INTO ksi...') #1 {main} thrown in C:\xampp\htdocs\bib\a.php on line 28

kod po poprawie
$result = $db->exec('INSERT INTO ksiazka (numer_ksiazki, tytul_ksiazki, id_autor_1, id_autor_2, id_autor_3, id_autor_4, wydawnictwo_ksiazki, rok_wydania_ksiazki, opis_ksiazki, gatunek_ksiazki, wypozyczalna ) VALUES ( "'.$_GET['nr'].'", "'.$_GET['tytul'].'", "'.$_GET['a1'].'", "'.$_GET['a2'].'", "'.$_GET['a3'].'", "'.$_GET['a4'].'", "'.$_GET['wydawnictwo'].'", "'.$_GET['rok'].'", "'.$_GET['uwagi'].'", "'.$_GET['gatunek'].'", "'.$_GET['wypozyczalna'].')');


Kodowanie Dla Każdego #koding.for.all
axelbest
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 20 godzin
  • Lokalizacja:Warszawa
  • Postów:2251
1

Wrzuć ten kod w normalne IDE i od razu będziesz widział co jest nie tak . Poza tym naucz się być skrupulatnym i jak otwierasz cudzysłów/apostrof/nawias to od razu go domykaj i dopiero wtedy pakuj swoje treści do środka

Kar Jsf
  • Rejestracja:około 7 lat
  • Ostatnio:około 4 lata
  • Lokalizacja:POLSKA
  • Postów:31
0

?? IDE ??


Kodowanie Dla Każdego #koding.for.all
PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 2 godziny
  • Postów:3866
0

Czego tu brakuje?

, "'.$_GET['wypozyczalna'].')'

IDE https://pl.wikipedia.org/wiki/Zintegrowane_środowisko_programistyczne

Kar Jsf
po apostrofie musi być nawias
Marcin.Miga
  • Rejestracja:prawie 17 lat
  • Ostatnio:3 dni
  • Postów:2792
2

GETem SQL składasz? Odważnyś...
A brakuje ci apostrofu po ostatnim polu.
Pytanie za 100 pkt. Co zrobisz jak będziesz mieć 5 autorów?

Kar Jsf
  • Rejestracja:około 7 lat
  • Ostatnio:około 4 lata
  • Lokalizacja:POLSKA
  • Postów:31
0

mam zrobić program gdzie będą tylko max. 4 autorów reszta w uwagach/opis i z apostofami jest dobrze na końcu


Kodowanie Dla Każdego #koding.for.all
TR
  • Rejestracja:ponad 7 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:700m n.p.m.
  • Postów:677
0

Opad rąk.....

Twój kod jest podatny na atak typu SQL Injection:

https://pl.wikipedia.org/wiki/SQL_injection

Generalnie to poczytaj o bezpieczeństwie, zanim zrobisz sobie krzywdę, to jak poznanie podstaw BHP.


DRY > SOLID (nie bierz tego zbyt poważnie)
edytowany 1x, ostatnio: TomRZ
Kar Jsf
  • Rejestracja:około 7 lat
  • Ostatnio:około 4 lata
  • Lokalizacja:POLSKA
  • Postów:31
0

o to się nie martw tam jest ten kod filtrowany wcześniej kilka razy


Kodowanie Dla Każdego #koding.for.all
TR
  • Rejestracja:ponad 7 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:700m n.p.m.
  • Postów:677
0

Ja się nie martwię, to Ty powinieneś się martwić :)


DRY > SOLID (nie bierz tego zbyt poważnie)
Kar Jsf
  • Rejestracja:około 7 lat
  • Ostatnio:około 4 lata
  • Lokalizacja:POLSKA
  • Postów:31
0

on jest zabezpieczony tylko nie wiem gdzie w kodzie jest błąd
$result = $db->exec('INSERT INTO ksiazka (numer_ksiazki, tytul_ksiazki, id_autor_1, id_autor_2, id_autor_3, id_autor_4, wydawnictwo_ksiazki, rok_wydania_ksiazki, opis_ksiazki, gatunek_ksiazki, wypozyczalna ) VALUES ( "'.$_GET['nr'].'", "'.$_GET['tytul'].'", "'.$_GET['a1'].'", "'.$_GET['a2'].'", "'.$_GET['a3'].'", "'.$_GET['a4'].'", "'.$_GET['wydawnictwo'].'", "'.$_GET['rok'].'", "'.$_GET['uwagi'].'", "'.$_GET['gatunek'].'", "'.$_GET['wypozyczalna'].')');


Kodowanie Dla Każdego #koding.for.all
Marcin.Miga
Dwie osoby ci napisały gdzie jest błąd
Kar Jsf
tylko nie ogarniam o co wam chodzi
Marcin.Miga
Zrób echo zapytania i wklej do phpMyAdmin
PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 2 godziny
  • Postów:3866
4

Patrz, używasz PDO i go nie wykorzystujesz, masz ewidentnie problem z klejeniem stringów w poprawne zapytanie, ale warto użyc prepare, choćby dla przejrzystości zapisów skoro SQLi się nie przejmujesz:

Kopiuj
$sql = "INSERT INTO ksiazka (numer_ksiazki, tytul_ksiazki, id_autor_1, id_autor_2, id_autor_3, id_autor_4, wydawnictwo_ksiazki, rok_wydania_ksiazki, opis_ksiazki, gatunek_ksiazki, wypozyczalna) 
VALUES (:numer_ksiazki, :tytul_ksiazki, :id_autor_1, :id_autor_2, :id_autor_3, :id_autor_4, :wydawnictwo_ksiazki, :rok_wydania_ksiazki, :opis_ksiazki, :gatunek_ksiazki, :wypozyczalna)";
                                          
$stmt = $dbh->prepare($sql);
                                              
$stmt->bindParam(':numer_ksiazki', $_GET['nr'], PDO::PARAM_STR);       
$stmt->bindParam(':tytul_ksiazki', $_GET['tytul'], PDO::PARAM_STR);       
$stmt->bindParam(':id_autor_1', $_GET['a1'], PDO::PARAM_STR);       
$stmt->bindParam(':id_autor_2', $_GET['a2'], PDO::PARAM_STR);       
$stmt->bindParam(':id_autor_3', $_GET['a3'], PDO::PARAM_STR);       
$stmt->bindParam(':id_autor_4', $_GET['a4'], PDO::PARAM_STR);       
$stmt->bindParam(':wydawnictwo_ksiazki', $_GET['wydawnictwo'], PDO::PARAM_STR);       
$stmt->bindParam(':rok_wydania_ksiazki', $_GET['rok'], PDO::PARAM_STR);       
$stmt->bindParam(':opis_ksiazki', $_GET['uwagi'], PDO::PARAM_STR);       
$stmt->bindParam(':gatunek_ksiazki', $_GET['gatunek'], PDO::PARAM_STR);       
$stmt->bindParam(':wypozyczalna', $_POST['wypozyczalnia'], PDO::PARAM_STR); 
$stmt->execute(); 

http://php.net/manual/en/pdo.prepare.php

Kar Jsf
to powinno działać?
PA
Nie, tak napisałem bo chciałem zobaczyć jak forum koloruje składnie w PHP
Kar Jsf
powiem ci tyle często to co dostaję na innych forach nie działa pod pdo i dzięki za pomoc działa wszystko
PA
Wiesz, skoro piszesz kod to zachowuj się jak programista, forum może cię co najwyżej nakierować na odpwiedź, ten kod napisałem z ręki bez możliwości przetestowania, to jest Twoja rola, link do dokumentacji dałem dlatego, abys miał źródło wiedzy z której będziesz wstanie rozwiązać ewentualne moje niedoróbki...
Kar Jsf
akurat wszytko wspaniale dzieła ten kod dopasował się do reszty kodu JESZCZE RAZ DZIĘKI
HK
  • Rejestracja:około 7 lat
  • Ostatnio:około 7 lat
  • Postów:2
1

Hej,
Nie ma sensu kłamać, że jest zabezpieczony, i to kilka razy, bo nie jest, ty to wiesz, ja to wiem i wszyscy to wiedza .

Nie przejmuj się docinkami. Polscy programiści mają to do siebie, że zamiast się wspierać i pomagać słabszym, przeważnie odnoszą się z pogardą i dają to odczuć.
Przeważnie myślą, że są nie omylni i najlepsi, dokładnie tak jak na polscy kierowcy na drogach, wszyscy mistrzowie kierownicy, a efekt taki, że są dla siebie chamscy, innych wyłącznie krytykują i zabijają 4 tysiące ludzi rocznie.
Nikt nie zada sobie trudu, żeby coś ci wytłumaczyć, ma czas, aby wleźć na to forum, ale nie ma czasu aby wytłumaczyć, I z tego powodu postaram się wytłumaczyć jak najlepiej.

Więc do rzeczy
Kod nie jest zabezpieczony przez sql injections czyli wstrzykiwaniem w kod sql bo używasz bezpośrednio superglobalnej tablicy $_GET, i wątpię abyś wcześniej tą tablicę modyfikował
za dużo pisania o SQL Injections, więc to musisz wygooglać i doczytać, ale generalnie chodzi o to, że jeżeli do adresu URL twojej strony, która wykonuje to zapytanie dokleję jakiś kod to zepsuję zapytanie ( wystarczy aby zawierał znak " ) , co gorsza, mogę dokleić złośliwy kod i wykasować wszystkie twoje dane i usunąć tabele.
wyobraź sobie, że do zmiennej $_GET['wypozyczalna'] wpiszę taki test: "; $dowolne_zapytanie_sqlj.';' (cudzysłów na początku pierwsze zapytanie się nie wykona, be będzie wadliwe, drugie zapytanie po średniku się wykona, jeśli nie jest wadliwe, czyli, krótko mówiąc mogę wstrzyknąć dowolne zapytanie , które się wykona na twoim serwerze MySQL z wszystkimi tego konsekwencjami.

jeśli chodzi o błąd ( znalazłem , że po ostatniej wartosci wypozyczana'], brakuje zamknięcia cudzysłowy, ale zapewne tych błedów jest więcej
Taki styl tworzenia zapytań jest zły i musisz to poprawić. Przede wszystkim, jest bardzo mało czytelny i łatwo o pomyłkę.

Ja często jednak zapisuję zapytania w zmiennej, ale to nie jest absolutnie konieczne
Z tego przykładu i faktu, jak tworzysz zapytanie, wnioskuję, że nie znasz jeszcze PDO, Proponuję krok wstecz i opanuj to zapytanie używając mysqli a jak uda ci się wszystko zrobić i zrozumieć, wtedy zacznij używać PDO, to jest na prawdę trochę tak jakbyś, będąc świeżym kierowcą próbował prowadzić, jakieś droższe auto z funkcjami, których nie znasz.

używając zwykłego klienta mysql zapytanie zrobiłbym tak:

$mysqli->query(
'INSERT INTO ksiazka
(numer_ksiazki, tytul_ksiazki, id_autor_1, id_autor_2, id_autor_3, id_autor_4, wydawnictwo_ksiazki, rok_wydania_ksiazki, opis_ksiazki, gatunek_ksiazki, wypozyczalna )
VALUES (
"'.$mysqli->real_escape_string($nr).'",
"'.$mysqli->real_escape_string($tytul).'",
...
itd.
taki kod jest czytelny i łatwo znaleźć problem składniowy. W praktyce zapewne wygenerowałbym to zapytanie z tablicy, ale nie w tym rzecz, bo w praktyce nie użyłbym tego klienta, tak jak Kubica nie jeździłby fiatem seicento :)
W przyszłości być może będziesz tworzył bardzo skomplikowane zapytania, z podzapytaniami, wieloma ralacjami itp, przyzwyczajenie się do czytelnego formatowania kodu od samego początku jest bardzo ważne.

A najlepiej, abyś już na samym początku poczytał o standardach formatowania kodu PSR - gdyż wbrew pozorom to są bardzo proste standardy a są powszechne wśród profesjonalnych programistów i każdy, kto bez wyraźnego powodu ( np przepisy firmy ) ich nie używa nie może się nazwać profesjonalnym, albo może się nazwać profesjonalnym, ale bez zdolności pracy w teamie. bo pamiętaj, że PHP nie jest językiem kompilowanym i prędzej czy później ktoś twój kod może zobaczyć, chcieć poprawić itp. Zresztą ten fakt nie ma znaczenia, zasada obowiązuje we wszystkich językach. Jest to więc dobry pomysł, aby stosować te rzeczy od razu, bo to są bardzo proste reguły wymyślone przez mądrych i doświadczonych ludzi.

w przykładzie użyłem metody real_escape_string

służy ona do .. no właśnie nie wiem jak to się po polsku mówi, sanitize ( albo sanitise w zależności o wersji języka angielskiego ) , czyli czyszczenia, z brudu wartości zmiennej , czyli tak na prawdę modyfikuje wartość tekstową, aby była bezpieczna dla
polecenia sql. Ciekawe jest to , że to jest metoda $mysqli, a to dlatego , że owo czyszczenie jest zależne od serwera i jego ustawień , np typ kodowania znaków, Wiele bibliotek i programistów używa dodatkowego zabezpieczania ,w którym powyższa metoda jest tylko jednym z wielu elementów.

zwróć uwagę na to, że wciąż nie użyłem superglobalnej tablicy $_GET a zmiennych
jest tak dlatego, że w prawdziwym świecie z pewnością te zmienne musisz validować, czyli sprawdzić, czy ich wartości jest poprawne i spodziewane.

jeśli tak nie jest powinieneś przerwać wykonywanie kodu i wyświetlić jakąs informację.

np powinieneś sprawdzić czy wszystkie wartości wymagane są wypełnione
czy rok jest sensowny (Np czy ktos wpisal '-12332' albo co gorsza string itp,
po co zapisywac w bazie danych rekord, ktory być może nie powoduje błedu sql, ale i tak zawiera bzdury

taka walidacja powinna odbyc sie tuż przed wykonaniem zapytania, bez wzgledu na to ze wykonana byla w innych miejscach programu.

w tym kodzie zapewne jest jeszcze wiele wiecej do poprawienia, ale to nie jest temat twojego zapytania

jesli masz wiecej pytan pytaj, a jeśli ktos odnosi sie do ciebie z pogarda, to zawsze pisz , ze jestes poczatkujacy, liczyles na pomoc a nie pogarde, niektorym byc moze zrobi się glupio i ci pomogą
w tym wątku może 1 lub 2 osoby zadały sobie trud . komuś tam opadły ręce a inny doradził ci apostrof zamiast cudzysłowy

pozdrawiam
hk

on jest zabezpieczony tylko nie wiem gdzie w kodzie jest błąd
$result = $db->exec('INSERT INTO ksiazka (numer_ksiazki, tytul_ksiazki, id_autor_1, id_autor_2, id_autor_3, id_autor_4, wydawnictwo_ksiazki, rok_wydania_ksiazki, opis_ksiazki, gatunek_ksiazki, wypozyczalna ) VALUES ( "'.$_GET['nr'].'", "'.$_GET['tytul'].'", "'.$_GET['a1'].'", "'.$_GET['a2'].'", "'.$_GET['a3'].'", "'.$_GET['a4'].'", "'.$_GET['wydawnictwo'].'", "'.$_GET['rok'].'", "'.$_GET['uwagi'].'", "'.$_GET['gatunek'].'", "'.$_GET['wypozyczalna'].')');

edytowany 1x, ostatnio: hkwak
Kar Jsf
  • Rejestracja:około 7 lat
  • Ostatnio:około 4 lata
  • Lokalizacja:POLSKA
  • Postów:31
0

ogólnie odnosząc się do tego część danych jest sprawdzana kodem i przesyłana postem ale wszystko jest getem bo jest mi prosto to wyciągnąć w aplikacji którą do tego piszę i do JavaScripta bo to jest w adresie i nie muszę się męczyć do przenoszenia danych z php do JS i tam jest bo trochę podstawowego doświadczenia mam w tych skrypty są częściowo nie uruchamiane na komputerze tylko na serwerze (ja więcej umie w PHP jako pliki wykonawcze w serwerze niż na przeglądarki i pracowałem tylko na 5.5 a teraz przenoszę się na php 7.x),** i dzięki za wytłumaczenie :)**


Kodowanie Dla Każdego #koding.for.all
edytowany 2x, ostatnio: Kar Jsf
axelbest
Przeczytaj to co napisałeś i powiedz mi czy to ma sens?
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)