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é.
-
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.
-
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áš.
-
Je! To bylo ono! Díky! ještě byla chybka o řádek níž v tom komentáři, ale tu už jsem opravil:) Díky!
-
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?
-
Nevadí na tom, že je samotné "tělo" vzkazu v databázi primární?
-
> Nevíte PROČ se údaje (viz kód výše) nezapisují do DB vypíše to nějakou chybu nebo něco?
-
Nyvpíše
-
*Nevypíše Nevíte někdo čím by to mohlo být?
-
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.
-
Zapíše se něco do DB, nebo se nazapíše vůbec nic? Hoď sem strukturu tabulky "posta".
-
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:)
-
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íš.
-
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());
-
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.
-
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...
-
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..
-
Na konci řádku 87 ti chybí středník.
-
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>
-
88 je opraveno. bylo tam tohle obráceně: {
-
Nezapsalo se to:( Tabulka naskočila ale nic se nezapsalo:(
-
Na řádku 87 teď máš navíc levou složenou závorku. V čem to píšeš?
-
Píšu to v editoru WZ
-
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í.
-
Bezva! díky! to zkusim:))
-
Ten program jsem už měl a nefungoval:( a ani teď nefunguje:(