Mi a hibám? (php)
Hellóó!
Feltettem már ezt a kérdést de azóta tovább jutottam :)
Most az a helyzet, hogy a mysql adatbázisba beírja a megfelelő adatokat, csak amikor rámegyek a "felvesz" gombra, akkor ezt az üzenetet kapom:
Warning: Cannot modify header information - headers already sent by (output started at C:\WEBDEV\websites\orszagok.php:1) in C:\WEBDEV\websites\orszagok.php on line 70
Ez a kódom:
<?php
ob_start();
$kapcsolat=mysql_connect("localhost","root","root");
mysql_select_db("feladat",$kapcsolat);
if(!isset($_POST["mitcsinal"])) {
?>
<HTML>
<BODY>
<p align="center">
<font size="5" color="lightblue"><b>Országok</b></font>
<br /><br />
<FORM action="<?php print $_SERVER["PHP_SELF"] ?>" method="POST">
<input type="hidden" name="mitcsinal" value="felvesz">
<p align="center"><b>Kód</b> <input type="text" name="kod" size="3" >
<b>Ország neve:<b><input type="text" name="nev" size="20">
<input type="submit" value="Felvesz!">
<br><br>
<select style="font-family:courier new">
<?php
$sql = "SELECT * FROM orszagok ORDER BY nev";
$orszaglista = mysql_query($sql);
while($egyorszag = mysql_fetch_array($orszaglista)) {
$nev_hossz = strlen($egyorszag["nev"]);
$kod = strlen($egyorszag["kod"]);
$szokoz = 25-$nev_hossz-$kodhossz;
?>
<option><?php print $egyorszag["nev"]?>
<?php
for($i=1; $i<= $szokoz; $i++){
print " ";
}
print $egyorszag["kod"];
?>
</option>
<?php
}
?>
</select>
</FORM>
</p>
</BODY>
</HTML>
<?php
}
elseif ($_POST["mitcsinal"]=="felvesz") {
$sql="INSERT INTO orszagok (kod,nev) VALUES ($_POST[kod],'$_POST[nev]')";
mysql_query($sql);
header("location:orszagok.php");
}
mysql_close($kapcsolat);
ob_end_flush();
?>
Érdekes, hogy az ob_start() és az ob_end_flush függvény ott van a kódban és mégis a hiba arra utal, mintha nem lenne ott. Kérlek segítsetek ez ügyben : )
Éééés IGEEEN!! Kösziii. Nagyon sokat segítettél!
Figyelj most az a baj, hogy amikor megnyitom a böngészőben az oldalt akkor ilyen idióta karakterek vannak az ékezetes betűnél. Ezt, hogy korrigáljam?
Amúgy eddig utf8 kódolás volt. Most utf 8 BOM nélkül.
Lényegében ez BOM mit takar?
A BOM tudtommal egyfajta jelölés a böngészőnek (vagy a fájlt megnyitó programnak), hogy a fájl tartalma UTF-8 lesz.
Ezt úgy tudod helyettesíteni HTML-ben, hogy egy META tag-ben megadod, hogy UTF-8 kódolású a fájlod.
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
Abba most ne menjünk bele, hogy nem szabadna így kinéznie a kódnak.
A böngésződ helyesen ismeri fel a karakterkészletet?
Nincs az elküldött headerrel átverve?
Ha játszogatsz egy picit a böngésző kódolási beállításaival, akkor ez viszonylag gyorsan kiderül.
Úgyszintén: a szövegszerkesztődben milyen karakterkészlet van beállítva? Az sem mindegy, méghozzá nagyon nem. Azt is be kell állítani UTF-8 -ra.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!