Archief - MySQL&PHP: Errors

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

HelloApu

Legacy Member
Hallo, dit is mijn code
PHP:
<?php
 include("connect.php");
 if( $_GET['pag'] == "1" ) 
 {
 /* date veranderen */
 /* IP code toevoegen */
  	$tijd['1'] = time() -  120;
 	$query['1'] = mysql_query("SELECT time,ip FROM topix". $_GET['topixid'] ." WHERE time > '".$tijd['1']."' AND ip = '".$clientip."'");
	if ( mysql_num_rows($query['1']) == 0 )
	{
		/* Replacement strings invullen */ 
		$naam = str_replace('>','', $_POST['bericht']);
		$naam = str_replace('<','', $naam );
		$naam = str_replace('&','', $naam );
		$naam = str_replace('\"','', $naam );
		$naam = str_replace('\'','', $naam );
		$email = str_replace('>','', $_POST['bericht']);
		$email = str_replace('<','', $email );
		$email = str_replace('&','', $email );
		$email = str_replace('\"','', $email );
		$email = str_replace('\'','', $email );
		$bericht = str_replace('>','', $_POST['bericht']);
		$bericht = str_replace('<','', $bericht );
		$bericht = str_replace('&','', $bericht );
		$bericht = str_replace('\"','', $bericht );
		$bericht = str_replace('\'','', $bericht );
		$bericht = str_replace('[kleur=rood]','<font color=\"#FF0000\">', $bericht );
		$bericht = str_replace('[/kleur]','</font>', $bericht );
		$bericht = str_replace('[kleur=groen]','<font color=\"#00FF00\">', $bericht );
		$bericht = str_replace('[/kleur]','</font>', $bericht );
		$bericht = str_replace('[kleur=blauw]','<font color=\"#0000FF\">', $bericht );
		$bericht = str_replace('[/kleur]','</font>', $bericht );
		$bericht = str_replace('[kleur=wit]','<font color=\"#FFFFFF\">', $bericht );
		$bericht = str_replace('[/kleur]','</font>', $bericht );
		$bericht = str_replace('[kleur=zwart]','<font color=\"#000000\">', $bericht );
		$bericht = str_replace('[/kleur]','</font>', $bericht );
		$bericht = str_replace('[kleur=grijs]','<font color=\"#CCCCCC\">', $bericht );
		$bericht = str_replace('[/kleur]','</font>', $bericht );
		$bericht = str_replace('[kleur=oranje]','<font color=\"#999900\">', $bericht );
		$bericht = str_replace('[/kleur]','</font>', $bericht );
		$bericht = str_replace('[vet]','<b>', $bericht );
		$bericht = str_replace('[/vet]','</b>', $bericht );
		$bericht = str_replace('[schuin]','<i>', $bericht );
		$bericht = str_replace('[/schuin]','</i>', $bericht );
		$bericht = nl2br($bericht);
		
		mysql_query("INSERT INTO topix".$_GET['topixid']." ( time,id,naam,tijd,email,bericht,ip ) VALUES ( '". time() ."','".$id."','".$naam ."','".date("H:s d/m/y")."','".$email."','".$bericht ."','". $clientip ."') ");
	}
	else
	{
		echo "U kan maar om de 2 minuten een bericht plaatsen.";
	}
	$_POST['pag'] = 0;
}
?>
<!-- Pagina -->



<!-- / pagina / -->
<!-- Berichtjes -->
<?PHP 
 	$query['2'] = mysql_query("SELECT time,id,naam,tijd,email,bericht FROM topix".$_GET['topixid']." ORDER BY time");
	while( $resultaat['2'] = mysql_fetch_array($query['2']) )
	{
		echo "tablestructuur";
	}
	echo "
	<form action=\"test.php?pag=1&topixid=".$topixid."\">
	<table border=\"0\">
	 <tr>
	 	<td>
			<b>Naam*:</b>	
		</td>
		<td>
			<input type=\"text\" name=\"naam\">
		</td>
	 </tr>
	 <tr>
	 	<td>
			<b>E-mail:</b>
	 	</td>
		<td>
			<input type=\"text\" name=\"email\">
		</td>
	 </tr>
	 <tr>
	 	<td colspan=\"2\">
			<b>Bericht*:</b>
		</td>
	 </tr>
	 <tr>
		<td colspan=\"2\">
			<textarea name=\"bericht\" rows=\"5\" cols=\"50\"></textarea>
		</td>
	 </tr>
	 <tr>
	 	<td colspan=\"2\">
			<input type=\"submit\" value=\"post\">
			<input type=\"hidden\" name=\"pag\" value=\"1\">
		</td>
	 </tr>
	</table>
	";
?>
<!-- / berichtjes / -->
<!-- pagina -->

<!-- / pagina / -->
en dit is de pagina: www.gwek.be/PHPVG/topix01/test.php?topixid=1

En ik weet niet waarom ik die errors krijg :s , ik denk dat het is dat het die topixid niet doorgeeft maar zoals ik dat zie doet dat het wel :s

Cakeman

Legacy Member
mysql_query("INSERT INTO topix".$_GET['topixid'] ...);
Gaat gij voor elke post een nieuwe table aanmaken?

En waarom werkt ge met arrays voor uw query en resultaat variabelen?

$_POST['pag'] = 0;
???

Als ik u was zou toch eens een PHP manual lezen. Ik denk dat er hier véél PHP kenners gaan van flippen...

HelloApu

Legacy Member
wrm zou $_POST['pag'] = 0; nie gaan ? eigenlijk meot ik gewoon die $_POST legen omdat als ze op hun refresh knop gaan rammen dat het dan gewoon het gastenboek gaat weergeven en niet elke keer een berichtje gaat posten. + waarom zou ik niet met arrays mogen werken ?

HelloApu

Legacy Member
en euhm, in de link als er niet gepost is staat er: ...?topixid=1 , en dan geeft et geen error, in de link als er wel gepost is staat er ...?topixid=1 en dan geeft et een error, da begrijp ik nu is ni :s

Cakeman

Legacy Member
Wanneer ge post is uw $_POST['pag'] wel gelijk aan 1 dus dan gaat em andere code uitvoeren.

HelloApu

Legacy Member
bedoelde bij die eerste if ? wss ni want da doet em juist ni :s

Dece

Legacy Member
Ontopic blijven aub!

leer debuggen:
echo $_GET['...'];
enz

btw u if (mysql_num_rows($query) ==0) {
die gade uitvoeren als ge geen resuitaten vind. u replacements hebben dus geen doel.... kvermoedd dat ge mysql_num_rows($query) > 0 bedoeld

killgore

Legacy Member
HelloApu zei:
wrm zou $_POST['pag'] = 0; nie gaan ? eigenlijk meot ik gewoon die $_POST legen omdat als ze op hun refresh knop gaan rammen dat het dan gewoon het gastenboek gaat weergeven en niet elke keer een berichtje gaat posten. + waarom zou ik niet met arrays mogen werken ?
ik ga hier gewoon alle fouten/dommigheden posten tot ik het beu ben, ik zie geen fout op je pagina;).

zelfs al leeg je post, als je op refresh ramt gaat de browser (met waarschuwing) gewoon je originele postarray terugsturen, een header("Location: ..") is veel beter in dit geval (of andere redirections naar een page waar geen post-vars worden meegestuurd).
Ten tweede: unsetten doe je (logisch) met de functie .... UNSET
ten derde: een str_replace aanvaard arrays, dat zou hier je code veeeeel compacter, duidelijker EN sneller kunnen ken imho. (meer info op http://be2.php.net/str_replace )
ten vierde (getting depressed by the moment): $tijd['1'] = time() - 120; --> wrom 1 quoten? ik denk dat je hier VEEL beter af bent met een gewoon int var $tijd[1]. Please, da heb ek u al denk ik 2-3 keer gezegd: leer het verschil eens tussen STRINGS en NUMERIEKE waarden.
5: if( $_GET['pag'] == "1" ) ---> altijd eerst isset()-check doen op een globale variabele voor je hem evalueert/gebruikt/echo't/... (isset: http://be2.php.net/isset )
6: Je databasestructuur trekt op de klote! Voor elk topix (topic prolly) ding een nieuwe table aanmaken, goe bezig!!!
7: waarom str_replace('<','',$tekst)??? str_replace('<','&lt;',$tekst) zal denk ik een veel gebruiksvriendelijker resultaat geven :s.
8:
PHP:
    while( $resultaat['2'] = mysql_fetch_array($query['2']) )
    {
        echo "tablestructuur";
    }
Ik gok dat dit debugging is (anders zou ek u aanraden ONMIDDELIJK met php te stoppen, eigenlijk om eerlijk te zijn: stop maar met php). Als het al debugging is: in die echo staat niks, maar ook niks nuttig, bij echo's vo debugging is het meestal de bedoeling dat je iets nuttig laat zien waarmee je de fout vindt he!
9: HTML code zo veel mogelijk van je php scheiden, niet echo'en, gebruik een <?php en ?> meer ipv lange stukken html te echo-en!!!!!!! (dit heb ik al bijna in elke reply op jouw belachelijke vragen gezet).
10: Waar vind jij op het einde de var $topixid, ik denk dat dit nog steeds een $_GET moet zijn!!! (ik heb het over deze code: )
PHP:
  echo " <form action=\"test.php?pag=1&topixid=".$topixid."\">
11: ALs je dan toch niet naar men raad luistert en die echo's blijft gebruiken, gebruik dan ' als string aanduider, dan moet je al die " in de html code niet meer escapen!

Als je nu nog niet luistert naar men posts (das al de zoveelste langere reply op jou topics die ik geef) en weer een script met kutcode post vraag ik een ban aan en ik denk wel dat ik zeker steun van enkele mensen op dit forum zal krijgen!
@dece: die num rows is bij mijn weten ong. het enigste dat klopt, want hij doet daar gewoon een check of het al meer dan 2 min. geleden was dat je iets gepost hebt.

icerulez

Legacy Member
ow en appu, scheid eens je SQL string van de querry zelf. is veel overzichtelijker en gemakkelijker voor te debuggen.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan