scrijven in de mysql
AN_ALIEN - 20/10/2004 14:11
Grafische beginner
wie kan me helpen dit scriptje te laten werken.
<form action"newsflash.php" method="post" name="newsflash">
<table border="0">
<tr>
<td>Title</td>
<td><input type="text" name="title" maxlength="50"></td>
</tr>
<tr>
<td>Content</td>
<td><input type="text" name="content" maxlength="50"></td>
</tr>
<tr>
<td>link name</td>
<td><input type="text" name="link" maxlength="50"></td>
</tr>
<tr>
<td>URL</td>
<td><input type="text" name="url" maxlength="50"></td>
</tr>
</table>
<input type="submit" name="submit" value="Submit">
<input type="reset" name="reset" value="reset">
</form>
<?php
mysql_connect("localhost","user","pass");
mysql_select_db("dbnaam");
if($_POST['submit'])
{
$title = "$_POST['title']";
$content = "$_POST['content']";
$link = "$_POST['link']";
$url = "$_POST[''url]";
$query = "INSERT INTO newsflash (title, content, link, url) VALUES ('$title', '$content', '$link', '$url')";
mysql_query($query) or die (mysql_error());
echo "newsflash has been send.";
}
?>
<form action"newsflash.php" method="post" name="newsflash">
<table border="0">
<tr>
<td>Title</td>
<td><input type="text" name="title" maxlength="50"></td>
</tr>
<tr>
<td>Content</td>
<td><input type="text" name="content" maxlength="50"></td>
</tr>
<tr>
<td>link name</td>
<td><input type="text" name="link" maxlength="50"></td>
</tr>
<tr>
<td>URL</td>
<td><input type="text" name="url" maxlength="50"></td>
</tr>
</table>
<input type="submit" name="submit" value="Submit">
<input type="reset" name="reset" value="reset">
</form>
<?php
if ( $_POST [ 'submit' ] )
{
$title = "$_POST ['title']" ;
$content = "$_POST ['content']" ;
$link = "$_POST ['link']" ;
$url = "$_POST [''url]" ;
$query = "INSERT INTO newsflash (title, content, link, url) VALUES ('$title ', '$content ', '$link ', '$url ')" ;
echo "newsflash has been send." ; }
?>
bij voorbaat dank:ooh:
13 antwoorden
Gesponsorde links
Maarten - 20/10/2004 14:14 (laatste wijziging 20/10/2004 14:16)
Erelid
<?php
mysql_connect("localhost","user","pass");
mysql_select_db("dbnaam");
if(isset($_POST['submit']))
{
$title = $_POST['title'];
$content = $_POST['content'];
$link = $_POST['link'];
$url = $_POST['url'];
$query = "INSERT INTO newsflash (title, content, link, url) VALUES ('".$title."', '".$content."', '".$link."', '".$url."')";
mysql_query($query) or die (mysql_error());
echo "newsflash has been send.";
}
?>
<?php
if ( isset ( $_POST [ 'submit' ] ) ) {
$title = $_POST [ 'title' ] ;
$content = $_POST [ 'content' ] ;
$link = $_POST [ 'link' ] ;
$url = $_POST [ 'url' ] ;
$query = "INSERT INTO newsflash (title, content, link, url) VALUES ('" . $title . "', '" . $content . "', '" . $link . "', '" . $url . "')" ;
echo "newsflash has been send." ; }
?>
Fouten: Je $_POST[''url] was niet echt juist, de quotes stonden al verkeerd.
Verder: variabelen niet binnen quotes plaatsen.
thomas___ - 20/10/2004 14:20 (laatste wijziging 20/10/2004 14:22)
PHP interesse
je zend met dit script 4var's via de post-method naar je script:
- title
- content
- link
- url
Maar je zend geen var submit mee! Daar detecteer je nu juist op!
<?
if($_POST['submit'])
{
$query = "INSERT INTO newsflash (title, content, link, url) VALUES ('$_POST[title]', '$_POST[content]', '$_POST[link]', '$_POST[url]')";
mysql_query($query) or die (mysql_error());
echo "newsflash has been send.";
}
?>
<?
if ( $_POST [ 'submit' ] )
{
$query = "INSERT INTO newsflash (title, content, link, url) VALUES ('$_POST[title] ', '$_POST[content] ', '$_POST[link] ', '$_POST[url] ')" ;
echo "newsflash has been send." ; }
?>
wordt dus dit...
<?
if($_POST['title'] AND $_POST['content'] AND $_POST['link'] AND $_POST['url']) { // hier detecteer je of al je variablen een waarde hebben, dus al deze velden die hier staan zijn dus verplicht in te vullen. je moet maar verwijderen wat wel of niet verplicht is!
$query = "INSERT INTO newsflash (title, content, link, url) VALUES ('$_POST[title]', '$_POST[content]', '$_POST[link]', '$_POST[url]')";
mysql_query($query) or die (mysql_error());
echo "newsflash has been send.";
}
?>
<?
if ( $_POST [ 'title' ] AND $_POST [ 'content' ] AND $_POST [ 'link' ] AND $_POST [ 'url' ] ) { // hier detecteer je of al je variablen een waarde hebben, dus al deze velden die hier staan zijn dus verplicht in te vullen. je moet maar verwijderen wat wel of niet verplicht is!
$query = "INSERT INTO newsflash (title, content, link, url) VALUES ('$_POST[title] ', '$_POST[content] ', '$_POST[link] ', '$_POST[url] ')" ;
echo "newsflash has been send." ; }
?>
Maarten - 20/10/2004 14:21 (laatste wijziging 20/10/2004 14:29)
Erelid
heh thomas wat zeg je nou? Zijn knop heet SUBMIT, dus geeft hij wel een mee..
En je moet je vars BUITEN de quotes plaatsen...
thomas___ - 20/10/2004 14:29
PHP interesse
Idd, je hebt gelijk!
Ik detecteer namelijk nooit op deze manier... maar ik gaf toch geen verkeerd alternatief?
Je kan da mss int vervolg gewoon even meedelen en ni direct op iemand zn kap zitten!
Thomas
xSc - 20/10/2004 14:33 (laatste wijziging 20/10/2004 14:42)
Onbekend
Murfy, je hebt gelijk. Zeg het voortaan wat netter alsjeblieft.
Maar Thomas zit wel in de goede richting:
- Controleer eerst of je $_POST[] / $_GET[]-var's wel gevuld zijn met isSet().
- Kopieer $_POST[], $_GET[] en $_SERVER[]-vars niet naar andere var's maar gebruik ze rechtstreeks.
- Gebruik zoals Murfy / Thomas de functie isSet() om te controleren of een var is 'geset'.
- Geef logisch variabele namen, die beginnen met de eerste letter van het type: integer: $iMijnInteger; string: $sMijnString; array: $aMijnArray, enz..
- Zorg voor goede foutafhandeling:
if (!$rSelectNewsInfo = mysql_query("SELECT enz.")) {
echo 'Kan het nieuws niet opvragen';
}
dus geen or die() gebruiken.
- Variabelen buiten quotes houden, ook in je query:
$query = "INSERT INTO newsflash (title, content, link, url) VALUES ('$_POST[title]', '$_POST[content]', '$_POST[link]', '$_POST[url]')";
mysql_query($query) or die (mysql_error());
wordt:
<?php
if (!mysql_query("INSERT INTO newsflash (titel, content, link, url) VALUES('" . $_POST['title'] . "', '" . $_POST['content'] . "', '" . $_POST['link'] . "', '" . $_POST['content'] . "', '" . $_POST['url'] . "')")) {
echo 'Kan het nieuws niet toevoegen!';
}
else {
//
}
?>
<?php
if ( ! mysql_query ( "INSERT INTO newsflash (titel, content, link, url) VALUES('" . $_POST [ 'title' ] . "', '" . $_POST [ 'content' ] . "', '" . $_POST [ 'link' ] . "', '" . $_POST [ 'content' ] . "', '" . $_POST [ 'url' ] . "')" ) ) { echo 'Kan het nieuws niet toevoegen!' ; }
else {
//
}
?>
Let ook waar je quotes zet: dus niet: $_POST[url], maar $_POST['url']. Alleen cijfers tussen de blokhaken moeten zonder quotes.
EDIT:
FangorN, ja is waar.
Nogmaals: zorg ook voor goede foutafhandeling:
mysql_connect("localhost","user","pass");
mysql_select_db("dbnaam");
<?php
if (!$rConnectMySQL = mysql_connect('localhost', 'user', 'pass')) {
echo 'Kan geen verbinding maken met mysql-server';
}
else {
if (!$rSelectDB = mysql_select_db('dbnaam')) {
echo 'Kan de DB niet selecteren';
}
else {
//
}
}
?>
<?php
if ( ! $rConnectMySQL = mysql_connect ( 'localhost' , 'user' , 'pass' ) ) { echo 'Kan geen verbinding maken met mysql-server' ; }
else {
echo 'Kan de DB niet selecteren' ; }
else {
//
}
}
?>
Thomas - 20/10/2004 14:35 (laatste wijziging 20/10/2004 14:35)
Moderator
en
action"newsflash.php"
moet
action= "newsflash.php"
worden lijkt me.
AN_ALIEN - 20/10/2004 17:46
Grafische beginner
wat ik nu begrepen heb:
<form action="newsflash.php" method="post" name="newsflash">
<table border="0">
<tr>
<td>Title</td>
<td><input type="text" name="title" maxlength="50"></td>
</tr>
<tr>
<td>Content</td>
<td><input type="text" name="content" maxlength="50"></td>
</tr>
<tr>
<td>link name</td>
<td><input type="text" name="link" maxlength="50"></td>
</tr>
<tr>
<td>URL</td>
<td><input type="text" name="url" maxlength="50"></td>
</tr>
</table>
<input type="submit" name="submit" value="Submit">
<input type="reset" name="reset" value="reset">
</form>
<?php
mysql_connect("localhost","user","pass");
mysql_select_db("dbname");
if(isset($_POST['submit']))
{
$title = "$_POST['title']";
$content = "$_POST['content']";
$link = "$_POST['link']";
$url = "$_POST['url']";
$query = "INSERT INTO newsflash (title, content, link, url) VALUES ('".$title"', '".$content"', '".$link"', '".$url"')";
mysql_query($query) or die (mysql_error());
echo "newsflash has been send.";
}
?>
<form action="newsflash.php" method="post" name="newsflash">
<table border="0">
<tr>
<td>Title</td>
<td><input type="text" name="title" maxlength="50"></td>
</tr>
<tr>
<td>Content</td>
<td><input type="text" name="content" maxlength="50"></td>
</tr>
<tr>
<td>link name</td>
<td><input type="text" name="link" maxlength="50"></td>
</tr>
<tr>
<td>URL</td>
<td><input type="text" name="url" maxlength="50"></td>
</tr>
</table>
<input type="submit" name="submit" value="Submit">
<input type="reset" name="reset" value="reset">
</form>
<?php
if ( isset ( $_POST [ 'submit' ] ) ) {
$title = "$_POST ['title']" ;
$content = "$_POST ['content']" ;
$link = "$_POST ['link']" ;
$url = "$_POST ['url']" ;
$query = "INSERT INTO newsflash (title, content, link, url) VALUES ('" . $title "', '" . $content "', '" . $link "', '" . $url "')" ;
echo "newsflash has been send." ; }
?>
zou dit moeten werken maar dat doet het niet
Maarten - 20/10/2004 17:52
Erelid
$title = "$_POST['title']";
$content = "$_POST['content']";
$link = "$_POST['link']";
$url = "$_POST['url']";
buiten quotes zetten... die " verwijderen dus.
DRUNK - 20/10/2004 17:54
PHP gevorderde
Variablen buiten ""! dus NIET $title = "$_POST['title']"; maar $title = $_POST['title'] vooral met array's ($_GET / $_POST / $_COOKIE ed.) werkt dit niet. Pas ook de tip's van Henri eens toe, hij andwoord ook niet voor niets.
<?php // hierboven nog even je HTML plakken!
if (!mysql_connect("localhost","user","pass")) {
die('DB vrbinding mislukt!');
}
if (!mysql_select_db("dbname")) {
die('Kan DB niet selecteren!');
}
if(isset($_POST['submit'])) {
$title = $_POST['title'];
$content = $_POST['content'];
$link = $_POST['link'];
$url = $_POST['url'];
if (!mysql_query("INSERT INTO newsflash (title, content, link, url) VALUES ('".$title"', '".$content"', '".$link"', '".$url"')")) {
die('INSERT query mislukt!');
}
echo "newsflash has been send.";
}
?>
<?php // hierboven nog even je HTML plakken!
die ( 'DB vrbinding mislukt!' ) ; }
die ( 'Kan DB niet selecteren!' ) ; }
if ( isset ( $_POST [ 'submit' ] ) ) {
$title = $_POST [ 'title' ] ;
$content = $_POST [ 'content' ] ;
$link = $_POST [ 'link' ] ;
$url = $_POST [ 'url' ] ;
if ( ! mysql_query ( "INSERT INTO newsflash (title, content, link, url) VALUES ('" . $title "', '" . $content "', '" . $link "', '" . $url "')" ) ) { die ( 'INSERT query mislukt!' ) ; }
echo "newsflash has been send." ; }
?>
Maarten - 20/10/2004 17:55
Erelid
Idd, meestal gaat het over kleine onslordigheden. Mss dat je een oudere versie van PHP hebt ofzo en dat hij het niet wilt accepteren.
Gesponsorde links
Dit onderwerp is gesloten .