Autor | Zpráva | ||
---|---|---|---|
Musilda Profil |
Zdravím
s PHP začínám a proto jsem si koupil knihu, "chytrou" podle které postupuji. Narazil jsem na problém a nejsem sto ho vyřešit. kód : <?php $spojeni = mysql_connect( "localhost","root","owerdrive") or die (mysql_error() ) ; mysql_select_db("moviesite") or die (mysql_error() ); $dotaz = "SELECT movie_id,movie_name, movie_director, movie_leadactor FROM movie"; $vysledek = mysql_query ($dotaz,$spojeni) or die (mysql_error() ); $pocet_filmu = mysql_num_rows($vysledek); $filmy_zahlavi = <<<EOD <h2><center>Databáze filmových recenzí</center></h2> <table width="70%" border= "1" cellpading= "2" cellspacing="2" aling="center"> <tr> <th>Název filmu</th> <th>Rok uvedení na plátna kin</th> <th> Režisér</th> <th>V hlavní roli</th> <th>Kategorie</th> </tr> EOD; function zobraz_rezisera() { global $reziser_filmu; global $reziser; $dotaz_d = "SELECT people_fullname". "FROM people". "WHERE people_id='$reziser_filmu'"; $vysledky_d = mysql_query ( $dotaz_d ) or die ( mysql_error() ); $radek_d = mysql_fetch_array($vysledky_d ); extract( $radek_d ); $reziser = people_fullname; } function zobraz_hlavni_roli() { global $hlavni_role_ve_filmu; global $hlavni_role; $dotaz_a = "SELECT people_fullname". "FROM people". "WHERE people_id='$hlavni_role_ve_filmu'"; $vysledky_a = mysql_query ( $dotaz_a ) or die (mysql_error() ); $radek_a = mysql_fetch_array($vysledky_a ); extract($radek_a); $hlavni_role = people_fullname; } $filmy_podrobnosti =''; while ($radek= mysql_fetch_array ($vysledek) ) { $id_filmu = $radek['movie_id']; $nazev_filmu = $radek['movie_name']; $reziser = $radek['movie_director']; $v_hlavni_roli = $radek['movie_leadactor']; zobraz_rezisera(); zobraz_hlavni_roli(); $filmy_podrobnosti .=<<<EOD <tr> <td><a href="podrobnosti_o_filmu.php?id_filmu=$id_filmu" title = "Další informace o filmu '$nazev_filmu'">$nazev_filmu</td> <td>$reziser</td> <td>$v_hlavni_roli</td> </tr> EOD; } $filmy_podrobnosti .=<<<EOD <tr> <td> </td> </tr> <tr> <td>Celkem filmů:$pocet_filmu</td> </tr> </table> EOD; $filmy_pata = "</table>"; $filmy =<<<MOVIE $filmy_zahlavi $filmy_podrobnosti $filmy_pata MOVIE; echo "V naší databázi jsou $pocet_filmu filmy"; echo $filmy; ?> Chybu hlásí na posledním řádku. Za radu děkuji |
||
BetaCam Profil |
#2 · Zasláno: 12. 9. 2008, 01:20:25
Musilda
Tato chyba je většinou způsobena neuzavřením {} závorek. Což je sice i problém v tvém scriptu, ale né doslova. Chyba je v tomto cyklu : while ($radek= mysql_fetch_array ($vysledek) ) { $id_filmu = $radek['movie_id']; $nazev_filmu = $radek['movie_name']; $reziser = $radek['movie_director']; $v_hlavni_roli = $radek['movie_leadactor']; zobraz_rezisera(); zobraz_hlavni_roli(); $filmy_podrobnosti .=<<<EOD <tr> <td><a href="podrobnosti_o_filmu.php?id_filmu=$id_filmu" title = "Další informace o filmu '$nazev_filmu'">$nazev_filmu</td> <td>$reziser</td> <td>$v_hlavni_roli</td> </tr> EOD; } A to přesně za EOD; Za EOD; se nesmí nic vyskytovat. Umaž si tedy ty dvě mezery, které za EOD; máš. |
||
Musilda Profil |
#3 · Zasláno: 12. 9. 2008, 05:40:12
Díky za pomoc.
|
||
Časová prodleva: 3 měsíce
|
|||
masterrrrrrrr Profil * |
#4 · Zasláno: 18. 12. 2008, 19:42:03
Mám podobný problém
<?php // REFERER - odkud prisel navstevnik $referer = 2; // predpokladame prechod v ramci serveru if(isset($_GET['referer'])) { $escape = array ('%u010C', '%u010E', '%u011A', '%u0147', '%u0158', '%u0160', '%u0164', '%u016E', '%u017D', '%u010D', '%u010F', '%u011B', '%u0148', '%u0159', '%u0161', '%u0165', '%u016F', '%u017E', '%u0105', '%u013E'); $unescape = array ('Č', 'Ď', 'Ě', 'Ň', 'Ř', 'Š', 'Ť', 'Ů', 'Ž', 'č', 'ď', 'ě', 'ň', 'ř', 'š', 'ť', 'ů', 'ž', 'š', 'ž'); // rozkoduje URL a prevede na mala pismena $http_referer = str_replace($escape, $unescape, urldecode(addslashes($_GET['referer'])) ); $http_referer = strtolower( autoczech($http_referer, 'win') ); if ($http_referer == '') { // prime volani $referer = 1; } elseif (eregi(no_Referer, $http_referer)) { // prechod v ramci serveru $referer = 2; } // VYHLEDAVACE - jaka fraze byla pouzita pri vyhledavani $explode = explode('.', $url['host']); // rozdeli adresu serveru na jednotlive casti $host_domain = $explode[count($explode) - 2] . '.' . $explode[count($explode) - 1]; // domena 2. urovne // jedna se o vyhledavac? $query = mysql_query("SELECT * FROM searchengine WHERE server = '$host_domain'"); if($result = mysql_fetch_array($query)) { // zjistime pouzitou frazi - pres parametr, ktery vyhledavac pouziva $variables = explode('&', $url['query']); for($i = 0;$i < count($variables);$i++) { $explode = explode('=', $variables[$i]); if($explode[0] == $result['variable']) { $searchtext = $explode[1]; // fraze pouzita pri vyhledavani break;} } // pokud se podarilo zjistit frazi, zapiseme vse do databaze if($searchtext != '') { $server = $result['id']; // je fraze v databazi ? (pokud ne, pridame ji) $query = mysql_query("SELECT id FROM searchtext WHERE query = '$searchtext'"); if ($result = mysql_fetch_array($query)) { $search_id = $result['id']; } else { $query = mysql_query("INSERT INTO searchtext VALUES ('', '$searchtext')"); $search_id = mysql_insert_id(); } $query = mysql_query("INSERT INTO searched VALUES ('', '$date', '$server', '$search_id')"); } } // VYHLEDAVACI FRAZE // celkovy pocet pristupu ze vsech vyhledavacu za dane obdobi $query = mysql_query("SELECT count(id) FROM searched WHERE $sql_search_date"); $result = mysql_fetch_array($query); $count_search = $result['count(id)']; if($count_search != 0) { echo '<h2>Fráze použité při vyhledávání</h2>'; echo '<table width="680" cellspacing="0">'; echo '<tr><th>Vyhledávač (fráze)</th><th>Počet</th><th class="width1">Podíl</th></tr>'; echo '<tr><td>Celkem</td><td>' . $count_search . '</td><td> </td></tr>'; // vybirame vyhledavace podle jejich zastoupeni $query = mysql_query("SELECT searchengine.id AS id, searchengine.server AS server, count(searchengine.id) AS count_it FROM searched JOIN searchengine ON (searchengine.id = searched.server) WHERE $sql_search_date GROUP BY searchengine.id ORDER BY count_it DESC"); $max = mysql_result($query, 0, 'count_it'); // pocet pristupu z nejvíce zastoupeneho vyhledavace $move = mysql_data_seek($query, 0); // presuneme se znovu na zacatek while($result = mysql_fetch_array($query)) { $width = round($result['count_it']/$max*380); // sirka obrazku znazornujiciho podil $rate = sprintf('%.2f', $result['count_it']/($count_search/100)); // podil v procentech echo '<tr class="tableheader"><td>' . $result['server'] . '</td><td>' . $result['count_it'] . '</td><td><img src="1.gif" width="' . $width . '" height="8" alt="" /> ' . $rate . ' %</td></tr>' . "\n"; // vybirame vyhledavací fraze u daneho vyhledavace (podle poctu) $id = $result['id']; // id vyhledavace $query2 = mysql_query("SELECT searchtext.query AS query, count(searchtext.id) AS count_it FROM searched JOIN searchtext ON (searched.query = searchtext.id) WHERE searched.server = '$id' AND $sql_search_date GROUP BY searchtext.id ORDER BY count_it DESC"); while($result = mysql_fetch_array($query2)) { $rate = sprintf('%.2f', $result['count_it']/($count_search/100)); // podil v procentech $width = round($result['count_it']/$max*380); // sirka obrazku znazornujiciho podil echo '<tr><td>' . $result['query'] . '</td><td>' . $result['count_it'] . '</td><td><img src="1.gif" width="' . $width . '" height="8" alt="" /> ' . $rate . ' %</td></tr>' . "\n"; } } echo "</table>\n\n"; } ?> Taky chyba na posledním řádku. Děkuji za rady |
||
I am Profil * |
#5 · Zasláno: 18. 12. 2008, 20:59:01
Je to to trapné, ale prosím co přesně dělá ono pro mě záhadné EOD?
|
||
Měsíček Profil |
#6 · Zasláno: 18. 12. 2008, 21:04:17
Říká se tomu syntaxe HEREDOC, ovšem nemusíš tam mít EOD, ale můžeš tam dát klidně IAM.
|
||
I am Profil * |
#7 · Zasláno: 18. 12. 2008, 21:06:39
No, ale spíš jak se to liší když to tam je versus není, jaké to má výhody a co to má za úkol :)
|
||
Měsíček Profil |
#8 · Zasláno: 18. 12. 2008, 21:15:04
Třeba nemusíš si hrát s uvozovkama a apostrofama (escapovat je).
|
||
Časová prodleva: 11 měsíců
|
|||
rihot Profil |
#9 · Zasláno: 26. 11. 2009, 16:04:34
Mám ten samej problém, ale hlásí to na line 34, prosím help
<?php require "errors.php"; // chybove hlasky a zpravy // byl odeslan formular ? if(!IsSet($_POST['sent'])) { $uziv_jmeno = $_POST['uziv_jmeno']; $heslo = $_POST['heslo']; $heslo_2 = $_POST['heslo_2']; $jmeno = $_POST['jmeno']; $prijmeni = $_POST['prijmeni']; $email = $_POST['email']; $adresa = $_POST['adresa']; $tel = $_POST['tel']; // byly vyplneny vsechny povinne udaje ? if($uziv_jmeno=="" || $heslo=="" || $heslo_2=="" || $email=="" || $jmeno=="" || $prijmeni=="" || $adresa=="" || $tel=="" ) { $error[] = 6; } // pokud byl zadan email, zkontroluje jeho platnost if($email != "" && (!EregI("^[a-z0-9]+[a-z0-9\._-]*@[a-z0-9]+[a-z0-9\._-]*\.[a-z]{2,10}$", $email) || EregI("\.{2,}", $email) || EregI("_{2,}", $email) || EregI("-{2,}", $email))) { $error[] = 7; } // rovnaji se hesla ? if($heslo!=$heslo_2) { $error[] = 8; } require("/db_connect.php"); // pripoji k databazi // existuje zadany login ? $query = @MySQL_Query("SELECT uziv_jmeno FROM zakaznici WHERE uziv_jmeno LIKE '$uziv_jmeno'") or Weblog_Error(2); if(MySQL_Num_Rows($query) != 0) { $error[] = 9; } if(IsSet($error)) { $heslo = MD5($heslo); $query = @MySQL_Query("INSERT INTO zakaznici VALUES ('', '$uziv_jmeno', '$heslo', '$jmeno', '$prijmeni', '$email', '$adresa', '$tel')") or Weblog_Error(2); // prihlaseni pomoci session Session_Start(); $_SESSION['auth'] = Array( 'id' => $user_id = MySQL_Insert_ID(), 'uziv_jmeno' => $name, 'jmeno' => $name, 'prijmeno' => $prijmeni, 'email' => $email, 'time' => Time()+1800 ); MySQL_Close(); // presmerovani do administracni casti $message = 6; Header('Location: http://'. $_SERVER['HTTP_HOST'] . '/uziv_rozhrani.php' . $message . '&' . SID); exit; } MySQL_Close(); } // chybove hlasky if(IsSet($error)) for($i=0;$i<Count($error);$i++) echo '<p class="error">' . $msg_error[$error[$i]] . '</p>'; ?> |
||
panther Profil |
#10 · Zasláno: 26. 11. 2009, 16:52:19
rihot:
„Mám ten samej problém“ Už zde jednou padlo, co je příčinou. Přečti si celou diskusi a budeš vědět. |
||
Časová prodleva: 1 rok
|
|||
vahy Profil |
#11 · Zasláno: 12. 12. 2010, 10:59:50
zkouknul byto nekdo nejak nemuzu najit chybu :(
<?php $link = mysql_connect('127.0.0.1', 'vahy', 'vahy');// spojení s databází if (!$link) { die('Not connected : ' . mysql_error()); } // make foo the current db $db_selected = mysql_select_db('databaze', $link);//vyber databáze if (!$db_selected) { die ('Can\'t use foo : ' . mysql_error()); } $jmeno= $_GET["odesilatel"]; //jmeno $email=$_GET["email"]; //email $pokoj=$_GET["predmet"]; //kolej $zprava=$_GET["zprava"]; //zavada if (isset($_GET['odesli_mail'])){ //až jse zmackne tlacitko odeslat tak všecky promene ve formulari jse uloží do databaze $vysledek = mysql_query(" INSERT INTO vsichni (jmeno, email, pokoj, zavada, kolej) VALUES('$_POST[jmeno]','$_POST[email]','$_POST[pokoj]','$_POST[zprava]','$_POST[sazava]')"); echo mysql_errno($link).":".mysql_error($link)."\n" //odchytavac chyb v mysql ?> <?link rel="stylesheet" type="text/css" href="styl.css"><?php $cisla = Array("0" => "nula", "1" => "jedna", "2" => "dvì", "3" => "tøi", "4" => "ètyøi", "5" => "pìt", "6" => "šest", "7" => "sedm", "8" => "osm", "9" => "devìt"); $i = mt_rand(0,9); $cislo = $cisla[$i]; $sifra = md5($i); if(isset($_POST["odesli_mail"])) { $cislo2 = escapeshellcmd($_POST["cislo"]); if(($_POST["sifra"]) && ($_POST["sifra"] != md5($cislo2))) { $oznam = " - èíslo bylo špatnì opsáno<br />"; $over = FALSE; } if(isset($_POST["odesilatel"])) { $odesilatel = htmlspecialchars(escapeshellcmd($_POST["odesilatel"])); $odesilatel = strtr($odesilatel, "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz", "ÁÄÈÇÏÉÌËÍÒÓÖØŠÚÙÜÝŽáäèçïéìëíòóöøšúùüýž"); if($odesilatel == "") { $oznam = " - povinné pole <b>Odesílatel</b> nebylo vyplnìno<br />"; $over = FALSE; } $odesilatel = substr($odesilatel, 0, 50); } if(isset($_POST["predmet"])) { $predmet = htmlspecialchars(escapeshellcmd($_POST["predmet"])); $predmet = strtr($predmet, "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz", "ÁÄÈÇÏÉÌËÍÒÓÖØŠÚÙÜÝŽáäèçïéìëíòóöøšúùüýž"); if($predmet == "") { $oznam .= " - povinné pole <b>Èíslo pokoje</b> nebylo vyplnìno<br />"; $over = FALSE; } $predmet = substr($predmet, 0, 5); } else { $predmet = $data[vych_pred]; } if(isset($_POST["email"])) { $email = htmlspecialchars(escapeshellcmd($_POST["email"])); if($email == "") { $oznam = " - povinné pole <b>Váš email</b> nebylo vyplnìno<br />"; $over = FALSE; $pokrac = 1; } } if($_POST["zprava"] == "") { $oznam .= " - povinné pole <b>Zpráva</b> nebylo vyplnìno<br />"; $over = FALSE; } else { $zprava = $_POST["zprava"]; $vychozi = Array(";","'","&","<",">"); $nahrad = Array(",","","&","<",">"); $zprava = str_replace($vychozi,$nahrad,$zprava); $vychozi = Array("","","","","\n"); $nahrad = Array("<b>","</b>","<i>","</i>"," <br /> "); $zprava = str_replace($vychozi,$nahrad,$zprava); $slova = explode(" ",$zprava); $zprava = ""; for($i = 0; $i < sizeof($slova); $i++) { if(preg_match('~"(http://[^ ]+\.[^ ]+)"~', '~$slova[$i]~')) { $cast = substr($slova[$i], 0, 30); if(strlen($slova[$i]) > 30) { $odkaz = "<a href=\"\\1\">$cast…</a>"; } else { $odkaz = "<a href=\"\\1\">$cast</a>"; } $slova[$i] = ereg_replace("(http://[^ ]+\.[^ ]+)", " $odkaz ", $slova[$i]); } else { $slova[$i] = wordwrap($slova[$i], 40, " ", 1); } $zprava .= " ".$slova[$i]; } $pocet = substr_count($zprava, "<b>"); $pocet2 = substr_count($zprava, "</b>"); if($pocet != $pocet2) { $pridat = $pocet - $pocet2; for($i = 0; $i < $pridat; $i++) { $zprava .= "</b>"; } } $pocet = substr_count($zprava, "<i>"); $pocet2 = substr_count($zprava, "</i>"); if($pocet != $pocet2) { $pridat = $pocet - $pocet2; for($i = 0; $i < $pridat; $i++) { $zprava .= "</i>"; } } } if(file_exists("$slozka/konfigurace.php")) { include("$slozka/konfigurace.php"); } else { $oznam = "Konfiguraèní soubor mailového formuláøe <b>konfigurace.php</b> nebyl nalezen."; $over = FALSE; } $hlavicky = "From: $odesilatel <$email>\n"; $hlavicky = "X-Sender: <$email>\n"; $hlavicky = "Content-Type: text/html; charset=".$kodovani."\n"; if($over) { mail('vahy.t@seznam.cz',"jmeno","email","pokoj","zavada"); $oznam = "<b>Zpráva byla úspìšnì odeslána.</b>"; } } ?> <script type="text/javascript"> <!-- function area(text) { var txtarea = document.post.zprava; text = '' + text + ''; if (txtarea.createTextRange && txtarea.caretPos) { var caretPos = txtarea.caretPos; caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text; txtarea.focus(); } else { txtarea.value += text; txtarea.focus(); } } // --> </script> <div id="mailform"> <form action="" method="post" name="post"> <fieldset> <legend> Kontaktní formuláø </legend> <?php if($data["odesilatel"] == 1) { echo "\t\t\t<label><b>Odesílatel:</b> </label><input type=\"text\" name=\"odesilatel\" />\n"; } if($data["email_odes"] == 1) { echo "\t\t\t<label><b>Váš email:</b> </label><input type=\"text\" name=\"email\" />\n"; } if($data["predmet"] == 1) { echo "\t\t\t<label><b>pokoj:</b> </label><input type=\"text\" name=\"predmet\" />\n"; } if($data["antispam"] == 1) { echo "\t\t\t<label>Opište èíslicí: <b>$cislo</b></label><input type=\"text\" name=\"cislo\" id=\"kod\" /><input type=\"hidden\" name=\"sifra\" value=\"$sifra\" style=\"display: none;\" />\n"; } ?> <label><b>Závada:</b> </label><textarea name="zprava" cols="20" rows="5"></textarea> <div id="format"><a href="javascript:area('[b][/b]')">tuèné</a> | <a href="javascript:area('[i][/i]')">kurzíva</a> | <a href="javascript:area(' http://')">odkaz</a></div> <input type="submit" name="odesli_mail" value="Odeslat" id="odeslat" /> <?php if(!$over) { echo "<br />".$oznam."<br /><b>Zpráva nebyla odeslána!</b>!"; } else { echo $oznam ; } ?> </fieldset> </form> <div id="odkaz">made by vahy <a href="./form/admin.php">@</a></div> </div> |
||
Davex Profil |
#12 · Zasláno: 12. 12. 2010, 12:39:12
vahy:
Najít chybu syntaxe programovacího jazyka jsou naprosté základy programování. Musíš to zvládnout sám. Pokud ti PHP nehlásí žádnou chybu s číslem řádku, tak si zapni chybové hlášky v administraci hostingu nebo pomocí konfiguračních voleb v souboru .htaccess: php_flag display_errors 1 php_value error_reporting 6135 |
||
Časová prodleva: 3 měsíce
|
|||
MrWarlock Profil * |
#13 · Zasláno: 21. 3. 2011, 19:27:11
taky mám problém a to v tomto scriptu:
<?php $planet = ($planet); if ($planet == "Veldin"): include "Veldin.html"; if ($planet == "Pokitaru"): include "Pokitaru.html"; endif; ?> mám to na stránku o jedný hře, tak se nedivte :-) dík za radu |
||
panther Profil |
#14 · Zasláno: 21. 3. 2011, 19:36:13
MrWarlock:
otevíráš 2 IFy, uzavíráš jeden. |
||
Časová prodleva: 13 let
|
0