php trop vieux ou erreur

Petit nouveau ! | 2 Messages

19 janv. 2017, 15:20

Bonjour a vous, je recherche un peut d'aide car j'ai peut être fait une erreur soit mon code est trop vieux ^^

alors voila en 2004 j'avais récupéré un code une sorte de loterie qui datais déjà, j'avais modifier et mi mon code de coté au cas ou

aujourd’hui j'ai décidé de l’utilisé, mais voila il ne fonctionne plus et vu toutes les mises a jours php qu'il y a eu entre temps...

le code est plutôt simple, un index.php et une mini page admin, en faite quand j'affiche mes pages j'ai pas toutes les informations limite une page blanche


alors mon coté admin très simple

Code : Tout sélectionner

<div align="center"> <form name="form1" method="get" action="lotadmin.php"> <p>Pseudo : <input type="text" name="pseudo"> <br> Pass : <input type="password" name="pass"> </p> <p> <input type="submit" name="admin" value="ok"> </p> </form> </div> <? include('conflot.php'); if ($pseudo == "$adpd" && $pass == "$adps") { echo ' <div align="center"> <p>Administration de la loterie</p> <p><a href="lotadmin.php?action=41255" target="_parent">Mettre a vide la loterie</a><br> <a href="lotadmin.php?action=21568" target="_parent">Selectionner un gagnant</a></p> </div>'; } else { echo "Erreur Admin"; } ?> <? if ($action == "41255") { $connexion = mysql_connect("$db_host","$db_login","$db_pass"); $db = mysql_select_db("$bdd", $connexion); mysql_query("DELETE FROM passlot") or die("Fatal error 2"); echo 'Remise a zéro de la loterie réussi'; } ?> <? if ($action == "21568") { ?> <p>Le numero gagnant est le <? mt_srand((float) microtime()*1000000); $randval = mt_rand(); $gagnant = mt_rand(0,50); $connexion = mysql_connect("$db_host","$db_login","$db_pass"); $db = mysql_select_db("$bdd", $connexion); $query = "select * from loterie where nombre=$gagnant"; $result = mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $pseudog = $r["pseudo"]; $emailg = $r["email"]; } echo $gagnant; ?> <bR> La personne est : <a href="mailto:<? echo $emailg?>"><? echo $pseudog ?></a><br> Un email va lui etre envoy&eacute;.</p> <? mail($emailg, "Bravo $pseudog tu a gagner la loterie", $message, "From: webmaster@$SERVER_NAME\r\n" ."Reply-To: webmaster@$SERVER_NAME\r\n" ."X-Mailer: PHP/" . phpversion()); $filename = 'gagnants.txt'; $dateg = date("d/m/y"); $somecontent = "Le gagnant de la loterie du $dateg est <b>$pseudog</b><br>"; if (is_writable($filename)) { if (!$handle = fopen($filename, 'a')) { print "Impossible d'ouvrir le fichier ($filename)"; exit; } if (!fwrite($handle, $somecontent)) { print "Impossible d'&eacute;crire dans le fichier ($filename)"; exit; } print "L'&eacute;criture de ($somecontent) dans le fichier ($filename) a r&eacute;ussi"; fclose($handle); } else { print "Le fichier $filename n'est pas accessible en &eacute;criture."; } } ?>


et ma partie loterie

Code : Tout sélectionner

<? if ($HTTP_COOKIE_VARS["loterie"] == "3") { ?> <link href="style.css" rel="stylesheet" type="text/css"><? include ('conflot.php') ?> <? if ($vres == "") { echo "Erreur"; exit; } if ($spec == "") { echo "Erreur"; exit; } ?><div align=center><table width="80%" border="0"> <tr> <? $connexion = mysql_connect("$db_host","$db_login","$db_pass"); $db = mysql_select_db("$bdd", $connexion); for ($i = 1;;$i++) { if ($i > 5) { break; } $query = "select * from loterie where nombre=$i"; $result = mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $nombre = $r["nombre"]; $pseudo = $r["pseudo"]; $email = $r["email"]; } if ($nombre == $i) { echo "<td bgcolor=$clcasep> <div align=center>$i<br>Case prise par <a href=mailto:$email>$pseudo</a></div> "; } else { echo "<td bgcolor=$clcasenp> <div align=center>$i<br><a href=x.php?x=$i&vres=$vres&spec=$spec>Prendre cette case</a></div>"; } echo "</td>"; } ?></tr><tr><? for ($i = 6;;$i++) { if ($i > 10) { break; } $query = "select * from loterie where nombre=$i"; $result = @mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $nombre = $r["nombre"]; $pseudo = $r["pseudo"]; $email = $r["email"]; } if ($nombre == $i) { echo "<td bgcolor=$clcasep> <div align=center>$i<br>Case prise par <a href=mailto:$email>$pseudo</a></div> "; } else { echo "<td bgcolor=$clcasenp> <div align=center>$i<br><a href=x.php?x=$i&vres=$vres&spec=$spec>Prendre cette case</a></div>"; } echo "</td>"; } ?></tr><tr><? for ($i = 11;;$i++) { if ($i > 15) { break; } $query = "select * from loterie where nombre=$i"; $result = mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $nombre = $r["nombre"]; $pseudo = $r["pseudo"]; $email = $r["email"]; } if ($nombre == $i) { echo "<td bgcolor=$clcasep> <div align=center>$i<br>Case prise par <a href=mailto:$email>$pseudo</a></div> "; } else { echo "<td bgcolor=$clcasenp> <div align=center>$i<br><a href=x.php?x=$i&vres=$vres&spec=$spec>Prendre cette case</a></div>"; } echo "</td>"; } ?></tr><tr><? $connexion = mysql_connect("$db_host","$db_login","$db_pass"); $db = mysql_select_db("$bdd", $connexion); for ($i = 16;;$i++) { if ($i > 20) { break; } $query = "select * from loterie where nombre=$i"; $result = mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $nombre = $r["nombre"]; $pseudo = $r["pseudo"]; $email = $r["email"]; } if ($nombre == $i) { echo "<td bgcolor=$clcasep> <div align=center>$i<br>Case prise par <a href=mailto:$email>$pseudo</a></div> "; } else { echo "<td bgcolor=$clcasenp> <div align=center>$i<br><a href=x.php?x=$i&vres=$vres&spec=$spec>Prendre cette case</a></div>"; } echo "</td>"; } ?></tr><tr><? $connexion = mysql_connect("$db_host","$db_login","$db_pass"); $db = mysql_select_db("$bdd", $connexion); for ($i = 21;;$i++) { if ($i > 25) { break; } $query = "select * from loterie where nombre=$i"; $result = mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $nombre = $r["nombre"]; $pseudo = $r["pseudo"]; $email = $r["email"]; } if ($nombre == $i) { echo "<td bgcolor=$clcasep> <div align=center>$i<br>Case prise par <a href=mailto:$email>$pseudo</a></div> "; } else { echo "<td bgcolor=$clcasenp> <div align=center>$i<br><a href=x.php?x=$i&vres=$vres&spec=$spec>Prendre cette case</a></div>"; } echo "</td>"; } ?></tr><tr><? $connexion = mysql_connect("$db_host","$db_login","$db_pass"); $db = mysql_select_db("$bdd", $connexion); for ($i = 26;;$i++) { if ($i > 30) { break; } $query = "select * from loterie where nombre=$i"; $result = mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $nombre = $r["nombre"]; $pseudo = $r["pseudo"]; $email = $r["email"]; } if ($nombre == $i) { echo "<td bgcolor=$clcasep> <div align=center>$i<br>Case prise par <a href=mailto:$email>$pseudo</a></div> "; } else { echo "<td bgcolor=$clcasenp> <div align=center>$i<br><a href=x.php?x=$i&vres=$vres&spec=$spec>Prendre cette case</a></div>"; } echo "</td>"; } ?></tr><tr><? $connexion = mysql_connect("$db_host","$db_login","$db_pass"); $db = mysql_select_db("$bdd", $connexion); for ($i = 31;;$i++) { if ($i > 35) { break; } $query = "select * from loterie where nombre=$i"; $result = mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $nombre = $r["nombre"]; $pseudo = $r["pseudo"]; $email = $r["email"]; } if ($nombre == $i) { echo "<td bgcolor=$clcasep> <div align=center>$i<br>Case prise par <a href=mailto:$email>$pseudo</a></div> "; } else { echo "<td bgcolor=$clcasenp> <div align=center>$i<br><a href=x.php?x=$i&vres=$vres&spec=$spec>Prendre cette case</a></div>"; } echo "</td>"; } ?></tr><tr><? $connexion = mysql_connect("$db_host","$db_login","$db_pass"); $db = mysql_select_db("$bdd", $connexion); for ($i = 36;;$i++) { if ($i > 40) { break; } $query = "select * from loterie where nombre=$i"; $result = mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $nombre = $r["nombre"]; $pseudo = $r["pseudo"]; $email = $r["email"]; } if ($nombre == $i) { echo "<td bgcolor=$clcasep> <div align=center>$i<br>Case prise par <a href=mailto:$email>$pseudo</a></div> "; } else { echo "<td bgcolor=$clcasenp> <div align=center>$i<br><a href=x.php?x=$i&vres=$vres&spec=$spec>Prendre cette case</a></div>"; } echo "</td>"; } ?></tr><tr><? $connexion = mysql_connect("$db_host","$db_login","$db_pass"); $db = mysql_select_db("$bdd", $connexion); for ($i = 41;;$i++) { if ($i > 45) { break; } $query = "select * from loterie where nombre=$i"; $result = mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $nombre = $r["nombre"]; $pseudo = $r["pseudo"]; $email = $r["email"]; } if ($nombre == $i) { echo "<td bgcolor=$clcasep> <div align=center>$i<br>Case prise par <a href=mailto:$email>$pseudo</a></div> "; } else { echo "<td bgcolor=$clcasenp> <div align=center>$i<br><a href=x.php?x=$i&vres=$vres&spec=$spec>Prendre cette case</a></div>"; } echo "</td>"; } ?></tr><tr><? $connexion = mysql_connect("$db_host","$db_login","$db_pass"); $db = mysql_select_db("$bdd", $connexion); for ($i = 46;;$i++) { if ($i > 50) { break; } $query = "select * from loterie where nombre=$i"; $result = mysql_db_query("$bdd", $query); while ($r = @mysql_fetch_array($result)) { $nombre = $r["nombre"]; $pseudo = $r["pseudo"]; $email = $r["email"]; } if ($nombre == $i) { echo "<td bgcolor=$clcasep> <div align=center>$i<br>Case prise par <a href=mailto:$email>$pseudo</a></div> "; } else { echo "<td bgcolor=$clcasenp> <div align=center>$i<br><a href=x.php?x=$i&vres=$vres&spec=$spec>Prendre cette case</a></div>"; } echo "</td>"; } ?></tr> </table></div> <div align="center"> <p>Liste des dernieres loteries : <br> <? readfile("gagnants.txt") ?> </p>

la loterie et l'admin n'affiche pas tout, j'ai tenter quelques modifs mais rien ne marche je tourne en rond...


merci a vous ;)

Mammouth du PHP | 1967 Messages

19 janv. 2017, 15:45

J'ai pas tous regardé, ni la possibilité de tester mais si tu commence par modifier les <? en <?php car les shortag ne sont pas souvent géré par les serveurs par défaut et déconseillé.

L'autre gros problème qu'il y a, c'est le support des fonction mysql_... qui est déprécié voir supprimé en php 7.x . Selon la version de php sur laquelle tu tourne tu auras un message d'erreur ou une notification.

Je te conseillerai la lecture de 2 pages :
faq-tutoriels/passer-mysql-mysqli-pdo-t276282.html
faq-tutoriels/page-blanche-script-php-c ... 73178.html
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

19 janv. 2017, 16:01

salut,

j'ajouterais que tu utilises l'auto déclaration des variables (register_globals) qui est supprimé (et déconseillé depuis php 4 il me semble).
$pass => $_GET['pass'] (il est plutôt conseillé d'utiliser post pour un formulaire d'authentification).

$SERVER_NAME => $_SERVER['SERVER_NAME'];
$HTTP_COOKIE_VARS => $_COOKIE
variable d'url : $_GET
variable de formulaire : $_POST

ton premier fichier donnerais quelque chose comme ceci (reste à suivre le 1er lien de spols pour utiliser mysqli ou PDO)
<!-- ce serait pas mal d'avoir une vrai entête html plutôt que directement le formulaire ;) -->
<div align="center">
  <!-- pas d'action si c'est le même-->
  <form method="post">
    <p>
      <label for="pseudo">Pseudo :</label>
      <input type="text" name="pseudo" id="pseudo" />
      <br/>
      <lable for="pass">Pass :</label>
        <input type="password" name="pass" id="pass" />
    </p>
    <p>
      <input type="submit" name="admin" value="ok" />
    </p>
  </form>
</div>

<?php
include('conflot.php');

$connexion = mysql_connect($db_host,$db_login,$db_pass);
$db = mysql_select_db($bdd, $connexion);
if (!empty($_POST['pseudo']) && !empty($_POST['passwd']) && $_POST['pseudo'] == $adpd && $_POST['pass'] == $adps) {
    
    // les frames c'est moche :)
    echo '
    <div align="center">
    <p>Administration de la loterie</p>
    <p><a href="lotadmin.php?action=41255" target="_parent">Mettre a vide la loterie</a><br>
    <a href="lotadmin.php?action=21568" target="_parent">Selectionner un gagnant</a></p>
    </div>';
}
else {
    echo 'Erreur Admin';
}
if (!empty($_GET['action']) && $_GET['action'] == '41255') {
    mysql_query('DELETE FROM passlot') or die("Fatal error 2");
    echo 'Remise a zéro de la loterie réussi';
}
else if (!empty($_GET['action']) &&  $_GET['action'] == "21568") {
    
    mt_srand((float) microtime()*1000000);
    $randval = mt_rand();
    $gagnant = mt_rand(0,50);
    
    $query = 'select pseudo,email from loterie where nombre='.mysql_real_escape_string($gagnant);
    $result = mysql_db_query("$bdd", $query);
    $r = mysql_fetch_assoc($result);
    mysql_free_result($result);
    echo <<<result
    <p>Le numero gagnant est le {$gagnant}
    <br/> La personne est : <a href="mailto:{$r['email']}">{$r['pseudo']}</a>
    <br/> Un email lui est  envoy&eacute.</p>
result;
    
    $header = 'From: webmaster@$SERVER_NAME'.PHP_EOL
    .'Reply-To: webmaster@'.$_SERVER['SERVER_NAME'].PHP_EOL
    .'X-Mailer: PHP/' . phpversion();

    mail($r['email'], 'Bravo '. $r['pseudo'].' tu a gagner la loterie', $message, $header);

    $filename = 'gagnants.txt';
    $dateg = date('d/m/y');
    $somecontent = 'Le gagnant de la loterie du '.$dateg.' est <b>'.$pseudog.'</b><br>';
    
    if (is_writable($filename)) {
        file_put_contents($filename,$somecontent);
    } else {
        print 'Le fichier '.$filename.' n\'est pas accessible en &eacute;criture.';
    }
}
@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 2 Messages

19 janv. 2017, 17:25

donc mon code a pris un coup depuis le temps et les mises a jours ^^

un grand merci a vous ;)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

19 janv. 2017, 17:49

de rien :)

php à beaucoup évolué avec php5 et php7 à pas mal sabré dans les choses viellottes.

bon courage

@+
Il en faut peu pour être heureux ......