Kn de fout niet vinden

Status
Niet open voor verdere reacties.

arjan1202

Gebruiker
Lid geworden
29 okt 2003
Berichten
45
PHP:
<html>
<head>
<title>Nieuws Toevoegen</title>
</head>

<body>
<?
include("inc.connect.php");
?>
<form action="" method="post">
Naam:<br>
<input name="naam" type=text maxlength="15">
<br>
Datum:<br>
<input type=text name="datum"><br>
Titel:<br>
<input name="titel" type=text maxlength="20">
<br>
Inhoud:<br>
<input name="inhoud" type=text maxlength="250">
<br>
<input type="submit" value="Toevoegen" name="submit">

<?
if ($submit)
{
$query = INSERT INTO nieuws (naam, datum, titel, inhoud) VALUES ('".$_POST['naam']."', '".$_POST['datum']."', '".$_POST['titel']."', '".$_POST[ínhoud']."')";
$result = mysql_query($query) or die (mysql_error());
}
?>
</body>
</html>

Krijg hier een parse error, unexpected T_String op regel 27

dat is de regel beginnend met $query

Alvast Bedankt,
 
Tussen de $query = en INSERT hoort nog een " (quote)
PHP:
$query = "INSERT INTO nieuws (naam, datum, titel, inhoud) VALUES ('".$_POST['naam']."', '".$_POST['datum']."', '".$_POST['titel']."', '".$_POST[ínhoud']."')";
Olav
 
Nu geeft die de volgende foutmelding:

parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ']"
 
als je gewoon zelf je eigen query doorleest, was je er ook wel uitgekomen

PHP:
$query = "INSERT INTO nieuws (naam, datum, titel, inhoud) VALUES ('" . $_POST['naam'] . "', '" . $_POST['datum'] . "', '" . $_POST['titel']."', '" . $_POST['inhoud'] . "')";
 
Waarschijnlijk zal er overignes ook een fout ontstaan op een Windows server. Kwam ik ook pas paar dagen geleden achter.

De regel:

PHP:
if ($submit)

verwijst waarschijnlijk naar een variable uit de URL. Op unix servers staat dit dan automatisch in het variable $submit. Maar bij Windows servers is dit niet het geval! Je moet eerst de variable uit de URL halen.

Dit kan op twee manieren:
$_GET["variable"] en $_REQUEST["variable"].

Op de extra (test) windows server die ik heb draaien werkt alleen $_REQUEST["variable"].

Om dan te checken of deze ook daadwerkelijk gevuld is, zou je op UNIX if($_REQUEST["variable"]!="") kunnen doen. Ook dit is niet mogelijk in windows servers. Het is noodzakelijk om if(isset($_REQUEST["variable"])) in te voeren.

Kortom, om ook voor windows servers goed te werken is het erg belangrijk om weer accurate PHP te gebruiken.

met vriendelijke groet,


wout
 
Geplaatst door DaGroove
Waarschijnlijk zal er overignes ook een fout ontstaan op een Windows server. Kwam ik ook pas paar dagen geleden achter.

De regel:

PHP:
if ($submit)

verwijst waarschijnlijk naar een variable uit de URL. Op unix servers staat dit dan automatisch in het variable $submit. Maar bij Windows servers is dit niet het geval! Je moet eerst de variable uit de URL halen.

Dit kan op twee manieren:
$_GET["variable"] en $_REQUEST["variable"].

Op de extra (test) windows server die ik heb draaien werkt alleen $_REQUEST["variable"].

Om dan te checken of deze ook daadwerkelijk gevuld is, zou je op UNIX if($_REQUEST["variable"]!="") kunnen doen. Ook dit is niet mogelijk in windows servers. Het is noodzakelijk om if(isset($_REQUEST["variable"])) in te voeren.

Kortom, om ook voor windows servers goed te werken is het erg belangrijk om weer accurate PHP te gebruiken.

met vriendelijke groet,


wout

$_POST, $_REQUEST, $_GET enz werkt prima op mijn windows doosje dat hier draait. ook scripts die if($submit) gebruiken werken prima.
 
PHP:
<html>
<head>
<title>Nieuws Bewerken</title>
</head>
<body>
<?
include("inc.connect.php");
$sql = "SELECT * from nieuws";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
if($actie == 'edit')
{
echo"Hier kan je het bericht wijzigen
<form action=nieuws_bewerken.php method=post>
<input type=text name=naam value=$record->naam size=15 maxlenght=15>
<br>
<input type=text name=datum value=$record->datum>
<br>
<input type=text name=titel value=$record->titel size=20 maxlenght=20>
<br>
<input type=text name=inhoud maxlength=250 rows=5 cols=40>$record->inhoud</textarea>
<br>
input type=hiddem name=d_id value=$record->d_id>
<input type=hidden name=actie value=update>
<input type=submit value=Toevoegen>
</form>
";

if($actie == "update")
{

$main = eregi_replace("\n", "", $main);
$news_sql_update = "UPDATE nieuws SET naam='$naam', datum='$datum', titel='$titel', inhoud='$inhoud' WHER d_id=$d_id";
mysql_query($news_sql_update);

echo"Het bericht is geupdate.<br>";
}
?>
</body>
</html>

Ben al verder gekomen alvast bedankt.
Alleen nu ben ik met script bezig om posts te wijzigen. Alleen ik krijg een leeg scherm.

En heb als foutmelding parse error, unexpected$
op lijn 41

Heb gekeken en alles nagelopen ik kan de fout niet vinden..

Alvast bedankt
 
Geplaatst door arjan1202
Ben al verder gekomen alvast bedankt.
Alleen nu ben ik met script bezig om posts te wijzigen. Alleen ik krijg een leeg scherm.

En heb als foutmelding parse error, unexpected$
op lijn 41

Heb gekeken en alles nagelopen ik kan de fout niet vinden..

Alvast bedankt
Ik weet niet wat er op regel 41 staat (heb geen zin om te tellen), maar dit
PHP:
$news_sql_update = "UPDATE nieuws SET naam='$naam', datum='$datum', titel='$titel', inhoud='$inhoud' WHER d_id=$d_id";
kan volgens mij veranderd worden in
PHP:
$news_sql_update = "UPDATE nieuws SET naam='$naam', datum='$datum', titel='$titel', inhoud='$inhoud' WHERE d_id='$d_id' ";

Wat ik heb aangepast: een "E" achter WHER en de $d_id even tussen single quotes (') gezet..
 
Geplaatst door aaajeetee
en de $d_id even tussen single quotes (') gezet..
En waarom doe je dat ?
Als 't een integerkolom is, maak je de query alleen maar ranziger (datatypes binnen MySQL enzo).
 
nee, nog steeds regel 41 maar daar staat niks is de laatste regel
 
Geplaatst door arjan1202
nee, nog steeds regel 41 maar daar staat niks is de laatste regel
Kijk eens naar je overgang van "if($action == "edit")" naar "if($action == "update")".. volgens mij moet daar nog een "} else" tussen ;)
 
dat lijkt mij juist niet dat er else moet komen te staan?

kan je me uitleggen waarom dan else
 
Geplaatst door arjan1202
dat lijkt mij juist niet dat er else moet komen te staan?

kan je me uitleggen waarom dan else
Eerst check je als $actie gelijk is aan edit.. zo niet, dán check je of $actie gelijk is aan update..
PHP:
if($actie == "edit")
{
  // Doe wat
} else if($actie == "update")
{
  // Doe nog meer
}

Je gaat nu van een niet-afgesloten if naar een nieuwe if.. en uiteindelijk sluit je maar 1 if.. :D
 
Hmmm nu is die error weg,,

maar ja nog steeds een leeg scherm.

En nu is het een undefined variable actie.

ben al hele middag bezig met uitzoeken, word gek lol

ik snap het niet meer wat er fout is hieraan:confused:
 
Probeer dit eens:
PHP:
<html>
<head>
<title>Nieuws Bewerken</title>
</head>
<body>
<?
include("inc.connect.php");
$sql = "SELECT * from nieuws";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
if(isset($_POST['submit']) == FALSE && $_POST['actie'] != "update")
{
?>
  Hier kan je het bericht wijzigen
  <form action="nieuws_bewerken.php" method="post">
    <input type="text" name="naam" value="<? echo $record->naam;?>" size="15" maxlenght="15" />
    <br />
    <input type="text" name="datum" value="<? echo $record->datum;?>" />
    <br />
    <input type="text" name="titel" value="<? echo $record->titel;?>" size="20" maxlenght="20" />
    <br />
    <textarea name="inhoud" maxlength="250" rows="5" cols="40"><? echo $record->inhoud;?></textarea>
    <br />
    <input type="hidden" name="d_id" value="<? echo $record->d_id;?>" />
    <input type="hidden" name="actie" value="update" />
    <input type="submit" value="Toevoegen" name="submit" />
  </form>
<?
} else if(isset($_POST['submit']) == TRUE && $_POST['actie'] == "update")
{
  $main = eregi_replace("\n", "", $main);
  $news_sql_update = "UPDATE nieuws SET naam='$naam', datum='$datum', titel='$titel', inhoud='$inhoud' WHERE d_id='$d_id' ";
  mysql_query($news_sql_update);

  echo "Het bericht is geupdate. <br/>";
}
?>
</body>
</html>

:) :thumb:
 
Hmmmm waarom werkt die nou wel..

alleen wijzigd die hem niet, en kan neit kiezen welk bericht.

Dus ben niet slim te werk gegaaan , moet weer opnieuw doen lol
 
Geplaatst door arjan1202
Hmmmm waarom werkt die nou wel..

alleen wijzigd die hem niet, en kan neit kiezen welk bericht.

Dus ben niet slim te werk gegaaan , moet weer opnieuw doen lol
Eerst alle berichten laten zien lijkt mij ;) en dan een linkje waarmee je het ID van het bericht meegeeft oid :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan