Volledige versie bekijken : mijn php update mijn database niet meer



keMoBMX
6 March 2008, 22:13
Hello,

Ik heb een eenvoudige php-script waarmee ik de news-pagina van mijn website makkelijk kon update.
De script verwerkte héél eenvoudig 2 tekstvelden en voeg die (na het ingeven van een paswoord) toe aan een database.

Ik spreek in de verleden tijd, de script werkte tot mijn website verhuisde naar een nieuwe server, toen kon ik 1 maal updaten, en toen nooit meer, in om het even welke database ik lopen had bij mijn host.
Na vele malen mailen met de helpdesk van mijn host kreeg ik dit probleem niet opgelost. Omdat het vroeger wel altijd ging (het heeft meer dan een jaar altijd probleemloos gewerkt) dacht ik dat het kwam door de verhuis naar de nieuwe server en was zo ontevreden dat mijn host niet kon helpen dat ik besliste over te stappen naar een nieuwe host.

Ik ben nu dus bij een nieuwe host en na het in orde brengen van de nodige instellingen probeer ik mijn php-script, et voila, het lukte. "zie je wel" dacht ik, dat het kwam door de verhuis naar die nieuwe server. Groot was mijn verbazing echter als ik nog een 2de nieuwtje probeerde toe te voegen en dit echter ook niet gebeurde.

Ik krijg geen foutmelding en het enige vermoeden dat ik nu heb is dat er nieuwe versie van php of mysql is en mijn code nog veroudert. Het lukte 1 keer, dus staat er misschien nog iets open, waardoor ik geen 2de keer meer aan de database kan, allé, ik weet het niet goe, ik heb mijn basic php en mysql volledig via online tutorials in elkaar gestoken.

Hieronder de code (paswoorden en inloggegevens hou ik uiteraard geheim):


<?php

if (isset($_REQUEST['passw']))
{
if ($_POST['passw'] == "*****")
{
$db_host = " ____ "; // mySQL database host
$db_user = " ____ "; // mySQL database user
$db_password = " ____ "; // mySQL database password
$db_name = " ____ "; // the name of your mySQL database

$Nederlands = str_replace("\r", "<br>", $_POST['Nederlands']);
$Engels = str_replace("\r", "<br>", $_POST['Engels']);
$date = gmdate("h:i A dS M");

mysql_connect($db_host,$db_user,$db_password) or die(mysql_error());
mysql_select_db($db_name) or die(mysql_error());

$query = "INSERT INTO news (Nederlands, Engels, date) VALUES ('$Nederlands','$Engels','$date')";

mysql_query($query);
mysql_close();

echo "toegevoegd";
}
else
{echo"stay out of my admin-pages please";}
}
else
{

echo"
<form method='post' action='addnews.php'>
<table align = 'center'>
<tr><td>paswoord/password:</td><td><input type='password' name='passw'></td></tr>
<tr><td>Nederlands:</td><td><textarea name='Nederlands' cols = '100' rows = '10'></textarea></td></tr>
<tr><td>Engels:</td><td><textarea name='Engels' cols = '100' rows = '10'></textarea></td></tr>

<tr><td></td><td><input type='submit' name='submit' value='add'></td></tr>
<tr><td></td><td>

</td></tr>
</table>
</form>


";

}

?>

Ziet hier iemand een fout bij het aanroepen van de database, en misschien het niet goed afsluiten, waardoor ik maar 1 keer binnenkan.
Of moet ik ergens in mijn database-admin iets instellen?

Ik hoop dat iemand me kan helpen.

met vriendelijke groeten
Ken

Jelle
8 March 2008, 01:22
Dit ziet er ok uit volgens mij ;)
Ik heb het even getest onder PHP 5.2 en alles werkt prima.

Volgens mij zit er gewoon een foutje in het script dat de nieuwsberichten daarna toont. Waarschijnlijk haalt hij er daar maar één uit de database i.p.v. alle berichten. Kan je die code eens posten?

Btw: Dit stukje code kan je optimaliseren:

$Nederlands = str_replace("\r", "<br>", $_POST['Nederlands']);
$Engels = str_replace("\r", "<br>", $_POST['Engels']);
door het te vervangen door:

$Nederlands = nl2br($_POST['Nederlands']);
$Engels = nl2br($_POST['Engels']);
Meer uitleg vind je op http://www.php.net/nl2br

Weccop
16 June 2008, 12:13
$query = "INSERT INTO news (Nederlands, Engels, date) VALUES ('" . $Nederlands . "','" . $Engels . "','" . $date . "')";

Jelle
19 June 2008, 09:21
$query = "INSERT INTO news (Nederlands, Engels, date) VALUES ('$Nederlands','$Engels','$date')";

zou ook moeten werken hoor. Dat maakt normaal geen verschil.
Binnen dubbele haakjes worden variabelen gewoon geparsed in PHP.

Btw: dit is een topic van maart. Gelieve geen oude topics zomaar te bumpen als er geen vraag naar is.