Uživatelská pošta - první problémy

51 příspěvků · strana 1 z 3

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. Jistě se pamatujete, jak jsem se ptal na uživ. poštu. Kód mojí pošty vypadá takto: NE! NENUTÍM VÁS ČÍST CELEJ HTML KÓD! NEČTĚTE HO CELÝ! <?php function formular() { ?> <form method="post" action="registrace.php"> <table width="100%" border="0" cellpadding="4" cellspacing="0"> <tr> <td width="24%" align="left" valign="top">Příjemce</td> <td width="76%"><input name="komu" type="text"></td> </tr> <tr> <td width="24%" align="left" valign="top">Nadpis</td> <td width="76%"><input name="nadpis" type="text"></td> </tr> <tr> <td align="left" valign="top">Text zprávy</td> <td><textarea name="telo"></textarea></td> </tr> <tr> <td align="left" valign="top"> </td> <td><input type="submit" name="submit" value="Odeslat"></td> </tr> </table> </form> <?php } function konec() { ?> </body> <?php } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <head> <title>Pošta</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> </head> <?php include 'http://superbecko.wz.cz/central/grafika.txt';?> \* tento soubor obsahuje určení barvy stránky <?php session_start(); if (isset($submit)) { include 'db.php'; // definice proměnných $komu = $_POST['komu']; $nadpis = $_POST['nadpis']; $telo = $_POST['telo']; $username = $_SESSION['autor']; $userid = $_SESSION['userid']; $komu = stripslashes($komu); $nadpis = stripslashes($nadpis); $telo = stripslashes($telo); $username = stripslashes($username); $userid = stripslashes($userid); if((!$komu) || (!$nadpis) || (!$zprava)){ echo '<b>Vyskytly se tyto chyby:</b><br>'; echo '<ul>'; if(!$komu){ echo "<li>Chybí jméno příjemce</li>"; } if(!$nadpis){ echo "<li>Chybí nadpis!</li>"; } if(!$zprava){ echo "<li>Chybí text zprávy!</li>"; } echo '</ul>'; formular(); konec(); exit(); } mysql_query("SELECT komu FROM posta WHERE komu='. $_SESSION['username'] .'"); \* tohle by mělo zobrazovat seznam přijatých zpráv uživatele $telo = htmlspecialchars($telo); $sql = mysql_query("INSERT INTO posta (komu, nadpis, telo, username, userid, datum) VALUES('$komu', '$nadpis', '$telo', '$username', '$userid', now())") or die (mysql_error()); if(!$sql){ echo '<p>Při odesílání zprávy nastala neočekávaná chyba.</p>'; } } else { formular(); konec(); } ?> Ale je háček v tom, že nejspíš nehodlá fungovat. Chyba je údajně v tomto řádku: mysql_query("SELECT komu FROM posta WHERE komu='. $_SESSION['username'] .'"); Mělo by to ukazovat přijaté zprávy daného uživatele. Nevím kde v tom je chyba. Prosím poraďte mi:) Děkuji! Maikis:-))) NEČTĚTE TEN KÓD! ČTĚTE JEN TEN KÓD DOLE! TEN HORNÍ VÁM JEN UKAZUJI PRO PŘÍPAD, ŽE BY TAM BYLY DALŠÍ CHYBY.
  2. myslím že ten dotaz je špatně položen, zkus toto mysql_query("SELECT komu FROM posta WHERE komu=" . $_SESSION['username']); ale stejnak se obávám dalšího problému. Tímto vytváříš dotaz a nikam ho neukládáš a nikde ho tedy ani nevoláš.
  3. Je! To bylo ono! Díky! ještě byla chybka o řádek níž v tom komentáři, ale tu už jsem opravil:) Díky!
  4. Prosímvás? Nevíte PROČ se údaje (viz kód výše) nezapisují do DB? JAK mám udělat, aby se tam zapisovaly?
  5. Nevadí na tom, že je samotné "tělo" vzkazu v databázi primární?
  6. > Nevíte PROČ se údaje (viz kód výše) nezapisují do DB vypíše to nějakou chybu nebo něco?
  7. Nyvpíše
  8. *Nevypíše Nevíte někdo čím by to mohlo být?
  9. Zkus si vypsat to SQL než ho provedeš. a taky zkus použít fci mysql_error(), uvidíš, jestli to skutečně vrací nějakou chybu nebo ne.
  10. Zapíše se něco do DB, nebo se nazapíše vůbec nic? Hoď sem strukturu tabulky "posta".
  11. Sloupec Typ Vlastnosti Nulový Výchozí Extra Akce userid int(25) Ne auto_increment autor varchar(25) Ne komu varchar(25) Ne nadpis varchar(25) Ne telo text Ne Zaškrtnout vše / Odškrtnout vše Zaškrtnuté: Nevim jak mam z SQL vytáhnout ten dotaz:)
  12. Místo: $sql = mysql_query("INSERT INTO posta (komu, nadpis, telo, username, userid, datum) VALUES('$komu', '$nadpis', '$telo', '$username', '$userid', now())") or die (mysql_error()); dáš: echo "INSERT INTO posta (komu, nadpis, telo, username, userid, datum) VALUES('$komu', '$nadpis', '$telo', '$username', '$userid', now())" Zobrazený řetězec dáš do phpMyAdmin a uvidíš.
  13. Vždyď dam je: $telo = htmlspecialchars($telo); $sql = mysql_query("INSERT INTO posta (komu, nadpis, telo, username, userid, datum) VALUES('$komu', '$nadpis', '$telo', '$username', '$userid', now())") or die (mysql_error());
  14. Ty vůbec nečteš, co ti píšu! Než ten příkaz proženeš mysql_query, nejdříve si ho jen vypiš na obrazovku a zkontroluj. Pak ho zadej do phpMyAdmin a uvidíš, jestli projde, nebo jakou vypíše chybu.
  15. Pardon! Já tadytu zprávu psal dlouho protože jsem u toho lovil kódy a tamta zpráva se mi neobjevila.. už ten kód zkoušim...
  16. hotovo.. naskočila chyba Parse error: parse error, expecting `','' or `';'' in /3w/wz.cz/s/superbecko/posta.php on line 87 to budou asi uvozovky.. moment..
  17. Na konci řádku 87 ti chybí středník.
  18. děkuju.. chyba je teď 88 Trošku jsem předělal kód: Tady je novej (kvůli řádkům): <?php function formular() { ?> <form method="post" action="posta.php"> <table width="100%" border="0" cellpadding="4" cellspacing="0"> <tr> <td width="24%" align="left" valign="top">Příjemce</td> <td width="76%"><input name="komu" type="text"></td> </tr> <tr> <td width="24%" align="left" valign="top">Nadpis</td> <td width="76%"><input name="nadpis" type="text"></td> </tr> <tr> <td align="left" valign="top">Text zprávy</td> <td><textarea name="telo"></textarea></td> </tr> <tr> <td align="left" valign="top"> </td> <td><input type="submit" name="submit" value="Odeslat"></td> </tr> </table> </form> <?php } function konec() { ?> </body> <?php } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <head> <title>Pošta</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> </head> <?php include 'http://superbecko.wz.cz/central/grafika.txt';?> <?php if (isset($submit)) { include 'db.php'; session_start(); $komu = $_POST['komu']; $nadpis = $_POST['nadpis']; $telo = $_POST['telo']; $username = $_SESSION['autor']; $userid = $_SESSION['userid']; $komu = stripslashes($komu); $nadpis = stripslashes($nadpis); $telo = stripslashes($telo); $username = stripslashes($username); $userid = stripslashes($userid); if((!$komu) || (!$telo) || (!$zprava)){ echo '<ul>'; if(!$komu){ echo "<li>Chybí jméno příjemce</li>"; } if(!$nadpis){ echo "<li>Chybí nadpis!</li>"; } if(!$telo){ echo "<li>Chybí text zprávy!</li>"; } echo '</ul>'; formular(); konec(); exit(); } mysql_query("SELECT komu FROM posta WHERE komu=" . $_SESSION['username']); $telo2 = htmlspecialchars($telo); echo "INSERT INTO posta (komu, nadpis, telo, username, userid, datum) VALUES('$komu', '$nadpis', '$telo', '$username', '$userid', now())"; if(!$sql){ echo '<p>Při odesílání zprávy nastala neočekávaná chyba.</p>'; { } else { formular(); konec(); } ?> </body>
  19. 88 je opraveno. bylo tam tohle obráceně: {
  20. Nezapsalo se to:( Tabulka naskočila ale nic se nezapsalo:(
  21. Na řádku 87 teď máš navíc levou složenou závorku. V čem to píšeš?
  22. Píšu to v editoru WZ
  23. Nechci ti mluvit do toho, v jakém editoru to psát, ale vřele doporučuji PSPad. http://www.pspad.com/cz/ - zdarma - freeware - český program - neistaluje se, jen rozbalíš adresář - zvýrazňuje syntax - barevně ukazuje párové závorku - super funkce - ukazuje čísla řádků - mnoho dalšího Za zkoušku určitě stojí.
  24. Bezva! díky! to zkusim:))
  25. Ten program jsem už měl a nefungoval:( a ani teď nefunguje:(

← Zpět na všechna témata