Jump to content
php.lv forumi

Hennikenno

Reģistrētie lietotāji
  • Posts

    27
  • Joined

  • Last visited

Posts posted by Hennikenno

  1. šajā vietā:

    if($voted = false)

    notiek nevis salīdzināšana, bet gan piešķiršana. :)

    Jābūt:

    if($voted == false)

    vai vēl labāk (vismaz man pašam tā šķiet labāk :) ) ir pieradināties salīdzināmo konstanti rakstīt pirmo:

    if(false == $voted)

    tad gadījumā, ja neuzmanības dēļ aizmirsīsi otru vienādības zīmi interpretators bļaus, ka Tu esi ļoti slikts cilvēks un mēģini ierakstīt kaut ko konstantē. :)

     

    Protams, boolean vērtību gadījumā var uzreiz rakstīt arī if( ! $voted).

     

    Nu jā, tas laikam visu izskaidro... Paldies ;)

  2. Sveiki.

     

    Man ir tāda problēma, ka uzrakstīju dziesmu topu kodu, bet kā vienmēr kautkur ir kāda kļūda kuru nu es nekādīgi nevaru atrast. Tātad šeit ir kods:

     

    <?php
    
    require_once "core/main.php";
    
    checklogin();
    
    draw_head("Charts", "charts");
    
    ?>
    <h1>Some charts:</h1>
    <?
    
    $chart_res = sql_query("SELECT * FROM charts ORDER BY id DESC");
    if(mysql_num_rows($chart_res) >= 1)
    {
    while($chart_arr = mysql_fetch_array($chart_res))
    	{
    	$id = $chart_arr["id"];
    	$sql_id = sqlesc($id);
    	$name = $chart_arr["name"];
    	?>
    	<div class="chart_entry">
    	<a href="javascript: collapse('a<? echo "$id"; ?>')"><? echo "$name"; ?></a>
    	<div id="ka<? echo "$id"; ?>" class="chart_entry_info" style="display: none;">
    	<?
    	if($chart_arr["onair"] == "yes")
    		{
    		?>
    		<b>Broadcast:</b> <? echo $chart_arr["broadcast"]; ?><br/><br/>
    		<?
    		}
    	$ip = getip();
    	$sql_ip = sqlesc($ip);
    
    	$once = $chart_arr["voteonce"];
    
    	$curdate = date('d.m.Y');
    
    	$an_res = sql_query("SELECT * FROM chart_an WHERE chid = $sql_id AND ip = $sql_ip")or die(mysql_error());
    	if(mysql_num_rows($an_res) >= 1)
    		{
    		$last_an_res = sql_query("SELECT date FROM chart_an WHERE chid = $sql_id AND ip = $sql_ip ORDER BY date DESC LIMIT 1")or die(mysql_error());
    		$last_an_row = mysql_fetch_assoc($last_an_res);
    		if($once == "yes")
    			{
    			$voted = true;
    			}
    		elseif($last_an_row["date"] == $curdate)
    			{
    			$voted = true;
    			}
    		else
    			{
    			$voted = false;
    			}
    		}
    	else
    		{
    		$voted = false;
    		}
    
    	if($voted = false)
    		{
    		$op_res = sql_query("SELECT * FROM chart_op WHERE chartid = $sql_id ORDER BY id ASC")or die(mysql_error());
    		?>
    		<form method="post" action="charts.php?act=vote">
    		<?
    		while($op_arr = mysql_fetch_assoc($op_res))
    			{
    			?>
    			<input type="radio" name="choice" value="<? echo $op_arr["id"]; ?>" /> <? echo $op_arr["option"]; ?><br/>
    			<?
    			}
    		?>
    		<input type="submit" value="Vote!" />
    		</form>
    		<?
    		}
    	elseif($chart_arr["show"] != "yes")
    		{
    		?>
    		<p>Chart results are hidden. Thanks for voting!</p>
    		<?
    		}
    	else
    		{
    		$op_res = sql_query("SELECT * FROM chart_op WHERE chartid = $id ORDER BY id ASC")or die(mysql_error());
    		$an_tot_res = sql_query("SELECT id FROM chart_an WHERE chid = $sql_id")or die(mysql_error());
    		$total_votes = mysql_num_rows($an_tot_res);
    		while($op_arr = mysql_fetch_array($op_res))
    			{
    			$count = $count + 1;
    			$op_id = $op_arr["id"];
    			$an_res = sql_query("SELECT id FROM chart_an WHERE opid = $op_id")or die(mysql_error());
    			$votes = mysql_num_rows($an_res);
    			if($total_votes != 0)
    				{
    				$vote_perc = $votes / $total_votes * 100;
    				$vote_perc = round($vote_perc,1);
    				}
    			else
    				{
    				$vote_perc = 0;
    				}
    			?>
    			<? echo "$count"; ?>. "<? echo $op_arr["option"]; ?>" <? echo "$votes"; ?> votes (<? echo "$vote_perc"; ?>%)!<br/>
    			<?
    			}
    		?>
    		<div class="center">
    		<i>There are total <? echo "$total_votes"; ?> votes on this chart!</i>
    		</div>
    		<?
    		}
    	?>
    	</div>
    	</div>
    	<?
    	}
    }
    else
    {
    ?>
    <h3>There are no charts at current moment!</h3>
    <?
    }
    
    draw_foot();
    ?>
    

     

    Kodā ir vairākas paša rakstītas funkcijas, kuras gan nav nepieciešams pievienot, jo tās strādā nevainojami citos skriptos un nav arī nozīmes, ko tās dar (ja neskaita sql_query() - tā aizvieto mysql_query() + piereģistrē katru izpildīto sql kveriju).

     

    Problēma kodā ir šāda: Ja lietotājs nav balsojis, tad vajadzētu parādīt balsošanas formu. Ja ir balsojis, bet tops atļauj balsot katru dienu un pēdējā lietotāja bals nav bijusi šodien, tad arī parāda balsošanas formu. Citos gadījumos (ja tops atļauj) tiek parādīti rezultāti! Bet manā gadījumā, lietotājs nav nobalsojis, bet tikuntā rāda balsošanas rezultātus, nevis balsošanas formu (sk. $voted = true / false)! Kur ir kļūda, kuru es, vairākkārt pārskatot, neesmu atradis?

  3. Vēl vajadzīgs return false iekš onclick, lai neizpildās tas links, ja kancelo (parādās # pie adreses augšā)

    onclick="confirm_news_delete(); return false;"
    

     

    Man jau tas # tur netraucē atvērt citus linkus, bet nu paldies par ieteikumu, šitais noderēs, ja vajadzēs ;)

  4. Nekas nenotiek, jo tev ir kļūda sintaksē!!

    Lieto firebug un būs vieglāk!!!

     

    var answer = confirm("Do you realy want to delete " subject)

     

    Kā savienojami divi mainīgie iekš JS a? plusiņu neesi pazaudējis?

     

    Domā šādi? : var answer = confirm("Do you realy want to delete " + subject)

     

    ps. Es jau nezinu, kā savienojami divi mainīgie iekš js, tāpēc arī prasu palīdzību šeit ;) Esmu tikai paklausīgs māceklis :D

     

    pss. Eju notestēt, vai šādi strādās...!

     

    psss. Firebug arī parāda js sintakses kļūdas? Būs jānočeko

     

    EDIT: super, izdevās, paldies!

  5. Sveiki. Šis ir pirmais mans mēģinājums pašam kautko uz javascript rakstīt. Tad nu man ir hipersaite, kurai uz onclick ir uzlikta iepriekš nodefinēta javasscript komanda, kas attiecīgi pieprasa apstiprinājumu un vajadzības gadījumā pārsūta lietotāju uz dzēšanas linku. Protams man te kautkas nestrādā, kā es vēlētos (vispār js netiek izpildīts, uzspiežu uz linka, nekas nenotiek). Šeit ir kā tas aptuveni izskatās:

     

    <script type="text/javascript">
    function confirm_news_delete(id , subject) 
    {
    var answer = confirm("Do you realy want to delete " subject)
    if (answer)
    	{
    	alert("Deleting...")
    	window.location = "a_news.php?act=delete&id=" id;
    	}
    else
    	{
    	alert("Canceled...")
    	}
    }
    </script>
    
    <?
    $news_res = sql_query("SELECT * FROM zinas ORDER BY id DESC")or die(mysql_error());
    if(mysql_num_rows($news_res) >= 1)
    	{
    	while($news_arr = mysql_fetch_array($news_res))
    		{
    		$added = $news_arr["added"];
    		$subject = $news_arr["subject"];
    		$id = $news_arr["id"];
    
    		?>
    		<h3><? echo "$added"; ?> :: <? echo "$subject"; ?> :: <a href="a_news.php?act=edit&id=<? echo "$id"; ?>">Edit</a> / <a href="#" onclick="confirm_news_delete('<? echo "$id"; ?>','<? echo "$subject"; ?>')" >Delete</a></h3>
    		<?
    
    		}
    	}
    

     

    Kur šajā visā esmu pieļāvis kļūdu, un vai vispār esmu uz pareizā ceļa?

  6. Sveiki.

     

    Šodien turpinu iesākto darbu pie vienas weblapas. Uzrakstīju signup, viss iet ideāli. Ustaisīju, skriptu, kas veic ielogošanos un kas nočeko vai lietotājs ir ielgojies, bet sākas problēmas, jo ielogošanos veic bez erroriem, bet pēctam rāda, ka lietotājs nav ielogojies. Drošivien jau pats kautkādu pastulbu kļūdu esmu pieļāvis, bet gan pusnakti nosēž pie koda, tur nav nekāds brīnums...

     

    Login.php - ielogošanās izpilde (ar jau saņemtiem datiem no $_POST)

    <?php
    
    require_once "core/main.php";
    
    checklogin();
    
    if(isloggedon() == true)
    {
    errmsg("Login error!", "You have already registered and logged on!");
    }
    
    if(!mkglobal("username:password"))
    {
    errsmg("No access!", "You have no access key to this page!");
    }
    
    $username = $_POST['username'];
    $password = $_POST['password'];
    
    $sql_username = sqlesc($username);
    
    if(!validusername($username))
    {
    errmsg("Login error", "You typed in invalid username");
    }
    
    $user_res = sql_query("SELECT * FROM users WHERE uname = $sql_username")or die(mysql_error());
    if(mysql_num_rows($user_res) != 1)
    {
    errmsg("Login error", "You typed in unknow or invalid username");
    }
    
    $user_row = mysql_fetch_assoc($user_res);
    
    $db_user_hashedpass = base64_decode($user_row['hashedpass']);
    $db_user_salt = base64_decode($user_row['salt']);
    $db_user_id = $user_row['id'];
    
    $cur_rev_pass = strrev($password);
    
    $cur_hashedpass = md5($username . $cur_rev_pass . $db_user_salt);
    
    if($cur_hashedpass != $db_user_hashedpass)
    {
    errmsg("Login error", "Username or / and password was incorrect!");
    }
    
    $_SESSION['uid'] = $db_user_id;
    $_SESSION['hashed'] = $cur_hashedpass;
    
    msg("Congrats!", "You have successfuly logged on. You can now proceed to index page!");
    
    ?>
    

     

    main.php - tikai pāris funkcijas no šī faila

    <?php
    
    // Start counter to check page execution time:
    
    $GLOBALS['stime'] = array_sum(explode(' ',microtime()));
    
    
    // Set our timezone:
    
    date_default_timezone_set('Europe/Riga');	
    
    
    // Reset query counter:
    
    $_SESSION['queries_made'] = 0;
    
    
    // Database config:
    
    $db_host = "localhost";
    $db_user = "admin";
    $db_pass = "pass";
    $db_database = "newice";
    
    
    // Make a connection to mysql server:
    
    mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error());
    mysql_select_db($db_database) or die(mysql_error());
    
    
    // Define all functions:
    
    function sql_query($query) 
    {
    $query = mysql_query($query);
    $_SESSION['queries_made'] = $_SESSION['queries_made'] + 1;
    return $query;
    }
    
    
    function sqlesc($x) 
    {
    return "'".mysql_real_escape_string($x)."'";
    }
    
    
    function unesc($x) 
    {
      	if (get_magic_quotes_gpc())
           	return stripslashes($x);
       	return $x;
    }
    
    
    function curdate()
    {
    $curdate = date('d.m.Y H:i:s');
    return $curdate;
    }
    
    
    function mkglobal($vars) 
    {
    if (!is_array($vars))
           	$vars = explode(":", $vars);
    foreach ($vars as $v) 
    	{
    		if (isset($_GET[$v]))
    			$GLOBALS[$v] = unesc($_GET[$v]);
    		elseif (isset($_POST[$v]))
    			$GLOBALS[$v] = unesc($_POST[$v]);
    		else
    			return 0;
    	}
    return 1;
    }
    
    
    function validusername($username)
    {
    if ($username == "")
    	return false;
    
    // The following characters are allowed in user names
    $allowedchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.";
    
    for ($i = 0; $i < strlen($username); ++$i)
    if (strpos($allowedchars, $username[$i]) === false)
    	return false;
    
    return true;
    }
    
    
    function checklogin()
    {
    unset($GLOBALS['me']);
    $_SESSION['islogged'] = md5('no');
    $curid = 0 + $_SESSION['uid'];
    $curhash = $_SESSION['hashed'];
    $user_res = sql_query("SELECT * FROM users WHERE id = $curid")or die(mysql_error());
    if(mysql_num_rows($user_res) == 1)
    	{
    	$row = mysql_fetch_assoc($user_res);
    	$db_user_hashedpass = base64_decode($row['hashedpass']);
    	if($curhash == $db_user_hashedpass)
    		{
    		$GLOBALS['me'] = $row;
    		$_SESSION['isloggedon'] = md5('yes');
    		$now = sqlesc(curdate());
    		sql_query("UPDATE users SET last_online = $now WHERE id = $curid")or die(mysql_error());
    		}
    	}
    }
    
    
    function isloggedon()
    {
    $state = false;
    if($_SESSION['isloggedon'] == md5("yes"))
    	{
    	$state = true;
    	}
    else
    	{
    	$state = false;
    	}
    return $state;
    }
    
    
    function errmsg($title = "Error", $text = "Random error occured")
    {
    if(!headers_sent())
    	{
    	draw_head("Error");
    ?>
    <H2><? echo "$title"; ?></h2>
    <p>
    <span style="color: #d82a2a;"><? echo "$text"; ?></span>
    </p>
    <?
    	draw_foot();
    	break;
    	}
    else
    	{
    ?>
    <H2><? echo "$title"; ?></h2>
    <p>
    <span style="color: #d82a2a;"><? echo "$text"; ?></span>
    </p>
    <?
    	}
    }
    
    
    function msg($title = "A message", $text = "You now see a message!")
    {
    if(!headers_sent())
    	{
    	draw_head("Message");
    ?>
    <H2><? echo "$title"; ?></h2>
    <p>
    <span style="color: #42d82a;"><? echo "$text"; ?></span>
    </p>
    <?
    	draw_foot();
    	break;
    	}
    else
    	{
    ?>
    <H2><? echo "$title"; ?></h2>
    <p>
    <span style="color: #42d82a;"><? echo "$text"; ?></span>
    </p>
    <?
    	}
    }
    

     

     

    Tad varbūt kāds no jums varēs pamanīt to, ko es esmu palaidis garām + varēsiet pēc pilnas programmas "nolikt" manu kodu! :D

     

    ps. izlaidu draw_head() un draw_foot() funkcijas. Kā jau var saprast, tās uzzīmē lapas galveni un kājeni!

  7. Banneru izvadei gan tev ir tāda interesanta pieeja...

     

    * Sāksim ar $count mainīgo - kāda šo mainīgo pēc cikla pārdefinēt, iesetojot tādu pašu vērtību, kāda viņam jau ir?

    * Priekš kam vispār tev ciklā to $count skatīt? $var[] = $value; un vēl labāk būtu izmantot daudz dimensiju masīvu -> $arr[] = array('url' => $url...);

    * Random atslēgu varam iegūt ar array_rand() funkciju, tāds mainīgais kā $count vispār nebūs vajadzīgs

    * Ja jau tev vajadzīgs tikai viens ieraksts, tad kāpēc selektēt visus? ORDER BY RAND() LIMIT 1

     

     

    Nu esmu amatieris php valodā un rakstu kā pats māku, tāpēc jau arī kautko cenšos ielikt te, vai pajautāt, lai noskaidrotu, kā labāk ;)

     

    ps. Par to visu ierakstu selektēšanu - vajag noskaidrot, cik banneri ir pievienoti datubāzē, tāpēc tiek paņemti visi un tad saskaitīti. Ja ir vienkāršāks veids - lūdzu paskaidro man

  8. sql:

     

    CREATE TABLE IF NOT EXISTS `ads` (
     `id` int(10) NOT NULL auto_increment,
     `name` varchar(100) NOT NULL,
     `url` varchar(100) NOT NULL,
     `alt` varchar(100) NOT NULL,
     `img` text NOT NULL,
     PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=23 ;
    

     

     

    banneru pievienošana un dzēšana (pieņemot kā banner.php)

     

    $delad = "delad";
    $takead = "takead";
    
    $act = $_GET['act'];
    
    if($act == $delmad)
    {
    $id = 0 + $_GET['id'];
    mysql_query("DELETE FROM mads WHERE id = $id")or die(mysql_error());
    header("Location: banner.php");
    }
    
    elseif($act == $takemad)
    {
    $name = sqlesc($_POST['name']);
    $url = sqlesc($_POST['url']);
    $alt = sqlesc($_POST['alt']);
    $img = sqlesc($_POST['img']);
    mysql_query("INSERT INTO mads (name , url , alt , img) VALUES ($name , $url , $alt , $img)")or die(mysql_error());
    header("Location: banner.php");
    }
    
    $res = mysql_query("SELECT * FROM ads ORDER BY id")or die(mysql_error());
    $total = mysql_num_rows($res);
    $count = 0;
    if($total >= 1)
    {
    while($arr = mysql_fetch_array($res))
    	{
    	echo"<a href=\"".$arr['url']."\"><img src=\"".$arr['img']."\" alt=\"".$arr['alt']."\" /></a><br/>";
    	$id = $arr['id'];
    	echo"<a href=\"banner.php?act=delad&id=$id\">Delete this advert</a>";
    	$count = $count + 1;
    	if($total > $count)
    		{
    		echo"<br/><br/><hr><br/>";
    		}
    	}
    }
    else
    {
    echo"No adverts added";
    }
    
    echo"</div>";
    echo"<h2>Make new advert</h2>";
    echo"<div class=\"block\">";
    echo"<form method=\"post\" action=\"banner.php?act=takead\">";
    echo"<table><tr><td>";
    echo"<input type=\"text\" name=\"name\" value=\"Type in name of this ad\" size=\"50\" maxlength=\"100\" />";
    echo"</td></tr><tr><td>";
    echo"<input type=\"text\" name=\"img\" value=\"Type in url of image\" size=\"50\" />";
    echo"</td></tr><tr><td>";
    echo"<input type=\"text\" name=\"url\" value=\"Type in url of this ad\" size=\"50\" maxlength=\"100\" />";
    echo"</td></tr><tr><td>";
    echo"<input type=\"text\" name=\"alt\" value=\"Type in alt text for this ad\" size=\"50\" maxlength=\"100\" />";
    echo"</td></tr><tr><td>";
    echo"<input type=\"submit\" value=\"Send\" />";
    echo"</td></tr></table></form>";
    echo"</div>";
    

     

     

    Un banneru parādīšana:

     

    $ad_res = mysql_query("SELECT * FROM ads ORDER BY id")or die(mysql_error());
    
    if(mysql_num_rows($ad_res) >= 1)
    
    {
    
    $url = array();
    $img = array();
    $alt = array();
    
    $count = 0;
    
    while($ad_arr = mysql_fetch_array($ad_res))
    	{
    	$count = $count + 1;
    	$url[$count] = $ad_arr['url'];
    	$img[$count] = $ad_arr['img'];
    	$alt[$count] = $ad_arr['alt'];
    	}
    
    $count = mysql_num_rows($ad_res);
    
    $chosen = mt_rand(1, $count);
    
    $adurl = $url[$chosen];
    $adimg = $img[$chosen];
    $admsg = $alt[$chosen];
    
    echo"<h2>Our supporters:</h2>";
    echo"<div class=\"block\">";
    echo"<table style=\"margin:auto;\"><tr><td>";
    echo"<a href=\"$adurl\" target=\"_blank\"><img border=\"0\" src=\"$adimg\" alt=\"admsg\" /></a>";
    echo"</td></tr></table></div><br/>";
    
    }
    

     

     

     

    ps. Kad rakstīju skriptu, man viņš bija pielāgots manam webam un bija pa vairākiem failiem. Pašlaik visu saliku šādi + noņēmu funkciju, kas nočekjoa, vai lietotāji ir ielogojies kā administrātors. To visu lieciet klāt paši. Ceru, ka neko neaizmirsu piebilst!

  9. Sveiki. Man ir viens kods, kur lietotājs var ar radio inputiem izvēlēties vienu no trīs iespējām. Pēctam nākamajai lapa, kas saņem izvēli ar $_POST šī izvēle ir jāsalīdzina ar vienu no trim iespējām. Ja ar nevienu no iespējām nesakrtīt, tad izmet erroru. Man bija kas līdzīgs šim, bet man vislaik meta erroru:

     

    	$type = $_POST['type'];
    	if($type != "str1" || $type != "str2" || $type != "str3")
    		{
    		stderr("Error", "$type - invalid");
    		}
    

     

    Neatkarīgi no tā, vai $type bija kāds no iespējamajiem variantiem (str1, str2 vai str3), errors tika izmests tikuntā... Kas ir nepareizi?

     

     

    ps. Neesmu jau gluži pro un vienkārši meklēju palīdzību, lai šis īsais kods nobūtu jāpārvērš garākā...

  10. Sveiki. Man lapā ir uztaisīts viens lauks, kur informācija tiek attēlota ar slīdošu textu (marquee). Man vajadzētu panākt tā, lai uzlaižot ar kursoru uz šī lauka, teksts sāktu slīdēt lēnāk + parādītos vairāki iespējas linki ar kuriem teksts tiktu aiztīts līdz vietai, kur ir ievietota konkrēta atzīme (visu marquee tekstu var sadalīt vairākos div'os pēc kuru class neimiem tiktu atpazīts uz kuru vietu tam ir jāaiztinas). Vēl būtu vēlams, lai viss marquee tiktu attēlots tādā platumā, cik tam ir atvēlēts no vietas, kur beidzas parastais teksts, līdz malai, kur beidzas div's.

     

    Ja kautko no via šī nesapratāt, lūdzu tā arī pasakiet nevis sāciet kko d*rst par to!

  11. Drošivien problēma ir izrunāta neskaitāmas reizes, bet tomēr vēlos uzzināt, kas manā kodā ir nepareizs:

     

    <?php
    require "core/core.php";
    
    dbconn();
    
    head("Charts");
    
    echo"<h2>Charts</h2>";
    
    $res = mysql_query("SELECT * FROM poll WHERE type = q ORDER BY id DESC");
    if (mysql_num_rows($res) > 0) {
    while($array = mysql_fetch_array($res)) {
    $id = $array['id'];
    echo"<div class=\"block\">";
    $ip = sqlesc(getip());
    $uvres = mysql_query("SELECT * FROM poll WHERE type = a AND ip = $ip");
    if (mysql_num_rows($uvres) < 3) {
    echo"<h3>".$array['question']."</h3><form>";
    $pores = mysql_query("SELECT * FROM poll WHERE id = $id AND type = o");
    while($poarr = mysql_fetch_array($pores)) {
    echo"<input name=\"poll_$id_option\" type=\"radio\"> ".$poarr['option']."<br/>";
    }
    echo"<input type=\"submit\" name=\"Submit vote\"></form>";
    }
    else
    {
    echo"<h3>".$array['question']."</h3>";
    $vores = mysql_query("SELECT * FROM poll WHERE type = o AND id = $id");
    while($voarr = mysql_fetch_array($vores)) {
    $option = $voarr['option'];
    $uares = mysql_query("SELECT * FROM poll WHERE type = a AND option = $option");
    $votes = 0;
    while($uaarr = mysql_fetch_array($uares)) {
    $votes = $votes + 1;
    }
    echo"$option - $votes votes on this!<br/>";
    }
    echo"You have already voted on this enaugh times!";
    }
    }
    }
    else
    {
    echo"<h3>No polls</h3>";
    }
    
    foot();
    
    ?>

     

    CREATE TABLE IF NOT EXISTS `poll` (
     `id` int(10) default NULL,
     `type` enum('q','o','a') default NULL,
     `question` varchar(200) default NULL,
     `option` varchar(200) default NULL,
     `ip` varchar(100) default NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

     

     

    Izpildot so kodu, viss ko saņemu ir:

     

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\web\apache\htdocs\web2\top.php on line 11

    No polls

  12. Lai darbotos sesijas, lietotājs kautkā ir jāidinficē. Vispopulārākais veids ir sūtīt kukiju, kurā glabāsies sesijas identifikators. Tā ka īsti no kukijiem tu vaļā netiksi, ja lietosi sesijas. Protams, ir cits veids kā darbināt sesijas - katram urlim galā kabināt to sesijas identifikatoru, bet nu tas imho izskatās neglīti - katra lapas linka galā desmiti random simboli.

     

     

    Domājams, ka tas ar to kukiju būtu tākā labāk... :D Bet konkrētāk par šo gadījumu? Vai ir daudz jāpārraksta kods, lai visu pārveidotu?

     

     

    EDIT: tak, tikai tagad pamanīju, ka šajā forumā ir topiks par sesijām... :D Paskatīšu un palasīšu. Moš izdomāšu, kā panakt vēlamo. Bet ja nē - ceru, ka šeit kāds būs ierakstījis ko noderīgu!

  13. Sveiki. Pirmāmkārtam es ļoti ceru, ka pareizajā sadaļā būšu iepostojies, jo te viņu ir daudz :D Tātad, mans jautājums sekojoš: Kā atbrīvot savu web lapu no kukijiem un pārveidot to visu uz session? Vai tas ir viegli / grūti? Vai ir daudz jāpārraksta kods, vai pietiek izmaninīt tikai tās funkcijas, kas man nodrabojas ar kukiju apstrādi? Un kā tas (session) vispār darbojas? Es tikai zinu kā tas izskatās teorētiski, bet kā tas izskatās php kodā es nezinu, jo nav bijusi saskarsme ar tādiem! Ja var, tad lūdzu ar kādiem maziem piemēriem! ;)

     

     

    Nedaudz konkrētāk par manu sistēmu: tātad man web lapā ielogojas ar kukijiem. To paveic funkcija, kas kukijā saglabā lietotāja id un passhash (vēlreiz nohašotu). Tad katrā lapas ielādē tiek izpildīta funkcija, kas savāc no lietotāja kukiju (ja tāds ir), savāc no datubāzes visu info par lietotāju ar id kāds bija kukijā, tad athašo lietotāja passhashu no kukija un salīdzina to ar lietotāja passhashu no datubāzes. Ja viss veiksmīgi, tad ļauj ielādēt tālāk galveno lapu nodefinējot lietotāja info no datubāzes kā $CURUSER. Un trešā funkcija attiecīgi izpildās, kad lietotājs izlogojās, izdzēšot kukija info!

     

    Nezinu, cik tehniski pareizi šo visu uzrakstīju, bet neesmu eksperts, bet drīzāk tāds kā pašmācības amatieris! Ja kāds var palīdzēt - būšu ļoti pateicīgs. Ja gribat redzēt kādu no visiem šiem kodiem (ja tas var palīdzēt jums paskaidrot kko), tad droši prasiet!

     

     

    Paldies jau iepriekš, Hennikenno! ;)

  14. Sveiki. Te atkal es! Šoreiz atkal problēma ar datu sakārtošanu. Respektīvi man ir sekojoš kverijs:

     

    $res = mysql_query("SELECT id, username, class, donor, warned FROM users WHERE last_access >= 900 ORDER BY class DESC") or print(mysql_error());

     

    Viņš paņem no datubāzes visus lietotājus, kuri ir bijuši aktīvi pēdējās 15 min un sakārto pēc klases (dilstošā secībā). Bet es gribu panākt tā, lai katru klasi viņš sakārto pēc lietotājvārda un augošā secībā. Mēģināju šādi, bet nesanāca:

     

    $res = mysql_query("SELECT id, username, class, donor, warned FROM users WHERE last_access >= 900 ORDER BY class DESC AND username ASC") or print(mysql_error());

     

    izmantojot šādu kodu man izmeta šādu erroru:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND username ASC' at line 1

    Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in D:\web\apache\htdocs\index.php on line 70

     

    Kur ir problēma?

     

    EDIT: Viskārtībā problēma atrisināta! ;)

  15. Sveiki! Man ir neliela problēma, kurai vēlētos atrast risinājumu! Man ir sekojoš kods:

     

    if ($act == '1') {
    $res = mysql_query("SELECT inviter, inviterid FROM reftable ORDER BY inviter DESC") or sqlerr(__FILE__, __LINE__);
    print("<table border=1 cellspacing=0 cellpadding=5>\n");
    while ($arr = mysql_fetch_assoc($res))
    {
    print("<tr class=tableb><td style=background-color:$color align=left><font color=black><a href=userdetails.php?id=".$arr['inviterid']."><b>".$arr['inviter']."</b></a></td></tr>\n");
    }
    print("</table>");
    
    die;
    }

     

    Kods no "reftable" tabulas izvelk visus "inviterus" un saliek viņus alfabēta secībā! Bet to jau jūs drošivien paši sapratāt. Man vajag izveidot tā, lai ja "inviteri" atkārtojas (piem ir vairāki "inviteri" - Hennikenno), tad lai nevis parāda viņus visus atsevišķi, bet lai viņus uzrāda kā vienu inviteru un klāt pieliek ciparu, cik tādu kopā ir + vēl sakārto kārtībā pēc daudzuma!

×
×
  • Create New...