ugrás a tartalomhoz

<? vagy <?php

richie85 · 2011. Dec. 8. (Cs), 17.00
<richie>
Sziasztok,

Egy erdekes dologgal szembesultem, es nem tudom mi lehet a baj, vagy hogyan kerulhetem ki a problemam a legegyszerubben.
Roviden, uj gepem van. Felraktam Apache 2.2.21, PHP 5.3.8 MySql 5.5.18 + phpMyAdmin. Ezek futottak regebben is, csak regebbi kiadasok, nem tudom a verzioszamokat. Kb. 3-4 evesek.

Csinaltam az elmult evekben par weboldalt, amik futnak rendesen a kulonbozo szolgaltatoi host-okon.

Nah, most az en problemam, a sajat gepen nem futnak megfeleloen. Nem ker le a sql-bol, nem fogadja el a connect-et, nem irja ki amit ki kene irjon.

Szoval apro hulyeseg:
A regi anyagaimnal a php beillesztes es persze mindennek az alapjakent a <? hasznaltam a gyors irasom miatt. A most a gepemen futo verzio csak akkor hajlando barmit is olvasni, ha igy kezdem: <?php. Tudom, hogy ez reges-regen igy volt de ezzen konnyitettek a <?-val.

Oke, menjunk tovabb. Rengetegszer hasznalom ezt: <?= $valtozo ?>, most csak igy fogadja el: <?php echo $valtozo ?> vagy <?php print $valtozo ?>

Connect-em ugyszinten baszakszik, csak egy felekeppen akar kapcsolodni a sql-ez.

Azzal is talalkoztam hogy a $valtozot nem viszi at tovabb a masik oldalakra. A while ciklusom is baszakszik.

De a linkek mukodnek megfeleloen. ?p=

Szoval nem tudom mi lehet a baj.

A host-okon minden mukodik rendesen, ahogy azt annak idejen megcsinaltam, de a sajat gepemen nem... Tul nagy melo lenne az egeszet at irnom a sajat gepemre, mert nem eleg "replace <? to <?php"

Valakinek valami otlete? megkoszonnem!

</richie>
 
1

php.ini

Poetro · 2011. Dec. 8. (Cs), 17.13
Ezek mind php.ini beállítások, a <? vs <?php kérdését a short_open_tag On állásba kapcsolásán segít. Egyébként illik kerülni ezt, mivel ki fog kerülni a PHP-ból, valamint problémák lehetnek az éles szerveren is ezzel kapcsolatban.
2

php.ini-ben be tudod allitani

Greg · 2011. Dec. 8. (Cs), 17.14
php.ini-ben be tudod allitani a short_open_tag -et. az megoldja az elso gondot.
3

Koszi, megtettem! Eredmeny:

richie85 · 2011. Dec. 8. (Cs), 17.39
Megtettem, amit irtatok, tok logikusnak is tunt. De nem erzekeltem, semmi valtozast: (persze ujrainditottam a szervert mielott barmit gondolnatok) :D

Nezzetek az alabbi 2 tok egyszeru kod sort, a valtozas csak <? es a <?php kozt van:

Eloszor <?:
<?
 $con = mysql_connect("localhost","root","root");
 if (!$con)
   {
   die('Could not connect: ' . mysql_error());
   }
 mysql_select_db("szemelyek", $con);
 $result = mysql_query("SELECT * FROM Persons");
 while($row = mysql_fetch_array($result))
   {
   echo $row['FirstName'] . " " . $row['LastName'];
   echo "<br />";
   }
 mysql_close($con);
 ?>
Eredmeny a bongeszoben:
"; } mysql_close($con); ?>
Masodszor <?php:
<?php
 $con = mysql_connect("localhost","root","root");
 if (!$con)
   {
   die('Could not connect: ' . mysql_error());
   }
 mysql_select_db("szemelyek", $con);
 $result = mysql_query("SELECT * FROM Persons");
 while($row = mysql_fetch_array($result))
   {
   echo $row['FirstName'] . " " . $row['LastName'];
   echo "<br />";
   }
 mysql_close($con);
 ?>
Eredmeny a bongeszoben:
Maci Laci
Tom Jerry
Viz Elek
11

Rossz helyen állíthattad át a

MadBence · 2011. Dec. 9. (P), 15.56
Rossz helyen állíthattad át a short_open_tag-et, mert láthatóan az első verzióban nem fut le a php, html-ként értelmezi a kódot.
4

Connect-em ugyszinten

kuka · 2011. Dec. 8. (Cs), 17.45
Connect-em ugyszinten baszakszik, csak egy felekeppen akar kapcsolodni a sql-ez.
Pontosabban miben is áll ez a baszakvás? A tippem, hogy TCP vs. local socket különbség, ami viszont MySQL állítás volna.
Azzal is talalkoztam hogy a $valtozot nem viszi at tovabb a masik oldalakra.
Pontosabban hogyan is szeretnéd, hogy átjusson? A tippem, hogy munkamenettel, ami munkamenet tárolási gond volna és a session.save_path-t kellene ellenőrizd.
A while ciklusom is baszakszik.
Hát ezt meg hogyan teszi? Erre tippem sincs.
5

Másik tipp

Pepita · 2011. Dec. 8. (Cs), 18.55
A tippem, hogy munkamenettel

Nekem inkább az, hogy előző gépen register_globals=on volt. Ha rövid <?-t használ, előfordulhat ez is.
Ha én tippelnék jól, akkor mégiscsak sürgősen át kell irkálni a kódokat, és a "kinti szerveren" is le kell ezt kapcsolni. CSAK $_GET['akarmi'], $_POST['akarmi'], $_SESSION['akarmi'], stb. módon vigyünk változókat!
6

Nekem inkább az, hogy előző

kuka · 2011. Dec. 8. (Cs), 19.06
Nekem inkább az, hogy előző gépen register_globals=on volt.
Ez is egy lehetőség. Bár én a „De a linkek mukodnek megfeleloen. ?p=” mondatból arra következtettem, hogy az ilyennel nincs gond. Ebben az esetben tényleg jó volna az egészet átírni.
8

feladtam

richie85 · 2011. Dec. 8. (Cs), 19.41
Atirom az egeszet..
7

sajnos ez sem

richie85 · 2011. Dec. 8. (Cs), 19.35
Szia Pepita,
atirtam a register_globals-t= "On"-ra probakeppen, ez sem hozott valtozast!
Marad az osszes anyagom atirasa.
9

Keress

Pepita · 2011. Dec. 8. (Cs), 21.06
Szerintem nézz körül jobban, vhol biztos találsz Apache-Php-MySql beállítandókat lépésről lépésre! Nekem gyanús, hogy WL cikk is van róla, csak nem tudom, hol. Ezekkel a konfolásokkal lehet szívni rendesen, de még mindig nem tudjuk (legalábbis én), hogy konf. problem vagy rossz kódok?
10

:)

richie85 · 2011. Dec. 9. (P), 01.35
A kodok nem rosszak.. Tuti, hogy csak "conf" problema.
De egyszer el kell kezdenem amugy is ujra irni, szoval elkezdem es megirom ujra az szabvanyokra.. szepen lassan..
15

A "nem rosszak" helyett

inf · 2011. Dec. 11. (V), 23.27
A "nem rosszak" helyett inkább úgy mondanám, hogy szintaktikailag helyesek... :-)
Hallottál már az "SQL injection"-ről? Jobb lesz, ha utána nézel... Használj PDO-t a sima mysql lib helyett, mert ott prepared statementekkel megoldható az escapelés.

Meg azért minimális MVC tagolás is jól jönne, legalább a kiírást különítsd el valamilyen formában az adatbázisban turkálástól, meg könyörgöm, használj függvényeket, mert amikor refaktorálni fogom a teljes kódodat, akkor könnyebb dolgom lesz, ha függvényekkel indulok és nem globális változókkal meg include-al van megírva az egész. Köszi :-)
12

A php.ini-ben kell kikeresni

inf · 2011. Dec. 9. (P), 17.05
A php.ini-ben kell kikeresni a megfelelő részt. Egyébként nem javaslom a short tagek használatát, pont emiatt, mert ki-be lehet őket kapcsolni. Én szeretek olyan kódot írni, ami minél függetlenebb a configtól...
13

+1, egyszer határidő előtt 10

deejayy · 2011. Dec. 11. (V), 18.10
+1, egyszer határidő előtt 10 órával nyeltem be azt, hogy a lokál konfig miatt nem működött a távoli gépen a cucc. azóta mindenhol long taget használok, azzal nem lehet baj.

Többet kell írni, naés, egyszer. Nyitó tag általában egyszer kell a fájl elején aztán kész.
14

Ha újrafelhasználható

inf · 2011. Dec. 11. (V), 18.50
Ha újrafelhasználható sablonjaid vannak, akkor lényegtelen. A nyitó taget meg be lehet állítani netbeans template-ben. A mostani változat kicserélése kb 5 perc, rá kell tolni a replace in projects-re és írni kell néhány regexet...