shoutbox

Status
Niet open voor verdere reacties.

Barry_127

Gebruiker
Lid geworden
20 jan 2003
Berichten
478
hallo iedereen

ik heb een shoutbox gemaakt in PHP maar inplaats van dat de berichten na elkaar komen komen ze onder elkaar te staan :S

weet iemand hier misschien de oplossing voor ik heb index.php in een rar bijgevoegd waar dus het script in staat

zou iemand er svp even naar willen kijken en de fout wijzigen?
 
wat wil je precies?! de volgorde waarin de berichten komen veranderen?

EDIT: of alle berichten op andere pagina?
 
Laatst bewerkt:
ja die had ik al gezien mooi werk trouwens maar ik ben een doe-het-zelfer :P ik wil het zelf leren

na nog wat experimenteren is het mij gelukt het lag aan de marquee die moet je niet zetten in de while lus maar erbuiten ;)

maar wel bedankt voor de hulp

Jpeetje-> nog ff een vraagje aan je, hoe maak ik een pagina waarop je kan inloggen om daarna berichten in een database te zetten??
 
Geplaatst door Barry_127
ja die had ik al gezien mooi werk trouwens maar ik ben een doe-het-zelfer :P ik wil het zelf leren
:thumb: houwe zo :)

JPeetje-> nog ff een vraagje aan je, hoe maak ik een pagina waarop je kan inloggen om daarna berichten in een database te zetten??

misschien....zoiets ? :
PHP:
<?
session_start();
error_reporting(E_ALL);
/////////////////////////////////////////////
///////////////// GEGEVENS //////////////////
/////////////////////////////////////////////

$sql_host = "localhost";
$sql_user = "";
$sql_pass = "";
$database = "";
$tabel = ""; // de tabel met users
// ik ga er vanuit dat in deze tabel users een kolom 'user' (gebruikersnaam) en een kolom 'pass' (wachtwoord) is


// afblijven :P
$connect = mysql_connect($sql_host,$sql_user,$sql_pass) or die(mysql_error());
mysql_select_db($database,$connect) or die(mysql_error());

if((isset($_SESSION["suser"]) == TRUE) AND (isset($_SESSION["spass"]) == TRUE))
{
$query = "SELECT * FROM " . $tabel . " WHERE user = '" . $_SESSION["suser"] . "' AND pass = '" . $_SESSION["spass"] . "'";
$result = mysql_query($query) or die(mysql_error());
  if(mysql_num_rows($result) == 0)
  {
  session_unset();
  session_destroy();
  die("Kon gebruikersnaam / wachtwoord niet vinden in database...log opnieuw in");
  }
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
/////////// SHOUTBOX FORMULIER ZELF HIER PLAKKEN /////////////
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
echo "Hier het formulier voor de shoutbox...";
echo "<br>Gewoon weer <b>if(count(\$_POST) > 0)</b> gebruiken en dan invoegen in de database ... moet je zelf kunnen lijkt me ;)";
}
else
{
  if(count($_POST) > 0)
  {
    if((isset($_POST["user"]) == TRUE) AND (isset($_POST["pass"]) == TRUE))
    {
    $user = htmlspecialchars($_POST["user"]);
    $pass = htmlspecialchars($_POST["pass"]);
    $query = "SELECT * FROM " . $tabel . " WHERE user = '" . $user . "' AND pass = '" . $pass . "'";
    $result = mysql_query($query) or die(mysql_error());
      if(mysql_num_rows($result) == 0)
      {
      echo "Foute gebruikersnaam / wachtwoord";
      }
      else
      {
      $_SESSION["suser"] = $user;
      $_SESSION["spass"] = $pass;
      echo "Je bent nu ingelogd...Klik op vorige of zo...";
      }
    }
    else
    {
    echo "<form action=\"" . $_SERVER["PHP_SELF"] . "\" method=\"post\">\n";
    echo "Gebruikersnaam: <input type=\"text\" name=\"user\" size=\"30\"><br>\n";
    echo "Wachtwoord: <input type=\"password\" name=\"pass\" size=\"30\">";
    echo "<input type=\"submit\" value=\"Log in !\">";
    echo "</form>";
    }
  }
  else
  {
  echo "<form action=\"" . $_SERVER["PHP_SELF"] . "\" method=\"post\">\n";
  echo "Gebruikersnaam: <input type=\"text\" name=\"user\" size=\"30\"><br>\n";
  echo "Wachtwoord: <input type=\"password\" name=\"pass\" size=\"30\">";
  echo "<input type=\"submit\" value=\"Log in !\">";
  echo "</form>";
  }
}
?>
succes :thumb:
 
Laatst bewerkt:
wow kun je het iets meer uitleggen ben nog niet 100% in php dit is wat ik eerst heb gemaakt (gaat in dit geval om een news systeem)

PHP:
<?php

include ("connect.php");
$date = date("j-n-Y");

$query = "SELECT Name, Pass FROM Pass";
$result = mysql_query($query) or die("FOUT: " . mysql_error());

while($show = mysql_fetch_object($result))
if($gebruikersnaam == $show->Name and $wachtwoord == $show->Pass)
{
	?>
	<html>
		<head>
			<title>Barry's Lyrics News admin</title>
		</head>
		<body>
			<?php
			if(!empty($_POST))
			{
				$_POST['title'] = addslashes($title);
				$_POST['news'] = addslashes($news);
				
				$news = nl2br($news);
				
				$sql = "INSERT INTO News SET Date='$date', Title='$title' News='$news'";
				$query = mysql_query($sql) or die("Het nieuws kon niet gepost worden");
				echo "<b>News toegevoegd</b>";
			}
			else
			{
				?>
				<form name="Newsform" method="post" action="<?php echo $PHP_SELF;?>">
					Titel: <br><input type="text" name="title"><br>
					Bericht: <br><textarea name="beri" rows="8" cols="41"></textarea><br>
					<input type="submit" name="submit" value="submit"><input type="reset" name="reset" value="reset"><br>
				</form>
				<?php
			}
			?>
		</body>
	</html>
	<?php
}
else
{
	?>
	<html>
		<head>
			<title>Inloggen op News-admin</title>
		</head>
		<body>
			<?php
			echo "<form method='post'>\n";
			echo "Gebruikersnaam: <input type=text name='gebruikersnaam'><br>\n";
			echo "Wachtwoord:&nbsp;&nbsp;&nbsp;&nbsp; <input type=password name='wachtwoord'><br>\n";
			echo "<br><input name='login' type='Submit' value='Login'>\n";
			echo "</form></center>";
			?>
		</body>
	</html>
	<?php
}
?>

maar na het inloggen krijg ik dit dus te zien:
Het nieuws kon niet gepost worden
 
uhm...nou ik kan dat script wel gaan verbeteren, maar dan wordt 't echt een totaal ander script :D
ik zou zeggen: zet eens..
PHP:
<?php
error_reporting(E_ALL);
// en de rest
...boven je script en je zal zien wat er allemaal aan mankeert...want op dit moment zit het script vol met fouten ;)
error_reporting(E_ALL) zorgt ervoor dat je ALLE meldingen, errors, waarschuwingen en notices ziet ;)
 
iemand anders heeft me ook al op weg geholpen maar het werkt nog steeds niet:

PHP:
<?php
include ("connect.php");
$date = date("j-n-Y");

$show = "barry";
$show2 = "webmaster";

if($_POST["gebruikersnaam"] == $show and $_POST["wachtwoord"] == $show2) //zorg dat je $_POST gebruikt. Anders werkt deze script alleen op lycos en een aantal andere servers. Bij mij zou het zonder dat $_POST niet werken. (Veiligheidsredenen)
{
	?>
	<html>
		<head>
			<title>Barry's Lyrics News admin</title>
		</head>
		<body>
			<?php
			if(!isset($_POST))
			{
				$_POST['title'] = addslashes($title);
				$_POST['news'] = addslashes($news);
				
				$news = nl2br($news);
				
				$sql = "INSERT INTO News SET Date='$date', Title='$title', News='$news'"; //<-- controleer deze regel eens: Title='$title' News='$news' <-- Komma zie: Title='$title', News='$news'
				$query = mysql_query($sql) or die("Het nieuws kon niet gepost worden");
				echo "<b>News toegevoegd</b>";
			}
			else
			{
				?>
				<form name="Newsform" method="post" action="<?php echo $PHP_SELF;?>">
					Titel: <br><input type="text" name="title"><br>
					Bericht: <br><textarea name="beri" rows="8" cols="41"></textarea><br>
					<input type="submit" name="submit" value="submit"><input type="reset" name="reset" value="reset"><br>
				</form>
				<?php
			}
			?>
		</body>
	</html>
	<?php
}
else
{
	?>
	<html>
		<head>
			<title>Inloggen op News-admin</title>
		</head>
		<body>
			<?php
			echo "<form method='post'>\n";
			echo "Gebruikersnaam: <input type=text name='gebruikersnaam'><br>\n";
			echo "Wachtwoord:&nbsp;&nbsp;&nbsp;&nbsp; <input type=password name='wachtwoord'><br>\n";
			echo "<br><input name='login' type='Submit' value='Login'>\n";
			echo "</form></center>";
			?>
		</body>
	</html>
	<?php
}
?>

en als ik die
PHP:
if(!isset($_POST))

verander in:

PHP:
if(!empty($POST))

dan plaatst hij in een keer een leeg bericht in de database terwijl in de mysql query duidelijk stond NOT NULL

en krijg ik de melding te zien:
News toegevoegd
 
dat $_POST[] gebruiken is idd goed gezien door die hulp van je, zoals je voorheen deed was slordig
de reden ervan is echter niet om veiligheidsredenen, maar om een instellingsreden...in het configuratiebestand van php kun je instellen of je autoglobals (of superglobals ? ik haal ze vaak door mekaar ...) aan of uit wil hebben staan. Heb je deze uit staan, dan moet je $_POST of $HTTP_POST_VARS (bijna 't zelfde...) gebruiken.
PHP:
$sql = "INSERT INTO News SET Date='$date', Title='$title', News='$news'"; //<-- controleer deze regel eens: Title='$title' News='$news' <-- Komma zie: Title='$title', News='$news'
is nog niet helemaal goed...geen scheiding van variabelen en strings...en de regel zelf is niet helemaal zoals ik hem gebruik .. :)
PHP:
$sql = "INSERT INTO News (Date,Title,News) VALUES ('" . $date . "','" . $title . "','" . $news . "')";

dan nog zo'n auto/superglobal ...
PHP:
<?php echo $PHP_SELF;?>
hoe het hoort:
PHP:
<?php echo $_SERVER["PHP_SELF"]; ?>

dan het belangrijkste gedeelte...wat je écht fout doet :p
if(!isset($_POST))
dit zal, tenzij je met de serversoftware loopt te prutsen, áltijd zo zijn...
isset() => controleert of een waarde BESTAAT
! => empty, wordt hier gebruikt als 'not'
if(not isset($_POST))...

wat je dus vraagt is of $_POST niet bestaat...
$_POST bestaat altijd..evenals $_GET, $_SERVER, $_COOKIE en $_SESSION....
al deze voorgedefinieerde variabelen zijn array's...
array's kunnen leeg zijn, wat de meesten ook zijn als ze niet gebruikt worden ($_POST, $_GET, $_COOKIE en $_SESSION)..
als je dan gaat controleren of ze een waarde bevatten:
if(!empty($_POST))
dan controleer je of $_POST NIET leeg is...als je dus $_POST["gebruikersnaam"] hebt, dan is hij niet leeg.
persoonlijk gebruik ik count() voor deze controle...count() is een functie die het aantal waarden in een array telt
PHP:
if(count($_POST) > 0)
{
// er zijn dingen gepost
}
else
{
// er zijn geen dingen gepost
}

daarom werkt je php script niet als je !isset gebruikt...
je moet kijken of er waarden inzitten, daarna pas controleren

dan, voor dat NOT NULL
NULL is niet hetzelfde als ""
"" is een lege string
NULL is echt niks
als je NOT NULL invult zal de waarde in de cel van een kolom niet NULL kunnen zijn, maar het kan wel een lege string zijn ;)
als je wil controleren op het feit dat er geen lege string in de db wordt gezet, dan moet je dat in de php code doen met strlen()
PHP:
$tekstje = "blaat";
if(strlen($tekstje) > 3)
{
echo "\$tekstje bevat een waarde van meer dan 3 tekens";
}
else
{
echo "\$tekens bevat een waarde van 3 of minder tekens";
}

hopende dat je wat aan deze vage en snel getypte uitleg hebt :p
 
Laatst bewerkt:
ik kom er nog staadts niet uit als ik die Count eriz zet stuurt hij weer een lege string nu heb ik dit dus:

PHP:
<?php
include ("connect.php");
$date = date("j-n-Y");

$show = "barry";
$show2 = "webmaster";

if($_POST["gebruikersnaam"] == $show and $_POST["wachtwoord"] == $show2) //zorg dat je $_POST gebruikt. Anders werkt deze script alleen op lycos en een aantal andere servers. Bij mij zou het zonder dat $_POST niet werken. (Veiligheidsredenen)
{
	?>
	<html>
		<head>
			<title>Barry's Lyrics News admin</title>
		</head>
		<body>
			<?php
			if($_POST['title'] != "" && $_POST['news'] != "")
			{
				$_POST['title'] = addslashes($title);
				$_POST['news'] = addslashes($news);
				
				$news = nl2br($news);
				
				$sql = "INSERT INTO News (Date,Title,News) VALUES ('" . $date . "','" . $title . "','" . $news . "')"; //<-- controleer deze regel eens: Title='$title' News='$news' <-- Komma zie: Title='$title', News='$news'
				$query = mysql_query($sql) or die(mysql_error());
				echo "<b>News toegevoegd</b>";
			}
			else
			{
				?>
				<form name="Newsform" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
					Titel: <br><input type="text" name="title"><br>
					Bericht: <br><textarea name="beri" rows="8" cols="41"></textarea><br>
					<input type="submit" name="submit" value="submit"><input type="reset" name="reset" value="reset"><br>
				</form>
				<?php
			}
			?>
		</body>
	</html>
	<?php
}
else
{
	?>
	<html>
		<head>
			<title>Inloggen op News-admin</title>
		</head>
		<body>
			<?php
			echo "<form method='post'>\n";
			echo "Gebruikersnaam: <input type=text name='gebruikersnaam'><br>\n";
			echo "Wachtwoord:&nbsp;&nbsp;&nbsp;&nbsp; <input type=password name='wachtwoord'><br>\n";
			echo "<br><input name='login' type='Submit' value='Login'>\n";
			echo "</form></center>";
			?>
		</body>
	</html>
	<?php
}
?>

zou je in dit script de fouten willen aangeven want dat laatste van je uitleg kwam ik niet bepaald uit, hoe ik dat moet verwerken hierin
 
het hele script dan maar...
PHP:
<?php
include ("connect.php");
$date = date("j-n-Y");

$show = "barry";
$show2 = "webmaster";

if((isset($_POST["gebruikersnaam"]) == TRUE) AND (isset($_POST["wachtwoord"]) == TRUE))
{
  if((isset($_POST["title"]) == TRUE) AND (isset($_POST["news"]) == TRUE))
  {
  $gebruikersnaam = $_POST["gebruikersnaam"];
  $wachtwoord = $_POST["wachtwoord"];
    if($gebruikersnaam == $show AND $wachtwoord == $show2)
    {
    $title = htmlspecialchars($_POST["title"]);
    $news = nl2br(htmlspecialchars($_POST["news"]));
    $query = "INSERT INTO News (Date,Title,News) VALUES ('" . $date . "','" . $title . "','" . $news . "')";
    $result = mysql_query($query) or die(mysql_error());
    echo "<br><br><b>News toegevoegd</b>";
    }
    else
    {
    die("Illegale aanroep van script");
    }
  }
  else
  {
  $gebruikersnaam = htmlspecialchars($_POST["gebruikersnaam"]);
  $wachtwoord = htmlspecialchars($_POST["wachtwoord"]);
    if($gebruikersnaam == $show AND $wachtwoord == $show2)
    {
    ?>
    <form name="Newsform" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"><input type="hidden" name="gebruikersnaam" value="<? echo $gebruikersnaam; ?>"><input type="hidden" name="wachtwoord" value="<? echo $wachtwoord; ?>">
    Titel: <br><input type="text" name="title"><br>
    Bericht: <br><textarea name="news" rows="8" cols="41"></textarea><br>
    <input type="submit" name="submit" value="submit"><input type="reset" name="reset" value="reset"><br>
    </form>
    <?php
    }
    else
    {
    echo "Gebruikersnaam / wachtwoord incorrect";
    }
  }
?>
</body>
</html>
<?php
}
else
{
?>
<html>
<head>
<title>Inloggen op News-admin</title>
</head>
<body>
<?php
echo "<form method='post'>\n";
echo "Gebruikersnaam: <input type=text name='gebruikersnaam'><br>\n";
echo "Wachtwoord:&nbsp;&nbsp;&nbsp;&nbsp; <input type=password name='wachtwoord'><br>\n";
echo "<br><input name='login' type='Submit' value='Login'>\n";
echo "</form></center>";
?>
</body>
</html>
<?php
}
?>
As iemand tegen je zegt dat iets niet logisch is, zoals dat == TRUE, dat is namelijk niet verplicht, dan zeg je maar dat hij / zij écht moet leren scripten :p
 
hij post nu helemaal niets naar de database :S

:8-0:

//EDIT: hij wert wel :D:D:D:D:D:D heel erg bedankt :D zat net verkeerd te kijken (foutje met kopieren van je script had nog niet gedaan :P)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan