Toon posts:

[php] uitlees probleem van .dat file

Pagina: 1
Acties:

Verwijderd

Topicstarter
op gebied van PHP ben ik een beginner..... reg_empty gaf op de search geen resultaat... op google daarentegen genoeg,... maar als newbie kon ik er niet uitkomen....

||||||||||||FORM.HTM

[html]
<html>
<form method="post" enctype="multipart/form-data" action="schrijf.php">
naam<input type=text maxlength="255" size="30" name="naam">
e-mail<input type=text maxlength="255" size="30" name="email">
bericht<textarea name="bericht" cols="25" rows=5></textarea>
<input type="submit" value=Submit>
</form>
</html>
[/html]


||||||||||||SCHRIJF.PHP

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php 
error_reporting  (E_ERROR | E_WARNING | E_PARSE);
$bestand = "gastenboek.dat"; 
$bestand_file = file($bestand); 
$file_open = fopen($bestand, "a"); 

$bericht = nl2br($bericht); 

fwrite($file_open, "$naam|$email|$bericht\n"); 
fclose($file_open); 

echo("Data toegevoegd!"); 
?> 
form



|||||||||||||||||| UITLEZEN.PHP

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php 
error_reporting  (E_ERROR | E_WARNING | E_PARSE);
$bestand = "gastenboek.dat"; 
$bestand_file = file($bestand); 
$file_open = fopen($bestand, "w"); 
$bericht = ereg_replace("\n", "", $bericht); 

fwrite($file_open, "$naam|$email|$bericht\n"); 

foreach($bestand_file as $regel){ 

fwrite($file_open,$regel); 
} 
fclose($file_open); 
?>



open ik nu uitlezen.php via de server dan krijg de volgende foutmelding
Warning: REG_EMPTY: in F:\http\php\poort\uitlezen.php on line 11

gastenboek.dat is aangemaakt

en dit is wat in regel 11 aantref in de code van uitlezen.php
list($naam, $email, $bericht)= split ("|", $regel);


iemand ?? er zal wel een simpele oplossing voor zijn

[ Voor 0% gewijzigd door Verwijderd op 10-10-2002 13:43 . Reden: om t d2k wat makkelijker te maken ]


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

| is een metacharacter voor regexp's.

Dat is het "of teken", jij geeft daar (niks) of (niks) mee als split parameter, maak daar es \| van?
Tipje, gebruik volgende keer de php-tag's
Bijv zo:
PHP:
1
2
3
<?
regel 2;
?>

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

liever explode in dit geval

Zet ook error_reporting op E_ALL. Word je vaak gewezen op dingen die fouten zouden kunnen veroorzaken. Word je secuur van :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
ACM, okay reg_empty is verdwenen

nu vind ik het volgende tussen mn tabel..... de \ die ik toevoegde aan de |
nu dus \| reulteert nu in een \ in mn tabel

naam: \ e-mail: \ bericht:
naam: \ e-mail: \ bericht:
naam: \ e-mail: \ bericht:

maar nog steeds geen gegevens

en de php tags....... voorafgaand en na iedre regel php code,.. tags gebruiken?
of na iedere blok code?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op 10 oktober 2002 @ 13:16:
ACM, okay reg_empty is verdwenen

nu vind ik het volgende tussen mn tabel..... de \ die ik toevoegde aan de |
nu dus \| reulteert nu in een \ in mn tabel

naam: \ e-mail: \ bericht:
naam: \ e-mail: \ bericht:
naam: \ e-mail: \ bericht:
Je hebt split("\|", ...);
gedaan en dan komen er ineens \'s bij in je data :?

Anyway, gebruik ook liever explode("|", ...); zoals drm al aangeeft.
maar nog steeds geen gegevens
De uitlezen.php en de schrijf.php die je hier geeft zijn trouwens hetzelfde, dus daar valt weinig mee te helpen voor ons.
en de php tags....... voorafgaand en na iedre regel php code,.. tags gebruiken?
of na iedere blok code?

Nee, de rml/ubb-code

[php]
<?
php code
?>
[/php]

Om je probleem _hier_ beter te illustreren.

Verwijderd

Topicstarter
oeps mijn fout.....

>>>>>>>>>>schrijf.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php 
$bestand = "gastenboek.dat"; 
$bestand_file = file($bestand); 
$file_open = fopen($bestand, "a"); 

$bericht = nl2br($bericht); 

fwrite($file_open, "$naam|$email|$bericht\n"); 
fclose($file_open); 

echo("Data toegevoegd!"); 
?>



>>>>>>>>>>>>uitlezen.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php 
$bestand = "gastenboek.dat"; 
$bestand_file = file($bestand);  

$bericht = ereg_replace("\n", "", $bericht); 

foreach($bestand_file as $regel){  

list($naam, $email, $bericht)= split ("|", $regel);  

echo "<table border=1> 
<tr> 
<td> 
naam: $naam 
</td> 
<td> 
e-mail: $email 
</td> 
<td> 
bericht: $bericht 
</td> 
</tr> 
</table>"; 
} 
?>

[ Voor 0% gewijzigd door Verwijderd op 10-10-2002 14:21 . Reden: we zullen de PHP tags maar weer es voordoen. moeilijk zo'n forum :{ ]


Verwijderd

Topicstarter
niemand?

  • Apollo_Futurae
  • Registratie: November 2000
  • Niet online
• regel 3 in schrijf.php ('$bestand_file = file($bestand);') kun je weghalen, want daar doe je verder niets mee.
• echo $naam, $email en $bericht eens in schrijf.php om te zien wat er in zit.
• in uitlezen.php moet je de <table> en </table> buiten de foreach-lus halen; je maakt nu voor elke regel een eigen tabel.
• regel 5 in uitlezen.php is volkomen overbodig ($bericht wordt later toch overgeschreven).
• zoals gezegd is explode() in jouw geval beter dan split()
• zet 'error_reporting(E_ALL);' bovenaan al je scripts

Pas de replâtrage, la structure est pourrie.


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 10:19

D2k


ja dus? net alsof je een vraag niet op 2 totaal verschillende fora mag vragen?
svp dit soort reply's in het vervolg weglaten

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
crossposting,.. hahaha
beste markuz,.. als je goed had opgelet (dit heb je dus niet gedaan),... zie je dat de datums precies inelkaar overgaan... aangezien ze op jaqieline.com niet reageren (de tutorial komt bij hun vandaan), ben ik overgegaan met mn topic te plaatsen op tweakers.....

verders wel goed van je hoor,.. dat je het gevonden hebt ;)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Btw, waar je je debug-rondes moet beginnen is controleren (met een teksteditor ofzo) wat er in je .dat file staat.
Als dat volgens jou klopt moet je es kijken wat er in de $regel komt, als ook dat klopt ga je naar de split methode, echo de waardes van $naam etc zonder de code er verder omheen.
Klopt ook dat ga je verder met zoeken etc etc.
Klopte het niet wat er in je .dat staat, dan moet je juist terug in de .dat-schrijvende code gaan zoeken.

Ik kan me zo voorstellen dat het bij die nl2br fout gaat, want dat vervangt de \n's door <br>\n en niet enkel door een <br> ...

Verwijderd

Topicstarter
ben nu even bezig met mySQL... een database JOKES is aangemaakt en de hieronderstaande code is in staat data uit de tabel van de DB te halen...

Nu heb ik het probleem om data via deze code toe te voegen..... heb de IF.. ELSE.. en .. END IF al omzeilt want het TEXT veld werd op een of ander manier ook niet weergegeven!

laat ik .......error_reporting (E_ERROR | E_WARNING | E_PARSE);.........
weg uit de code dan krijg ik de melding
Undefined variable: submitjoke in F:\http\php\mysql\jokes\jokes.php on line 37
waar dus dit de ode is op line 37
if ("SUBMIT" == $submitjoke) {
Idem met
error_reporting (E_ALL);

MySQL werkt verder prima... de webserver (localhost) ook.... is me verder al gelukt via PHP op een andere manier data toe te voegen aan mySQL

$insert = "INSERT INTO jay (achternaam,hobby,school)
VALUES ('valk','tennis','HKU')";
mysql_query($insert) or die ("Could not add data to the table");


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<HTML>

<BODY>
<?php 
error_reporting  (E_ERROR | E_WARNING | E_PARSE); 
// If the user wants to add a joke  
//if (isset($addjoke)):?>

<FORM ACTION="<?php echo($PHP_SELF); ?>" METHOD=POST>
<P>Type your joke here:<BR>
<TEXTAREA NAME="joketext" ROWS=10 COLS=40 WRAP>
</TEXTAREA><BR><INPUT TYPE=SUBMIT NAME="submitjoke" VALUE="SUBMIT">
</FORM>

<?php  

//else:

    // Connect to the database server    
$dbcnx = @mysql_connect("localhost",             
"senjee", "xxxxxxxx");    
if (!$dbcnx) {      
echo( "<P>Unable to connect to the " .            
"database server at this time.</P>" );      
exit();    
}

    // Select the jokes database    
if (! @mysql_select_db("jokes") ) {      
echo( "<P>Unable to locate the joke " .            
"database at this time.</P>" );      
exit();    
}

    // If a joke has been submitted,    
// add it to the database.    
if ("SUBMIT" == $submitjoke) {      
$sql = "INSERT INTO Jokes SET " .             
"JokeText='$joketext', " .             
"JokeDate=CURDATE()";      
if (mysql_query($sql)) {        
echo("<P>Your joke has been added.</P>");      
} else {        
echo("<P>Error adding submitted joke: " .             
mysql_error() . "</P>");      
}    
}      

echo("<P> Here are all the jokes " .         
"in our database: </P>");      
// Request the text of all the jokes    
$result = mysql_query(              
"SELECT JokeText FROM Jokes");    
if (!$result) {      
echo("<P>Error performing query: " .           
mysql_error() . "</P>");      
exit();   
 }      

// Display the text of each joke in a paragraph    
while ( $row = mysql_fetch_array($result) ) {      
echo("<P>" . $row["JokeText"] . "</P>");   
 }      

// When clicked, this link will load this page    
// with the joke submission form displayed.    
echo("<P><A HREF='$PHP_SELF?addjoke=1'>" .         
"Aaaad a Joke!</A></P>");    
//endif;  

?>
</BODY>
</HTML>

Verwijderd

ey in welk programma maak je die .dat databases?

Verwijderd

Topicstarter
.dat database .....?!

heb t nu ff over databse in mysql

mysql> CREATE DATABASE jokes;
mysql> USE jokes;

mysql> CREATE TABLE Jokes (
-> ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> JokeText TEXT,
-> JokeDate DATE NOT NULL
-> );

mysql> INSERT INTO Jokes
-> (JokeText, JokeDate) VALUES (
-> "balblablablabla!!",
-> "2000-04-01"
-> );

Verwijderd

nee weet ik, maar ik wil ff weten waarin je een .dat database maakt, ik snap mySql ook niet, maar .dat misschien wel.

Verwijderd

Topicstarter
o.. ok!
ik doe ff mn best t te omschrijven... ben zeker ook geen php/mysql wonder ;)

.DAT is niet echt een database..... maar meer een txt file (notepad) die je de extensie .DAT geeft.... hierin sla je dan gegevens op ipv een mySQL Database... omdat sommige webservers mySQL niet ondersteunen of duurder zijn om gebruik te maken van mySQL

Eenmaal op de webserver moet je deze een read/write/execute permissie geven (rechtermuisklik) anders kan er geen info worden toegevoegd aan de file

Verwijderd

dus je kan het gewoon in notepad schrijven en als .dat opslaan?

Verwijderd

Topicstarter
save as > save as type > all files

voila
bestand.dat

Verwijderd

thnxz

Verwijderd

Topicstarter
t lukt wel om via een een code die reeds geschreven in de PHP pagina.. data toe te voegen aan de database [test.php], maar niet via textvelden.... zie hieronder!


form.htm
PHP:
1
2
3
4
5
<form action="insert.php" method="post">
naam: <input type="text" name="naam"><br>
hobby: <input type="text" name="hobby"><br>
school: <input type="text" name="school"><br>
<input type="Submit">


insert.php
PHP:
1
2
3
$insert = "INSERT INTO jay (hobby,low,hku) 
 VALUES ('$naam','$hobby','$school')"; 
 mysql_query($insert) or die ("Could not add data to the table");



test.php
PHP:
1
2
3
$insert = "INSERT INTO jay (hobby,low,hku) 
 VALUES ('jay','tennis','HKU')"; 
 mysql_query($insert) or die ("Could not add data to the table");

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Euhms...
Lekker offtopic allemaal, zeker dat uitstapje over het opslaan met een willekeurige extentie, iets wat totaal niks met deze thread te maken heeft.

Als je een ander probleem met andere software hebt moet je dat niet in deze zelfde thread posten natuurlijk. Wordt er niet echt duidelijker op..

Magoed, ook daar geldt weer het devies "leer debuggen" :)

Verwijderd

Topicstarter
ACM,... je hebt uiteraard gelijk

ben van mn luie stoel afgekomen en gaan debuggen als een idioot!
probleem is opgelost!
Pagina: 1